Elective subjects

Started by Nagendra, March 21, 2019, 11:55:14 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nagendra

1) All the students of a department are divided into 2 groups (like ME 1-4, ME 1-8) for lectures and each group is divided into 4 subgroups (ME 1, ME 2, ME 3, ME 4, ME 5, ME 6, ME 7 and ME-8) for practicals. Our students have to study 6 courses out of which 4 are compulsory and 2 are ELective subjects. Every student has to choose any two subjects out of four Elective subjects (say E1, E2, E3, E4). That means E1 may have students from all the eight subgroups. Similarly, all other Elective subjects (E2, E3, and E4) may also have students from all subgroups.

What is the best way to split the department (into categories) so that we can include this?

Volker Dirr

There are several variants.

You need only 2 divisions/categories:
1st division with 8 items:
ME1, ME2, ... ME8
2nd division with 4 items:
E1, E2, E3, E4

but it might look bad on the printed groups timetable, since activities with groups like ME1-4 has 4 items (ME1 to ME4), so the printed timetable is maybe a bit too large.
this is no problem, if you give the students the subgroups timetables.


there are 2 variants if you need to fix that:
a)
adding the "missing" groups manually. For example add group ME1-4 yourself and add all needed subgroups. so you can add single groups to all activities.

b)
Split the year into 3 divisions/categories:
1st division with 2 items:
ME1-4 and ME5-8
2st division with  8 items:
ME1, ME2, ... ME8
3rd division with 4 items:
E1, E2, E3, E4
The disadvantage of this variant is, that it that generating will be slower, since it contains unneeded subgroups.

You can fix that speed problem by removing the unneeded subgroups. (so in fact this variant is exactly the backwards of variant a).


An other variant might be to import the students structre by csv from your school administration software, since that will be the perfect variant.

Nagendra

#2
I tried dividing the year into 2 divisions.

1st division with 8 items:
ME1, ME2, ... ME8
2nd division with 4 items:
E1, E2, E3, E4

The problem with this, the groups ME1, ME2...ME8 are assigned with only one elective out of 4. But I want each student to study any 2 subjects out of 4 electives.

Volker Dirr

ah... ok. 2 out of 4.

you need to do a course planning first, since your dataset will be impossible, since you need 3 hours * 4 Electives = 12 hours, but there are only 9 hours free for electives in your dataset. So you only need 3 students to get an impossible dataset.

as soon as you done the course planning, there are 3 variants:
a) import the courseplaning by csv
or
b) add time constraints "a set of activities are not overlapping" to the elective activities which are not allowed to be simultaniously
or
c) Don't split the division E1, E2, E3, E4 in fet. Just place the subject/block "block1", "block2" and "block3" and tell the students the results from your course planning.

Nagendra

#4
Not clear to me...Also, how you say that there are only 9 hours free for electives. I see some free periods for students. Can you please clarify?

By the way, in the meantime, I tried something (by increasing the no of hours a day). I divided the year into three categories
1) M1, M2...M8
2) DE1, DE2...DE4
3) E1,E2...E4  (these are just dummy)  (in fact DE1 and E1 are same)

then removed some unnecessary groups (retained the combinations DE1-E2, DE1-E3, DE1-E4...DE3-E4). and then tried generating the timetable.

Volker Dirr

Students of group Mx have got 31 hours per week.

maybe one student select elective E1 and E2. so you need 2*3 hours per week.
So that student need "only" 37 hours per week.
that is fine of course since you have got 5*8 = 40 hours.

but since there are also other students, they might select other cobinations. E3 can't be at the same time as E1 (since one student might select E1 and E3) and E3 can't be at the same time as E2 (since an other students might select E2 and E3). So you need 3 hours more. So you need 37+3=40 hours per week.

But you have got also elective e4. similar to the above it can't be at the same time as E1, E2 and E3, since there might be students that selected that elective. So you need 40+3=43 hours per week. But you have got only 40 hours per week.

So your dataset is impossible.

you need to do a course planning first! You can't solve that without course planning (if you don't increase the number of hours per week).

Nagendra

Ha! got it now. Looks like I need to go for 10 hours a day ::) or reduce the number of choices from 4 to 3. I reduced it to 3 in the attached file. But I am clueless on how to make them study another elective. And the most complex thing will be, each elective will have a tutorial also. For tutorials, students of each elective are divided into four batches.

I feel like, I need to have subgroups with individual roll numbers.

Nagendra

#7
I have prepared the dataset considering each student as a subgroup. Now I could generate a sample timetable perfectly (attached)

However, I have a small query/suggestion.

1) Is there any way I can replace the roll numbers (subgroups) with new roll numbers?. Because next year new batch would study the same compulsory courses. When I try to import from new .csv file, the old subgroups are still retained. I want to replace them with new roll numbers without deleting the activities.

(or) If you can allow the deletion of all subgroups of a particular group, then "Remove everywhere" will do my job. But I am not able to select the subgroups by either "ctrl" or "shift".

2) Also, I request you to enable multi-selection (using 'ctrl' key) and range selection (using 'Shift' key) in time and space constraints also. So that anyone can enable/disable/delete many constraints at once.

Volker Dirr

About 1)
that about the following idea:
do following next year: ( i will explain it with an exaplne, since it is easier to explain. of course you might have a different number of years.) let's say you have got years 1 to 6.
- remove the top year 6
- rename year 5 to 6
- rename year 4 to 5
- rename year 3 to 4
- rename year 2 to 3
- rename year 1 to 2
- import the new year 1 by csv


about 2) ok. i think we can add this into the TODO. but it might take some time. Liviu is still in hospital and he didn't answered to me yet. So i fear it might take some more time.

Nagendra

I am sorry to know that Liviu is in hospital. I wish him a speedy recovery.

About 1)
I guess your solution will work only if I divide the year into automatic categories. In my case subjects are assigned to groups, not subgroups.

I will be dividing them into some groups (based on compulsory and elective courses) and then subgroups (roll numbers). I will be grateful if you can enable multi-selection (using 'ctrl' key) and range selection (using 'Shift' key) for subgroups deletion.

Nagendra

Quote from: Volker Dirr on March 24, 2019, 09:23:55 AM
i think we can add this into the TODO. but it might take some time.

Curious to know if multi-selection and range selection are ready for the next version?

Quote from: Nagendra on March 24, 2019, 12:04:55 PM
I will be grateful if you can enable multi-selection (using 'ctrl' key) and range selection (using 'Shift' key) for subgroups deletion.

@Liviu, How difficult it is for you to implement multi-selection (using 'ctrl' key) and range selection (using 'Shift' key) everywhere in FET?.

xing

Quote from: Nagendra on March 21, 2019, 11:55:14 AM
1) All the students of a department are divided into 2 groups (like ME 1-4, ME 1-8) for lectures and each group is divided into 4 subgroups (ME 1, ME 2, ME 3, ME 4, ME 5, ME 6, ME 7 and ME-8) for practicals. Our students have to study 6 courses out of which 4 are compulsory and 2 are ELective subjects. Every student has to choose any two subjects out of four Elective subjects (say E1, E2, E3, E4). That means E1 may have students from all the eight subgroups. Similarly, all other Elective subjects (E2, E3, and E4) may also have students from all subgroups.

What is the best way to split the department (into categories) so that we can include this?

Hi Nagendra, I was thinking can this be done as follows.
Since there are four elective subjects (let's say E1, E2, E3, and E4), add four subgroups (each subgroup represents an elective subject) for each of the eight groups (ME 1-8). Like for the group ME1, add four subgroups like E11, E12, E13, and E14. For group ME2, add subgroups like E21, E22, E23, and E24, and so on for other groups. The Ex1 (x represents every number between 1-8) represents the elective subject E1, Ex2 represents E2, and so on. By doing these, it can avoid adding every single student as a subgroup.
And when adding activities, the "students" Ex1 must be selected in one activity, and so on for other Exs, because they actually represent one subject-group.
This is what I was thinking, not sure if it is correct. Hope helpful to you.

Nagendra

Thanks for your input. I already programmed to have each student as a subgroup and it is working fine. I will try your suggestion though