
From Peter Ambroz:

 It would be fine to have a new space constraint(s): A student set has a  
 preferred room / set of rooms
 In our school, we create timetables for every room in the building, not  
 only for those constrained by number of students or time. Therefore it  
 would be nice if I could create every room and set it as a default room  
 for some class (set of students) with some weight, so that the generated  
 timetable will contain room name for every activity. And then I could  
 print timetable for each particular room.

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

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 "Max gaps per day" and "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 Maciej Deorowicz:

Buildings for rooms and constraint students max building changes per day
and constraint students min gaps between building changes.

ConstraintActivitiesPreferredRoom(s) (like acts. pref. times)


Maybe similar request with min gaps between building changes, from Marco Barsotti:

>    - I have more teachers with some activity in some classes at a *first
>    address* (subject tag 1). They have also some activity with some *other
>    classes* at a *second address* (subject tag 2). When I define an
>    activity and I add a subject tag, I would like to be able (select)
> impose a gap after that activity IF (and only IF) *next activity (for
> teacher*) has a different subject tag. Can you plan to add a such
> constraint? - 

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

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


If u could add constraint 'teacher max gaps daily'
it would be really very helpfull for me.

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

From Danail Traichev:

> Another sweet feature of FET will be the ability to load its data from
> CSV or simple text files. This will make import from other programs a
> lot easy, and it is not so hard to implement. For example I can export
> my teachers in a simple text file, one teacher per line, but I have to
> enter them in FET one by one. Same for the subjects, and for the rooms.
> For activities I can export them in CSV file, in form "teacher, class,
> subject, hours", but I cannot import this in FET.


> And another simple feature - to remember and open the last timetable
> file :-)

> 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 (29 September 2007):

Maybe do the "not avalible" constrains like constarint "activity perferd
times". (so a timetable with many "yes" and "no")
the advantage is:
- don´t need to add two constarints if a teacher/student/room is not
avalible at two days.
- no missanderstandig with the periods (is not avalible from X to Y)

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

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)

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

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.


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


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 Scott Sweeting:
I have come up with another idea for FET. �You currently have a timetable - both 
individual and compiled - for rooms, students and teachers. �How about have another 
one for subjects? �This would be in both forms - individual and compiled - and would 
contain the teacher(s), group(s) and room(s) for each activity. �This would allow 
you to see when a subject is being taught, which is handy for school and university 
environments. �This would allow you to cover all four areas - rooms, students, 
teachers and subjects.

7----------------------------------------------------------
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 ?

8---------------------------------------------------------
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.)

9---------------------------------------------------------
From Joseph M Fontana:

Yesterday I was doing some testing and I was able to create some
simple timetables where I could view teachers-with rooms after all the
allocations had been completed. Before leaving I saved the file where
I thought all of the information would be kept.

This morning, I wanted to continue testing and I opened the file I
created the previous day and I went to view teachers-with rooms. To my
surprise FET asked me to allocate the rooms again (message saying:
"please allocate the rooms, firstly").

10---------------------------------------------------------
From fsh_felix
I hope you can enhance the software with an IMPORT utility to read 
text files for (in the order of:)
(a) �Subjects
(b) �Teachers
(c) �Class groups and subgroups
(d) �Rooms
(e) �Activities in the form of
� � �Subject1
� � �Teacher1, Class groups1 or subgroups1, hours of lesson
� � �Teacher2, Class groups2 or subgroups2, hours of lesson
� � �...
� � �Subject2 � 
� � �Teacher1, Class groups1 or subgroups1, hours of lesson
� � �Teacher2, Class groups2 or subgroups2, hours of lesson
� � �...

The above files allow different course timetabling planners to plan 
and write their requirements in text files or excel files (which can 
be exported to text files) in a standard format before the scheduler 
(normally one person) who keys in the requirements in the timetabling 
software for the different courses to maximize the use of resources.
