- To schedule firstly the activities which have fixed time?

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

Let FET automatically generate x timetables (suggested by Volker Dirr):

> Yes, I thought of this also. But here is what I think: run x times and
> choose
> the best, considering the conflicts factor. Only print this timetable. Or
> save them on the hard disk, internal structure, small file, and let user
> browse them in the interface.

no, please save x timetables and let manualy choose.
sometimes it´s very difficult to say what is better.

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

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.

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



long time goals:

code cover planning (open)

code lesson planning (open)



WISHLIST:

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

2---------------------------------------------------------
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."

3---------------------------------------------------------
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)

4---------------------------------------------------------
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.

5---------------------------------------------------------
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.

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 dont 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 isnt 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. ist nonsens to subactivities, it has just sense with activities.)

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

9---------------------------------------------------------
From Volker Dirr:
> > so the current "problem" is:
> > if you allocate a timetable and stop or interrupt allocatation, 
then
> > the timetable is saved in /results/.
> > if you restart allocation now, then the old timetable will be lost,
> > because the new (maybe more worse timetable, because you allocate
> > just a second) has the same name, so the old results will be
> > overwritten.
> >
> > i think this is a TODO to ask the user before overwriting the
> > results or ask for a new name.
> 
> I don't think this is necessary, Volker, the files might become too 
numerous.
> 

currently we are doing this with untis. we save several timetables and 
choose the best manualy. we do this, because untis didnt differ 
between some constraints.
for example:
a timetable with 1 teacher who have 5 gap-times.
an other timetable have 5 teachers with 1 gap-time per teacher.

so this timetabels are as good as the other, but of course we prefer 
the second one.

10---------------------------------------------------------
From Joshua N. Pritikin
Can we have an option on the "add new activity dialog" to make the 
preferred day & hour compulsory? Compulsory constraints are MUCH faster 
to allocate than non-compulsory constraints.

> > On second thought, rather than clutter the "add new activity dialog," a
> > "lock all" menu item would probably be just as good.
> 
> I don't understand. You mean to lock all activities in the current timetable, 
> like when viewing the timetable?

Yes.

When viewing the timetable, you can only lock the activities you can 
select on the screen. I'd like the option to lock all activities in the 
current timetable.

11---------------------------------------------------------
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.
