Solved

School scheduler - 600 points for codes

Posted on 2002-04-18
33
387 Views
Last Modified: 2010-04-04
One from my friends ask me to help him to step over this problem . In the next school year, he must make the classes scheduler ( for all school ) . But because is a titanic work , he ask me to help him .

So ... because I don't have any idea how to do that I wish to find an open source project ( to convert to my friend needs ).

You know : to input the name of teachers , the number of hours, the classes... and to get the course hours program.

600 points for a real help .
0
Comment
Question by:ginsonic
  • 15
  • 6
  • 2
  • +7
33 Comments
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
hmm, thinking
(its just a timeproblem on my side)
its a nice little database-project
0
 
LVL 7

Expert Comment

by:God_Ares
Comment Utility
it's a HUGE task. Manny needs are requrid like classes don't want too big holes in thier schedule and class x can only be givven on monday... etc.. the quistion is too big in my opinion. you can make a commercial product do.
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
In my country the school don't have money for alike stuff. In fact , we don't have enough money for teachers salary :(
0
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
>it's a HUGE task
really?
i don't think so,
some tables (classes, teachers, courses, kalendar, ...)
some relationships, some subtables for normalizing,
a frontend, some reports seems not much

(just to say, that my primary
work are database-apps and database-design,
which are much more complicated and really huge)

but nevertheless, until this app will be ready
some weeks are gone, even if i do it

meikl ;-)
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
I increase to 600 points .
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
kretzschmar , I will appreciate if you will involve in this problem . How you know already I'm a 'greenhorn' with database application ( I read now all what I can find about SQL ). In same time I'm just an amateur and not a proffesional .

To stimulate the interest to this topic ( and because I really wish to help my BEST friend - he told me that spend a week to do this schedule) I can offer 1000 ( my last... ) points for this job .

Best regards,
Nick
0
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
hehe, a week,
guessing your friend didn't done such

well, atleast it depends on what all is needed.

i would do it and it isn't a question of points,
but i have just not enough time,
the only thing i could offer is support

do have any concept on hand or in mind?
(if not, then thats the first step
to check out what is needed, something
alike brainstorming with your customer/friend,
usual the customers knows the result he wants,
but never knows, what all is needed to reach the goal)

meikl ;-)

0
 
LVL 4

Expert Comment

by:nestorua
Comment Utility
HI, ginsonic,
To begin with you must describe what we have to take into account when propose you some sort of a solution.
Because this task may be simple and may be difficult -
all depends of the parameters we take into account.
Sincerely,
Nestorua.
0
 
LVL 4

Expert Comment

by:nestorua
Comment Utility
You're from Romania, if I am not mistaken.
What they take account of when tabling syllabus in your country.
0
 
LVL 14

Expert Comment

by:DragonSlayer
Comment Utility
I guess you could have a look at these (not done in Delphi though)

(Java) http://sourceforge.net/projects/xpusp/
(Java) http://sourceforge.net/projects/jadvisor/
(PHP, Perl) http://sourceforge.net/projects/irvine/


HTH
DragonSlayer.
0
 
LVL 9

Expert Comment

by:ITugay
Comment Utility
Hi all,

It's interesting task, but it really should be specified in details. Look at three variants:

1. User only enter already prepared (sheduled) data.

2. User enter prepared data but application responsible to inform about conflicts with classrooms and teachers.

3. User enter initial data:  

a)  class room specification: capacity, subject (mathematics, phisics, ,...., any)
b) teacher specification: subject, numbers of hours allowed, weekdays, student groups assignment, etc.
c) students group specification: capacity, first/second half of day...
d) class rooms relative location (it can be located in different buildings)
e) student groups assignment: subjects and numbers of hours
f) subject specification: allow to join few student groups or not, can be doubled in the same day, etc.....

In last case it is really huge task.  Working as buisness analyst, I can suppose that it takes about half of year for one high-qualified Delphi programmer. It is "country wide" project, so, it takes an  additional time and people ressourses (technical writer, tester,...) to build easy distributed, well documented and easy to use application. Can it be done for free even for friend?

-----
Igor.
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
>Can it be done for free even for friend?
I will try :)

For all ... yes , I must add couple supplimentar informations .

I think that Igor is most close about my friend needs:

A)  class specification: subjects (mathematics, phisics, ,...., any) and numbers of hours

B) teacher specification: name, numbers of hours, weekdays, classes allowed

C) the subjects must be introduced graduate ( by hours and days )
By Hours example : 8-9 - easy subjects ( Sport,painting, music), 9-10 medium( biology,geography), 10-13- hard(maths,physics), 13-14 medium or easy .

By days : Monday : Easy-Medium, TuesdayMmedium,...Medium-Hard...Hard...Hard-Medium...Friday : Medium-Easy .

c) students group specification: first/second half of day...- interesting thing , but not necesary

d) class rooms relative location (it can be located in different buildings) - interesting thing , but not necesary
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
If you find this project interested , we can create a common project and ,at finish , everbody to can sell this in own country - I doubt that I will can sell in mine :)
0
 
LVL 9

Expert Comment

by:ITugay
Comment Utility
hi Nick,
it would be better to write something for Oil Comapny or Gold Exploration Company :-)
Having more then 70K lines of code project, I'm really have no time to write something big.
Anyway, if you will have some questions until this project, you are wellcome.

----
Igor
0
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
seems igor has the same problem as me :-)
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
OK. When .. if .. I will finish this project, I will put it on my site ;)
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 

Expert Comment

by:asi
Comment Utility
good project have to be huge.
in my company we develop simular project for CallCenter's
and for larg school institutes.
Many AI uspect are involved .
www.aipoint.com
0
 
LVL 4

Expert Comment

by:SurferJoe
Comment Utility
Having written a scheduler for real estate offices with rotating days, staff requirements etc and also a scheduling program for a large fabricating outfit this is very tempting question you pose.

Like many other contributors I rarely have time to post my own questions, however;

The approach I would take is simple;


1
Identify absolute constants;
      Number of days.
      Days of week.
      Hours of  day.
      Starting day.
      Ending day.
Also determine if these factors will very for specific classes.

2
Identify all adjustable/dynamic constants.
      Number of teachers.
      Number of classes.
      Number of students.
      Number of students per class
Here you could even identify the teachers preferences for hours they like to work, day classes, night classes etc
Labs study halls and other miscellaneous functions of the teaching staff could also be taken into account.

Gee wiz, you could even setup the student database with a detail table that would store when they registered for a given class and weather they where the first to signup or the last. This way you could be sure classes where filled on a first come first serve basis.

Once you have identified and all of the items Fields, then group them into Tables that make sense for example;

Student Table
      Student ID
      First Name
      Last Name
      Address
      Etc..
      
      Student Class Detail Table
            StudentID
            Class ID
            Etc.
            

Teacher Table
      Teacher ID
      First Name
      Last Name
      Address
      Etc..


Class Table
      Class ID
      TeacherID(s) // If this requires more than one it would require a detail table
      Max students
      Min Students
      Start Date
      End Date
      Days
      Hours


Once you have all of this information organized then the real fun begins,! You have to develop algorithms to divine the desired results.  While challenging its really quite fun.

Dont worry about starting with complete data, once you have the tables designed input a few classes, a few teachers etc the start working thought the logic.

Pretend you are sitting down to do the schedule by hand, ONE STEP AT A TIME
Before long you will start to see how the logic can be reduced/drilled do with staments like

Repeat

      If then
      Else

Until (eof)

For example in my shop scheduling program; this info comes from employee table
      How many welders do I have?
      How many helpers do I have? etc.
      How many of each type of worker works overtime?
      How many of each type of worker works weekends?

Then                  // this info comes from Work orders and Estimates
      How many jobs are there?
      Start date?
      End date?
      Work weekends?
      Work overtime?
      How many hours where bid for each type of labor?
      
      How many hours have already been work on h job by labor type, etc...

Once all these variables are loaded up then drill down begins and it was a real dozy. I broke each decision in to a logical procedure or function.

Just make sure the logic is linier, another words;
      Decision 1
      Decision 2
      Decision 3
      Etc


Not
      If Decision 1 then
            Decision 2
      Else
            Decission 3
      Other wise
            Decision 4      // This kind of code would make you crazy


Another thing that works great;

Create a form with a TpageControl on it, add a tab for each master table with that tables natural detail table on it "These can be used to populate your tables with sample data, which will also reveal many things about you design.
Then add a couple of tabs with TStringGrids on them.

Then starting with the first Decision drop a button and write the code for that series of logic, storing the results in the StringGrid(s) so you can readily examine the results FAST.

Continue until all of the logic has been reduced to Decision1  DecissionX. Then you can drop the buttons and organize your finished functions and producers. Use meaning full names, write lots of comments as you go so you can readily remember what the thought was when the code was authored.

Example
    procedure myInitArrays; // and String grids
    procedure CreateRosterCountTrades; // Get the workers information
    procedure GetEstimateSummaryData;
    procedure GetActualHoursCalcRemaining;
    procedure CountWeekendDays;
    procedure CalcWorkDaysLessWeekends;
    procedure CalcHoursPerDay;
    procedure DistributeHoursAcrossTimeLine;
    procedure TallyLabor;



Hope this helps.

Regards,

Greg Rowland
0
 
LVL 4

Expert Comment

by:SurferJoe
Comment Utility
I should also add that; in my case the application opens with a query for all Open Jobs in Progress, then processes each job in turn to a line on the grid with procedures 2-8. Then # #9 “procedure TallyLabor;” Totals up our labor committed for each type of labor and each day.

The program also allows the user to specify the start date and end dates so we schedule into the infinite future. Each labor type can be included or excluded from the schedule individually for each job so we can see how the schedule is affected, even by jobs that have not yet been contracted.

Regards,

G
0
 

Expert Comment

by:lottol
Comment Utility
Look at this School Scheduel program
http://schedule.narod.ru/DownLoads/SetupSchedule2000.zip

This is a shareware program (50$) :), but possible you'll find in it something interesting
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
Thanks lottol, but I don't know russian ( not enough to understand the documentation ).
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
I thinking to use an unique ID for each teacher that contain all needed infos . Alike :

H-23-16 where:
1. A is the difficulty of the matter : H-hard,M-medium,E-easy;
2. 23 is the teacher number ( from teachers list );
3. 16 is the subject number ( from matters list );

For each class to create an array with 7 columns ( 7 days ) and 10 rows ( max 10 hours class ).

The teachers IDs will be stored into class array ( of course with couple conditions ).

What do you say about this idea ?

Nick

P.S. I will upload the project ( source code ) to my site for interested people ( for study , correct it , or cooperation ).
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
kretzschmar , can you help me ? The time isn't a problem ( I need to finish this untill August or the beggining of September ).
Or if don't have time ( but maybe couple minutes :P ) can you direct me through this area ?

"some tables (classes, teachers, courses, kalendar, ...)
some relationships, some subtables for normalizing,
a frontend, some reports seems not much"

I don't need a complex program . For my friend need I created just next two tables :

Teachers table with name,subject,level subject,classes and the total hours by week .
Classes table with class ID, subject, and subject hours by week .

Regards,
Nick


0
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
thinking . . . i let you know this evening

what about the other suggestions above?
(i guessed there were some of interest)
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
I need more help :( How I say already, need some codes .
Hope to have an answer that will make me happy :)

Best regards,
Nick
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
I started today the project , two weeks of holidays :) .
At http://www.ginsonic.ro/Schedule_0.00001.zip you can find the full project and used components .

Every day I will upload the last version . If interested wait your support .
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
Finish the easy part :P
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
:(
0
 
LVL 5

Expert Comment

by:Netminder
Comment Utility
Proposed deletion rejected. There's too much information here.

EXPERTS: Please let me know how this question should be resolved.

Netminder
CS Moderator
0
 
LVL 9

Author Comment

by:ginsonic
Comment Utility
Netminder read this part from my question:

So ... because I don't have any idea how to do that I wish to find an open source project ( to convert to my friend needs ).
0
 
LVL 27

Expert Comment

by:kretzschmar
Comment Utility
metminder,

refund points to ginsonic,
reduce points of this q to 0 and
paq this q

if possible

meikl ;-)
0
 
LVL 5

Accepted Solution

by:
Netminder earned 0 total points
Comment Utility
Per recommendation, points refunded and question closed.

Thanks, meikl.

Netminder
CS Moderator
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now