Best way to structure students?

Started by ChicagoPianoTuner, January 28, 2015, 11:50:13 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ChicagoPianoTuner

Hello!

I'm working on next year's timetable using FET for the first time and I'm not sure of the best way to structure my students to make it easiest for FET to be able to calculate a timetable.

I have 7 different years (7-13).  Years 7-9 have the same structure, and 10-13 have the same structure.  The 7-9 group is a bit easier, so let me ask about that one first before I tackle the 10-13 group.

For years 7-9, kids all take math at the same time and are divided into sets (set 1-5).  The same is true for English and Spanish, though a set 1 student for math might be in set 2 for English or Spanish.  All English classes are taught simultaneously, all Math classes are taught simultaneously, and all Spanish classes are taught simultaneously.  This simultaneity is absolutely necessary and is inflexible; students are often moved up or down in sets based on performance and the only way this is possible is for the classes to be simultaneous.  For all other subjects, like science, music, art, etc. the students are divided by form groups (7A, 7B, 7C, and 7D, for example).  These other subjects are not scheduled simultaneously (e.g. 7A can be in science class while 7B is in art class).  In my mind, the way to structure this is having one year per grade (so "year 7" is a year in FET), then divide that year by selecting categories, and having 4 divisions - one for math sets, one for English sets, one for Spanish sets, and one for form groups. 

When I am making the timetable, from what I have read, I think I should avoid the constraint saying that all year 7 English classes have the same starting date and time (because that's a difficult one for FET) and try to reach the same result (all English classes being taught simultaneously) through some other means.  I'm not sure how to do it though.

Could someone please help confirm whether I've set up the groups/subgroups correctly for years 7-9, and also explain how I tell FET to make classes simultaneous for, say, English, without imposing the strict constraint of same start date/time?  Please let me know if I need to clarify.  Once I know I'm on the right track with years 7-9, then I'll move on to the trickier issue of years 10-13.  Thanks so much!

Volker Dirr

i need to know 2 more things:
1. For example English year 7-9:
what is true? a) or b):
a) Are all English courses 7-9 simultaneously? So 7 is simultaneously to 8 and so on.
b) Only all English courses of 7 are simultaneously. Also all English courses of 8 are simultaneously. But an English course of 7 must not be (but can be) simultaneously to an Eglish course in 8.

2. Are the students timetable always full?
I mean this: If you have 5 days per week and 6 days per hour, then there are 5*6=30 available slots. Do all You students have 30 activities or are there some students with only 29 activities. (i don't talk about "gaps". Gaps can be disallowed in both examples!)

Liviu Lalescu

#2
Quote from: ChicagoPianoTuner on January 28, 2015, 11:50:13 AM
In my mind, the way to structure this is having one year per grade (so "year 7" is a year in FET), then divide that year by selecting categories, and having 4 divisions - one for math sets, one for English sets, one for Spanish sets, and one for form groups. 

Yes, it's the correct way.

Quote
When I am making the timetable, from what I have read, I think I should avoid the constraint saying that all year 7 English classes have the same starting date and time (because that's a difficult one for FET) and try to reach the same result (all English classes being taught simultaneously) through some other means.  I'm not sure how to do it though.

There are some words there (in the same starting time constraints dialog), suggested by Volker Dirr, for situations in which the timetable doesn't need specifically the activities to be simultaneous. I, personally, was reluctant to add these words. These words do not imply that same starting time is a difficult constraint for the timetable, and they do not imply that you can ensure simultaneity through other constraints in all the cases.

Quote
Could someone please help confirm whether I've set up the groups/subgroups correctly for years 7-9, and also explain how I tell FET to make classes simultaneous for, say, English, without imposing the strict constraint of same start date/time?

Yes, it's correct, and please use same starting time constraints.

ChicagoPianoTuner

#3
Volker:  1 - (b) is true.  All year 7 English classes are simultaneous, and all year 8 English classes are also simultaneous, but are NOT at the same time as the year 7 classes (simply because the teachers who teach year 7 also teach year 8 ).   2 - student timetables are always full for years 7-11, but not for years 12-13 (I haven't discussed those yet).

ChicagoPianoTuner

Now I need to figure out the year 10-13 students.  The only difference within this group of students is that year 10-11 have a full timetable but years 12-13 may have gaps.

Like years 7-9, years 10-13 have English and math in sets.  But the other courses are more complicated.  Our school has option blocks.  The blocks are generated after students submit their preferences for courses, and then a different scheduling program (used by someone else in the school) provides option blocks that satisfy maximum student happiness. I'll give specific examples because I think that makes it easier.  Let's talk about year 11.

Block A: chemistry, history, design technology, graphic design, economics
Block B: PE, design technology, physics, economics, combined science
Block C: computer science, business, geography, biology, art
Block D: ICT, biology, PE
Block E: chemistry, drama, geography, physics, music

Some things to note:

  • All of the activities within a block are simultaneous.  Block A's chemistry happens at the same time as block A's history, design technology, etc.
  • Each student selects exactly one option from each block
  • If a student takes chemistry in block A, they do not take it in block E
  • Rooms are not a concern.

It seems that if I split year groups, I'll have a ton of different subsets.  The way I see it, I'll have a total of 7 divisions (math sets, English sets, option block A, B, C, D, and E), and a varying number of categories within each division that depends on how many courses are offered to each option block (for example the categories in block A are Block_A_chemistry, Block_A_history, etc.).  Is this right?  Will all of these different subsets be too much for FET to handle? 

Please advise!  Thanks so much.

ChicagoPianoTuner

I should also add that all class lengths are identical.  All of the courses in all of the blocks each meet the same number of times per week.

Liviu Lalescu

About blocks - why not simply consider a separate category Block, and have in total only 3 categories (English, Maths and Block)? And 5 divisions in the Block category?

ChicagoPianoTuner

The reason not to have a "block" category is that students do NOT take all classes in one block.  They take ONE class in EACH block.

Every student takes one class from block A, one class from block B, one from block C, etc.  So one student might have chemistry during block A, physics during block B, business C, PE D, and drama E.

Maybe I understand things incorrectly, but it seems to me that I cannot have a blocks category.  Am I wrong?

Liviu Lalescu

Quote from: ChicagoPianoTuner on January 28, 2015, 03:54:18 PM
The reason not to have a "block" category is that students do NOT take all classes in one block.  They take ONE class in EACH block.

Every student takes one class from block A, one class from block B, one from block C, etc.  So one student might have chemistry during block A, physics during block B, business C, PE D, and drama E.

Maybe I understand things incorrectly, but it seems to me that I cannot have a blocks category.  Am I wrong?

Sorry, I think I was wrong. Because in my previously suggested approach a student may be forced to be in two places (or more) at the same time.

Your total number of subgroups would be too large for a successful generation, if you use automatic division of years by these 7 categories. I think you need to use a FET subgroup = a real student. Or use an automatic division of years, but one which removes inexistent subgroups. Such a tool might be derived from your input data. Or you might use the import CSV students of FET. In this way, your total number of subgroups will be at most the number of students in your school. (how large is this number?)

I have very little experience with such data, so please forgive me if I am wrong.

Volker Dirr

subgroup = real students name is the perfect structure.
But sadly very difficult to add manually. If you have a school administration software (which you always use to print credentials), then you might import the needed data from there.

About Year 7-9:
In the full years you can simplify it (if you don't need to care about rooms):
just add the whole year into a single activity. Also add all English teachers of the year into the same activity and select subject English.
Do it similar with the other subjects.
So in fact you don't need to care about English, Spanish and Math in the students structure, because you simply select the whole year.
The only disadvantage is: Your timetable doesn't look perfect. You need to tell students and teachers where to go.

If the years are not full, you can also try this simplification, but you might not get the best solution.


About Year 10-13:
You can do the same trick there:
Add the whole year into a single activity. together with all teachers of Block A.
Do the same with an other activity, just with all students and all teachers of Block B.

Here again:
Disadvantage: The timetable doesn't look nice, but this is a correct simplification if the year is full.
Also Disadvantage: You might need to care about rooms.

Sadly it is currently not possible to add multiple rooms to a single activity. Only if you do it manually by tricks.


If that simplifications is to strong and you also can't import the data from your school administration software, you should use the split automatically feature from fet. The "only" disadvantage in your example is, that it will produce a lot of subgroups so generating might be much slower as the other 2 solutions.

ChicagoPianoTuner

I know exactly what you mean and both suggestions would work.  My school has roughly 700 students total for years 7-13.  Can I ask about each suggestion you made?

Let's say I add every student individually as a subgroup.  Then could I define a group that is based on individual students?  I know I can split groups into subgroups, but can I reverse the process and build groups from subgroups?

Getting rid of nonexistent subgroups is another way to do it.  How might I go about doing that?

Thanks again for your help.

ChicagoPianoTuner

Volker, thanks for your reply.  I know exactly what you mean.  I can add students from a CSV file.  That's no problem.

The workarounds you have suggested, making on class "block A" and assigning all teachers and all students to that class, is one I have been using.  You're right that it does create rooming issues (in one or two special cases),  but I've worked around those using dummy teachers/rooms/activities.

It seems like the right idea is to make each student his own subgroup, and then build groups where necessary.  Can you help me figure out how to do that?

Thanks!

Liviu Lalescu

Getting rid of empty subgroups is probably impossible in practice, by hand. Only automaticatically maybe, to see the list of students and their options and derive groups and subgroups.

Did you see the interior of a .fet file? It is simple XML. Also, the CSV input is simple.

Yes, of course you can derive groups from subgroups.

A conversion program should not be difficult.

Volker Dirr

i coded an import csv file for SchILD. That is a german school administration software. So it won't help you much. I could check if it is possible to import the data from your school administration software. but i need to have a few sample lines of your csv files.
the csv file must not be a single file, the information can be splitted into different files (it is also splitted in the german school administration software).
it is only important that a get some information:
each csv line must include an unique students identifier. (For example name and birthday; or a students id).
i need information about the course (year, class, course name) of the students.

if the csv files also contain some more infomration i can also try to import the activities. (I can do that with the german school adminstration software)
but then i need information about the subjects of the students, teachers of the subject / course or students and about the number of hours per week.

maybe sent me a few sample lines (at least one lines about a normal class, one line about an elective like Math and one line about an elective from a block) and/or tell me your used school administration software.

ChicagoPianoTuner

Volker: thank you for your willingness to help.  For now, I'm just making a "mock" timetable from last year's data so I'm familiar with the process for when this year's timetable rolls around.  I don't need to worry about importing activities - I can do all of that manually.  It's not too much work.

I can't seem to find any information in the documentation on how to construct groups from subgroups.  I'm also having trouble importing subgroups without having a group assigned to each subgroup.  Is there a guide I could follow?