Algorithms Project
Algorithms Project
Project Policy
Code must be original, and may not be copied or shared from any other source, except as provided by the class instructor Plagiarism will be very strictly punished
Project Submissions
Each project has associated with it a deadline due date. For each project, you should submit a zip file containing the following: o All source files o README.txt, containing documentation, analysis and other comments. (This could a plaintext or Word file) o You may read the input from a database file or excel file and show it in GUI directly. o If you have any, sample run outputs should be able to export it to an excel file and show it on the GUI as well.
Project Grading
Projects will be graded based on the following criteria:
Correctness -- the program system works according to project requirements o Source code o no syntax errors, no run-time errors, and the correct output must be produced o improper input gracefully handled, allocated space returned after it no longer is needed, and error-checking performed after calling any system or library function Testing, timing -- correct implementation of all functions needed for the complete project but not part of the project specifications o code needed for I/O o code needed for testing o code needed for timing Program structure -- well modularized, no gross inefficiencies (space or time) Internal documentation -- concise comments, indentation, descriptive variable names, explain "magic" numbers
o o o o o o README.txt/doc
how to use the program description of data structure implementation (some of this may be internal) theoretical time analysis of the underlying algorithms production of a function (based on your timing and analysis) to predict the time required by your system for larger instances of the problem accurate analysis of the space requirements
The cause for potential conflict could be any of the following example restrictions: Courses Calculus and Electronics might be taught by the same professor, Courses Microprocessors and Operating Systems might be taken by the same student.
Soft Constraints : (constraints over that we can pass sometimes but it is preferable not to do so and every time we violate them this fact is reflected on the overall efficiency of the timetable) 1. A teacher should not teach more than 6 hours a day. 2. A student should not have more than 8 hours a day. 3. There shouldn't be gaps in the activity of the teachers.
Please note that there is a difference between Labs, tutorials, and Lectures. Also, TAs are assigned only to Labs and tutorials. The same rules are applied for exams when it is applicable; however, a student cannot have more than two exams per day. In addition, hard constraint #5 is relaxed for the exam schedule.
Guidelines Articles:
A Survey of Automated Timetabling Graph Coloring Conditions for the Existence of Solutions to the Timetable Problem A University Timetabling System based on Graph Colouring and Constraint Manipulation (Very important ) http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.95.3879 http://webdocs.cs.ualberta.ca/~joe/Coloring/#Graph.Colorers http://www.adaptivebox.net/CILib/code/gcpcodes_link.html http://shah.freeshell.org/graphcoloring/ http://www.emo.org.tr/ekler/76e76856c7fea3b_ek.pdf
Deliverables:
1- Survey on different solutions to the problem . 2- Justification to data structures and algorithms used . In other words , what data structures you used and why? 3- Source code of your implementation. 4- Readme file.
5- Some test cases of your design. 6- Hard and soft-copy report describing the used methods
Project Grading (100/105) 1) The project starts by designing a data structure to enter the courses and instructor requirements. A simple and efficient data structure and user interface is required. (8%) 2) A GUI and efficient data structure for the student registration are required. (8%) 3) GUI for setting the constraints (5%) 4) Visualizing the relation between the courses (9%) 5) Generating the conflict matrix (table) (10%) 6) Choosing and implementing the best coloring algorithm (20%) 7) Satisfying all hard and soft constraints (15%) 8) Generating the final tables (5%) 9) Considering the Exam schedule using the same coloring algorithm (15%) 10) Efficient programming (comments, documentation, structure, source code , etc.) (5%) 11) Final Report ( table of contents , Survey on the problem solutions , clear description to the data structure and algorithms used, test cases , performance measures to the algorithms and the running time of the software) (5%).