From alfaromeo:

But, again I came across the same FET behaviour:

After 4 munites, FET reaches : 321 out of 323 activities placed
It is a good partial result !!
unfortuanatlly, I didnot stop it, hopping FET can go further to  reach 323 out of 323 activities placed
Sadly, after a while this number continualy decrease toward 319, 318, 316 , .... 301...
Now if I  decide to stop this decreasing process, I will get a partial timetable with only 301 placed activities   Embarrassed  FET shows a list containing the most 301 difficult placed  activities
Now:
1-Is it possible for FET to save and update the ever best timetable in a simulation session ?
For example, when it reached: 321 out of 323 activities placed, I can easily place those 2 remaining activties manualy by breaking some constraints
2- Where I can find Ids of those 2 remaining activties !?

Point 2 is available - see initial list of activities in timetable generate form.

--------------------------------------------------------------------------------

From Volker Dirr

i also get today a mail from a guy, that had trouble to find the correct
outputfiles today, because there are so many files in the directory.

just a maybe todo:
maybe write only the XXX_index file into the result directory. then make 3
subdirecories. one subdirectory with all html files, one with all xml
files and one with all csv files. so we don't need the export menue
anymore, because it is exported always by default and the directory is a
little bit more tidy.

--------------------------------------------------------------------------------

From Hatim Ali:

- i hope you can add filter in (all time constraints and all space constraints) like the image in attachment file.
(He designed a filter for teacher, students set, subject and activity tag, under the constraint description).


--------------------------------------------------------------------------------


From Volker Dirr

>> we have:
>>
>> 1. category: 3-4 classes
>> 2. category: 5 courses
>> 3. category: 4 religions (always same time, so i didn't enter it)
>> 4. category: several working groups (after noon lesson, so i add them
>> manualy)
>>
>> know have a closer look:
>> 4 classes * 5 courses * 4 religion is already 80 subgroubs.
>> so if i also add working groups (lets say 5, but there are more!)
>> then we have total 400 subgroups.
>>
>> that is stupid, because i have only around 100 students in a year!
>>
>> i think in that case it is wise to enetr data not in groups, add
>> students
>> individual.
>>
>> that is like high school do it.
>>
>> - add a year.
>> - add groups (NOT with split year, but same names)
>> - add a group ALL STUDENTS.
>> - add subgroup with all students names into ALL STUDENTS.
>>
>> - now we need a table to every year:
>>    - horizontal are the division names (must not be group names, but
>> can)
>>    - vertical must be the student names
>> - every cell is a bool checkbox
>>
>> no the timetablemaker can check every single student. of yourse by
>> checking the studentsname must be added as subgroup into that group.
>

--------------------------------------------------------------------------------

from Maciej Deorowicz:

> I have idea for two features. First: possibility to disable contraint
> without removing it. Such 'Active' checkbox like on activities dialog.

--------------------------------------------------------------------------------

to save results in a format that can reload and modify later. - partially done

--------------------------------------------------------------------------------

Multiple processor - split multiple timetable generation on multiple processors

--------------------------------------------------------------------------------

From Hatim Ali:

> Dear all
> please can you add "A set teachers has same timetabe (day+hour)" to make 2
> teachers or more work in the same time (not same subject) and off in the
> same time, (all period , all gaps ) . thanks

----------------------------------------------------------------------------------

From Volker Dirr

>> how about displaying "minimum home
>> room hours" and maybe also "maximum special room hours" in the teacher
>> statistics? because a timetable maker (maybe) need that for his
>> planning.

----------------------------------------------------------------------------------

From Abdul Hadi Kamel Abdullah

Why did you remove the "Teachers-subjecttags max hours continously"
constraint in the new version of FET. It's very important to us.

Without that , the results I got was not so conducive, where a teacher has
to give theoretical lectures (the ones with subject_tag = 'S' for more than
two hours.

The existing two constraints that for teachers which are 'Teachers no more
than X hours continously' and 'Teachers no more than X hours daily' cannot
prevent a teacher to have more than certain number of hours for a
particular subject_tag.

For example:

lets say,

It's better to for a teacher have a timetable on monday as the following :
CASE A

Time : 8am -10 am subject: CSC134   subject_tag : S (means
theoretical-lecture session)
Time : 10am -12pm       subject: CSC203   subject_tag : M (means lab
session)
Time : 2 pm - 4 pm      subject: ITT300         subject_tag : S (means
theoretical-lecture session)

than the following:
CASE B

Time : 8am -10 am subject: CSC134   subject_tag : S (means
theoretical-lecture session)
Time : 10 am - 12 pm    subject: ITT300         subject_tag : S (means
theoretical-lecture session)
Time : 2pm -4pm   subject: CSC203   subject_tag : M (means lab session)

where the teacher in CASE B has to a give theoretical-lectures (in other
words give a continous speech) for 4 hours continously, which most of
teachers don't like.

----------------------------------------------------------------------------------

From Danail:

You see, this division in subgroups is very complicated - to understand 
and to add by hand. And at the end you came with a lot of subgroups that 
have only formal sense, for the algorithm, but are visible in dialogs, 
in the final chart and everywhere. It should not be like this. One will 
have to divide years in wizard-like dialog, with questions:
1. How many classes you have for this year?
2. Define courses for which students from this year study together
3. Which of these curses start at same time. Group them by this criteria
4. Define from which classes came students for these courses. Whole 
class is caming, or only part of it? Where other part goes - have rest, 
or has another activity, and if yes - which one?
5. Define teacher that is teaching in every course.

This is a draft, but some wizard like this will save *a lot of" 
mistakes, and will make program much more user friendly. Then you can 
add internal groups, but not show them to users, or at least show if 
they set some option. Show them only groups and subgroups that they need 
to put in activities, and show these same in final html output.

This is my opinion of user in trouble :-)


Second set:
1.Ability to select more than one constraint and delete it, or set its 
weight
2.Ability to disable all informative and warning messages, or to display 
them in status bar or in another log window.
3.Option to remember last focused control in dialogs - very useful if 
you want by keyboard to open many constraints and change their weight
4.Constraint "longest gap is n hours"
5.way to save last generated timetable and reopen it again (for example 
for printing it with different html level, or for viewing it.
6.Ability to show free teachers for every position in students and 
teachers timetable - very useful if you want to find somebody to replace you


----------------------------------------------------------------------------------

From my80s:

> i checked and i read again my emails,
> so i saw that again,
> i meant
> release for src,deb,rpm cause are the major used from most people,
>
> the target is to put this work in automatic installers like apt , yum,
> yast etc,
> i hope these my one opinions are for better eye-candy,
> and usefull for othrs to enjoin the team



> also in program we have
> a matrix with days x hours = n x n
> if this is allocated from some activity it should get error in
> precomputing in real time
> if we put another activity 100% in same cell
>
> that would take less time to find mistakes

----

export as odt (OpenOffice.org) table (spreadsheet)

----------------------------------------------------------------------------------

From Danail Traichev:

> If you make it how it is now with years, groups and subgroups, it will not
> be complicated for entering and even will not need change in most
> constraint dialogs. What I mean - define "groups of subjects", and allow
> "group of subjects" name to be used in every place where subject can be
> used. Much  like it is now with student sets - both student years, groups
> and subgroups are placed in one control and added from one place.
>
> But of course, I don't know how this will fit with FET internals. And FET
> is fine even without this. It simple will make entering constraints a bit
> easy. The other posibility is if every activity constraint dialog has a
> posibility to select multiple activities, and to filter them by "subject
> group", or at least by "selected subjects". That will make entering
> constraints like in my case easy.

----------------------------------------------------------------------------------

From Volker Dirr (15 October 2007):

maybe it's possible to do XXX::setLayoutDirection(XXX::LeftToRight) only to the filename or language in menu.
(bracket bug in Arabic translation)

----------------------------------------------------------------------------------

From Volker Dirr (16 September 2007):

> i saw at les timetable, that he call hour==period.
> also at wikipedia it´s called period. (compare
> http://en.wikipedia.org/wiki/School_timetables   chapter terminilogy)
>
> i am not sure about that. in german we have the also the word "peridode",
> but we don´t use it for timetables. we say hour.
> but maybe that´s just colloquial language. this colloquial language is ok,
> because the schools have 1 schoolhour (45 minutes) or 2 schoolhours (90
> minutes).
>
> but maybe it´s better to use also the word periode, because by this
> schools with 60 minutes activities (2 periods) and 90 minutes activities
> (3 periods) don´t get trouble with the word hour (because it entrap /
> ensnare /
>  inveigle so write 1 hour and 1,5 hour. but "hour" is an integer values!
>
> but on the other hand people (maybe) will not understand immediately th
> word periode.
>
> so maybe we should write "period (hour)".
----------------------------------------------------------------------------------

From Volker Dirr (28 August 2007):

1. add a constraint. then remoce the constarint. now the constraintlist is
empty, but the right windows ("current constarints") still displays the
infoemation about the already deleted constraint.

2. maybe change "current constaint" into "description", "constraint
information", "description of the selected constraint", ... (very very low
priority, maybe one day)

----------------------------------------------------------------------------------

From Volker Dirr, regarding translation:

1. maybe it´s better to be more exact. example: phrases "min hour" better "min hour per day"

2. sometimes it is "Weight percentage (necessary: 100%)" sometimes it is "Weight percentage (needed: 100%)"

3. sometimes the english version isn´t always the same.

sometimes you wrote "add current activity"
sometimes you wrote "add activity"
sometimes you wrote "add current"
sometimes you wrote "add"
i think it should always be the same.

also sentence like: "You have to know that a this constaint ..."
should only be: "This contraint ..."

4. also in the QObject are some "strange" transations.

example:
". This [...]" mabye better "This [...]"
", S:" i think ", " and ":" should not be enterd into the QObject::tr

we have also change phrases like ",
S:%1".

5. maybe "start" should be "generate" in the generateform.

6. more TODO for english phrases:
- if you wrote one or more sentences, please always end with ., ! or ?.
- the head of a dialoge always start with "FET - ..." but sometimes you
wrote "... dialoge".
- sometimes you wrote "students subgroups", i think you just need to write
"subgroups", because teachers have no subgroups.
- all "add", "modify", and "remove", "close" phrases should only contain
this word. no more words like "current" or "group". maybe wrote them with
QObject, because nearly every dialoge have this 4 phrases.

7. phrases like that are not very good:
"NEW: Divide year automatically by selecting categories"

i think we should remove NEW:

and some phrases starts with a new line.

sometimes you write a sentences, then do a new line and then (in the new
line) close the sentence with "."

8. one time you wrote "abort". all other times you wrote "cancel".

9. i think we should think and write a small definition note for english
phrases.

it looks like in a few times this terms are not always used same/correct:
hour
duration
periode
lesson
activity

when we write a small definition note, then we have to care about this:
words must also be correct for schools that don´t use "hours" as one time
hour.
in germany one schoolhour is 45 minutes. but that´s no problem. we use the
same words for that.
but i remember a letter in the maillinglist. that guy wrote that he has 60
minutes hours and 90 minutes hours. so he defined 30 minutes "hours" and
set duration == 2 or duration == 3 to the activities.
so the definiton and use of hour, duration, periode and lesson must also
match to this.

please let us friste a small definistion not for this terms:
hour, duration, periode, lesson, activity
this will help if we add new or modify old english phrases and it will
also help translaters.

10. maybe TODO: no brackets in "view (students)", "view (teachers)", and "view
(rooms)".

11. and it looks like we shouldn´t use the word "lesson".
in the most phases it´s better to replace "lessons" by "subactivities"

12. maybe:
"invalid activity" is better "no activity selected"

13. very low priority maybe:
in mainform->data is this order:
1) instutionname and comment
2) days and hours
3) a) teachers
   b) subjects and subject tag
   c) years/groups/subgroups
4) ...

maybe change order 3 a) with 3 b)
so first subject and sunject tag.
then teachers.
resason: every activity have a subject. so subject is more importent,
because not every activity has a techer or subgroup.

14. that is also why i already asked you to change english translations,
because some phrases can be shorten.
for example all sentences with "you", "current" or "that mean" can be
shorten (in english and german).
example:
"If you insert current group to current year, that means that some years
share the same group (overlap)"

shorten version:
"Some years share this group if it´s inserted."

15. and a maye other thing. example:
view in fet-mainform.
there is "Time contraints (techers)".
and in this folder is for example "Teachers max gaps per Week".
i recommend to write just "Max gaps per Week".
Reason:
- it´s shorter
- it´s clear that it "teachers" contraint, because it´s in that folder

the english version looks fine, because you are always possible to write
first "teachers". (except on time view (Min days between activities. You
are not able to write Activities first.)
In german translation it is much more difficult the write "teacher" always
first. even including the word teacher is a much longer phrases than in
english. it will be much easyer and nice, if we don´t write teacher here.
maybe the same porblem in other languages.

----------------------------------------------------------------------------------

From Volker Dirr:

how about this:
if you go to data->activities
the you have 4 different filters where you can choose something.

for example i choose filter subject "DE". now can see all "DE" activities
at the left side. so it is ok like it is, or i see a missing one. if i see
a missing one, then of course i want to add a subject "DE". so this
subject should be default if i press add.

so the function should have four parameters (the four filters),
defaultsetting in the data->activities->add screen should have be the
filters of data->activities.



For multiple generation:

> and maybe add a checkbox "shutdown after job is done". some software also
> has this feature, like "noro burning rom".
> so you "just" need to do a "shutdown -h now" (i think that was the linux
> command, but i will check tomorrow)


long time goals:

code cover planning (open)

code lesson planning (open)



WISHLIST:

1--------------------------------------------------------
From bmlahcen13:

for that i advice to start thinking from now to
- enhance the UI
- use Database
- add web client
- use UML models

and also for the structure, use "int id", this will
enhance both runtime and will reduce the storage,
because in the FET xml files, for example to store and
activity, you have to write again the name of the
subject, teacher, students and also the day and time
slot in a solution. the same happens in time and space
constraints, these 3 entities represent a big
percentage of the size of the file, so you use int IDs
and not names you will certainly gain a lot of space
and also a better execution time, i know, as you said,
that the internal structure uses int id but for
loading and saving xml files and searching, the usage
of strings delays them.

Liviu: maybe it would be better to compress the input file

2----------several users----------------------------------
- Improve user interface - add help and wizard.

3---------------------------------------------------------
From Michael Towers:

"
** What about a rewrite of the front end in a scripting language - e.g. Python? It might speed 
development and help debugging. It could also make maintenance of the code easier.

** Is there some way of doing "interactive" timetable development? The human would make 
suggestions, or place some items, run the program, maybe move a few things around, run the 
program again ... (Liviu: it would be very simple, the algorithm supports that. Only the 
interface has to be updated)

** A clear and clean interface to your evolutionary engine as an entity separate from the 
input/output might be useful.
"

"How compatible my idea of manual intervention is with the genetic algorithm is not clear to me.
Actually a purely manual approach would probably disallow clashes completely and offer all 
sorts of visual signals to show where activities could or could not be scheduled, 
which activities could be scheduled in a particular period, etc. This is something completely 
different to what you have been working on. Maybe there is some middle way, but I feel some 
of this stuff would actually be necessary (I do not yet believe that it is practicable to 
generate timetables purely automatically - the requirements and constraints are too diverse).

It seems to me, it should be possible (but of course only after a lot of work!) to have 
a beautiful manual timetable editor (which can also print the various timetables, and 
perhaps save the data sets and results in a database) with an interface to an automatic 
timetable scheduler which can be used to speed up the work."

4---------------------------------------------------------
From TheStar:

A constraint to think about is that some activities, and I suspect 'normal school management'
talks about teachers as in "One teacher per x students".

In the HSC year here, it's about one teacher per 26 students (or something like that).
At a recent excursion, it was one teacher per 10 students.  Hope that helps :)

..............................

> Of course, you can add each student. I could have implemented this solution.
> But I doubt that the user has such patience :-)

You could always autogenerate the students...
"Quick-Build Students"
�[Properties]
�[Number]
�(Build)

And it will generate students with name: AutoGen-11231, ID: 11231, and the like.

The user could then 'select' groups of these students... and... (Just an idea)

5---------------------------------------------------------
From Abdul Hadi Kamel:

Do you have a plan in mind to upgrade the existing fet from standalone
application to a client-server/web-based database oriented type of
application in the future. This is because the current fet is quite limited
especially in terms of timetable data which cannot be keyed-in /view s
amongs several users at the same time. This will cause hardship because the
people involved in making the class timetable in universities normally
consist of several key persons from different departments. Using standalone
application by several persons sometimes make data consolidation process
among departments become difficult and error-prone

I think it will be better if the FET can support a single timetable data
repository (using client-server model) in a database that can be input/view
by several users simultaneously.

6----------------------------------------------------------
From Patrick Fox:
I was wondering if a discreet Fet graphic in the background of the
window program, would be better than having nothing when you start the
software ?

7---------------------------------------------------------
From Volker Dirr:
If you think that other people don�t like this default constaint how about
making a menu "default settings". there you can add "langurage" and my
defalut wish. maybe there are other parameters, that can be set in this
settings. i guess that there a people who want set duration to 2 or 4 by
default.

Add the parameter "always maximaize window" in the "settings"

it would be nice to have something like "time constraints (subjects) - max n hours per day the same subject".
so compulsory min n days between activities is nearly similar to compulsory max n hours per day the same subject (except subjects with duration 2 and more)
but non-compulsory min n days between activities is somhing very diffrent then non-compulsory max n hours per day the same subject.
i look forwad to a option like "non-compulsory max n hours per day the same subject".
because it isn�t not to bad if it happen (having a lesson twice a day" only a few times.

or do something like "time constraints (activities) - max n activities with same subject per day"
or "time constraints (activities) - max n (grouped) activities with same subject per day". (but he have to differ between activities and subactivities. is�t nonsens to subactivities, it has just sense with activities.)

10---------------------------------------------------------
From kdsayang

I would like to see FET generate the time table in 

1. certain amount of time for each time table
2. with some setting about the remaining weight soft conflicts
3. generate multiple variants

For example
(A) rules are
(i) the user select to generate 10 minutes time limit for each time table
(ii) user set 0 for remaining weight soft conflicts
(iii) the user select 10 variants

the outcome
(B)
(i) the time table finished and it has generate 10 time table that concur with 0 remaining soft conflicts for each time table
(ii) the time table finish and it only manage to get 5 variants from 0 remaining weight soft conflicts
(iii) the time table finish BUT it don't manage to generate any variants with 0 remaining weight soft conflicts

refer to (B)(iii)

the user can change
(i) longer run time to generate time table (with crossing finger) hehe... Others setting is not change
(ii) longer run time to generate time table with increasing value for remaining soft conflicts (0.5, 1.0, 1.5 etc)

As u can see in timetable --> generate multiple variants, features in (A)(i) and (A)(iii) are already there. I hope that u 

can figure it out on how to implement the feature in (A)(ii). It would be marvelous.

11---------------------------------------------------------
From kdsayang

There are 3 types of locking and unlocking....
 
A. By teachers
(i)   Lock selected activities (only times)
(ii)  Lock selected activities (only space)
(iii) Lock selected activities (time&space)
 
B. By students
(i)   Lock selected activities (only times)
(ii)  Lock selected activities (only space)
(iii) Lock selected activities (time&space)
 
C. By room
(i)   Lock selected activities (only times)
(ii)  Lock selected activities (only space)
(iii) Lock selected activities  
 
Before this, there is no indicator that time, space and time&space have been locked/unlocked in the 
teachers/students/rooms time table. Unless user explore the time and space constrains in FET, they 
will see all the rules about the locking/unlock constraints
 
So, I suggest that coloring system to be use as an indicator so that it is easy for user to recognize and edit it (lock/unlock)
 
No locking (unlock) = no color
Lock selected activities (only times) = green
Lock selected activities (only space) = yellow
Lock selected activities (time&space) = red

12---------------------------------------------------------
From kdsayang

If a user want to add "an activity have a set of preferred rooms", the user will need to click one 
by one to add right???... So, I would like to suggest that we group them like when user want to add 
an "activity". There (activity), we can select by years, groups and subgroup for students. Instead of 
clicking all the student groups in years 1, user can just click year 1 to include them all into students....
 
For example for rooms (room group then room subgroup)
 
HALL
Hall A
Hall B
Hall C
 
TUTORIAL
A-A1
A-A2
B-A1
 
COMPUTER LAB
Lab 1
Lab 2
Lab 3
 
So when user want to add "an activity have a set of preferred rooms" for all the tutorial room, instead 
of clicking 20 tutorial room one by one, user just click the group that is Tutorial. Easy right???

13---------------------------------------------------------
From kdsayang

What I meant is in Data --> Time Constraints --> Teacher Time Constraints --> A Teachers not available time, 
1. If u double clicked Afida, 
2. It will show Afida not available time right. 
3. Then If u want to change Sambilan not available time by choosing Teacher drop down menu, nothing happen. In fact, It still shows Afida not available time. 
4. So, if u want to change Sambilan not available time, u have to clicked Cancel button first, 
5. then double clicked Sambilan. 
6. Now u can see that Sambilan not available time is updated.

My suggestion is that It will be better If FET can update to Sambilan from Afida in Step no 3. 
TQ

14---------------------------------------------------------
From kdsayang

Hi,
 
I have some other suggestion.
 
1. It will be GREAT if FET can be turn to tree structure. We can show/hide the structure
2. In the tree structure, we can use the copy, cut and paste to edit the subject, activities, etc in the tree structure
 
example of tree structure can be seen in attachment
 
Thanks 

15---------------------------------------------------------
From kdsayang

If  I want to change many teacher not available time, I need to add one by one although the teacher not available time is the SAME.  
 
So, I suggest that u can add A set of teacher not available time. Same as A rooms not available time feature. 

16---------------------------------------------------------
From kdsayang
On current version, there is no group for subject and teacher. It is quite annoying if u have to look for certain subject X and teacher Y in that list. When the list grow bigger (let say 100), it's kinda hard because u have to find that lecture and subject in that 100 lists. Although the sorting is a good way to find the subject and teacher, IMHO maybe we can make groups in that teacher and subject section

For example I wanna find teacher X and subject X. Teacher X is a teacher that teach Diploma IT student. So, I just search that teacher in Diploma IT group rather than searching 100 other list. Same as subject X.

This feature is needed if my/our/your university/school is a big one where teacher and subject are hundreds...

17---------------------------------------------------------
From Bobby Wise
Hi Liviu,

The only improvement that I can think of right now is the printing function.

Where I've demonstrated the software all the users ask why they have to exit out of FET and print through the IE. All would prefer to print directly from FET.

So that might be something you may want to look at.

Best regards
Bobby

18---------------------------------------------------------
From daviodan

In preferred time slots, preferred starting times, break or not available, clicking
on a day or hour (column or row head) will set/reset/toggle all hours (or days) in this slot

Or: make a combo box: column and another combo box: row. Add button "Change", so we can change
a specific row or column by this procedure. - comment Liviu: the dialog would become very complicated.

19---------------------------------------------------------
From George Miliotis (Ionio, Greece)

PS. Feedback: Fill the empty FET window with buttons for the most common
tasks. You could also add a search editbox and a few checkboxes (e.g.
find activity/rule live by typing in an editbox, matching all fields)

20---------------------------------------------------------
From Niels (gesamtschule)

yesterday evening we run in to trouble, because we had defined some constraint which makes the problem unsolvable.
To analyze such a situation it would be extremely helpful, if it become possible to filter all constraints.
For example give me all constraints for activity x. This means all which was directly defined to the activity
and all which defined for the subject and the teacher. Is it possible to realize this quickly? Otherwise 
I will start to write an own solution based on the xml-file.
Niels

21---------------------------------------------------------
From Zsolt Udvari

We've created a timetable but the rooms aren't. So we do it by hand.
How can I change in FET the rooms simpiler in a generated timetable?
The times are locked.
It would be the most simplier when I open e.g. the teachers timetable,
click on a activities and I can add room to this.

----------
Liviu wrote:
> I'm sorry, but you'll have to add manually constraints activity preferred
> room
> for each of the activities.
>
> I am not sure I understood correctly the problem, if not, please excuse me
> and
> explain more detailed.
----------

Yes, imho you understand my problem. I hoped that there is a simplier
solution. So, maybe in the next releases would be nice: when a
timetable is generated, user can changes/sets the rooms (only the
activities without rooms of course) from the timetable (Timetable ->
Show teachers/students): you select an activite, you click a button
with "Assign room" and choose a room.

One more: plus constraint: maximalize the activities in same time -
because of number of rooms.

22---------------------------------------------------------
From Naji

Hopefully, FET's team can enhanced it to be able to export the xml data to database, that will facilitates the 
output of the data and enables programmers to engage it with their programs.
