Group 1: Liu, David Cristini, Jayden Omar, Ali Dubay, Aryan Group 2: Lee, Raphael Evans, Liam Sayani, Jayadeep Group 3: King, Owen Guo, Nemo Jiang, Harry Seeman, Joey Group 4: Liu, Ben Morley, Nate Venkatesh, Tharun Group 5: Kuang, Jack Kyoung, David Qian, Yunhao
The learning outcomes of this project are to teach you:
- Goal 1: to research a complex problem and propose a solution
- As someone working in computer science, you will often be faced with problems that for which there is no best solution, but a solution is needed nonetheless. Problems like this often have a number of different known approaches to finding a workable solution. You are encouraged to use Chat GPT and/or other AI tools for this project.
- Goal 2: to test, analyze, and refine a solution with multiple iterations
- Because your first one will be terrible.
- Goal 3: Choose the best tool for the job
- You will decide upon which platform to solve this problem. You may use any language or platform providing you can run it on school computers as they currently are (I am not waiting for IT to install new software for you. One year I asked them to install Android Studio for this project and 6 months later it still didn't work.)
- Goal 4: Collaboration
- Defined as "the action of working with someone to produce or create something." A number of soft skills that employers look for in CS related jobs, including communication and leadership, require collaboration. You will be assigned teams of 4ish for this project. You will be assessing yourself and your team at the end of the project.
- Goal 5: to use Github
- 3 Reasons Why You Should Learn Github, 'nuf said.
This "Term Project" portion of your grade is 20% of your total mark on the final report card.
The school timetabling problem is a classic optimization problem in which a schedule needs to be created for various resources (such as classrooms, teachers, and students) over a set time period. The goal is to assign classes to specific time slots while satisfying a range of constraints and objectives.
Here are some key aspects and challenges of the school timetabling problem:
- Constraints: There are numerous constraints that must be considered when creating a school timetable.
These constraints can include:
- Classroom availability: Each class requires a suitable classroom with adequate capacity and necessary facilities.
- Teacher availability: Teachers can only teach a certain number of hours per week and may have preferences or restrictions on which classes they can teach.
- Student preferences: Students may have preferences or constraints regarding the timing of their classes.
- Subject dependencies: Some subjects may have prerequisites or co-requisites that need to be scheduled accordingly.
- Avoiding conflicts: It's important to avoid scheduling classes at overlapping times for both teachers and students.
-
Objectives: In addition to satisfying constraints, there are various objectives that can be optimized in school timetabling, including:
- Minimizing gaps between classes to maximize efficient use of time.
- Balancing teacher workload to ensure fairness and prevent overloading.
- Minimizing the number of classrooms needed to reduce resource usage and costs.
- Maximizing student satisfaction by accommodating their preferences when possible.
- Complexity: The school timetabling problem is known to be NP-hard, meaning that finding an optimal solution becomes increasingly difficult as the size of the problem grows. As a result, exact algorithms often struggle to find solutions within a reasonable time frame for large instances of the problem.
- Approaches: Various approaches can be used to tackle the school timetabling problem, including:
- Exact algorithms: These algorithms aim to find the optimal solution by exhaustively searching through all possible schedules. However, they can be computationally expensive and impractical for large instances of the problem.
- Heuristic algorithms: These algorithms use rules of thumb or "good enough" strategies to quickly generate feasible solutions, though they may not guarantee optimality.
- Metaheuristic algorithms: These are higher-level strategies that guide the search for good solutions by exploring the solution space in an intelligent way, such as simulated annealing, genetic algorithms, or tabu search.
- Software Solutions: There are specialized software tools available for solving the school timetabling problem, which often incorporate a combination of algorithms and techniques to efficiently generate high-quality schedules.
Overall, the school timetabling problem is a challenging optimization task that requires balancing numerous constraints and objectives to create a feasible and efficient schedule for educational institutions.
Author: chatgpt 3.5
Testing, analyzing, and refining a solution to a programming problem are essential steps in the software development process for several reasons:
- Verification of Correctness: Testing allows developers to verify that the solution behaves as intended and produces the expected results. This ensures that the program functions correctly and meets the specified requirements.
- Identification of Bugs and Errors: Through testing, developers can uncover bugs, errors, or unexpected behaviors in the solution. By identifying these issues early in the development process, they can be addressed and fixed before the software is deployed or released to users.
- Improvement of Performance: Analysis of the solution's performance can reveal inefficiencies, bottlenecks, or areas where optimization is needed. By analyzing the performance of the solution under various conditions and workloads, developers can identify opportunities to improve speed, efficiency, and resource usage.
- Validation of Assumptions: Testing helps validate the assumptions made during the design and implementation of the solution. It ensures that the solution works as intended in real-world scenarios and that any assumptions made about the environment, inputs, or user behavior are accurate.
- Enhancement of User Experience: By gathering feedback from testing and analysis, developers can refine the solution to better meet user needs and expectations. This may involve improving usability, adding features, or addressing pain points identified during testing.
- Adaptation to Changing Requirements: As requirements evolve or new use cases emerge, it may be necessary to refine the solution to accommodate these changes. Testing and analysis help identify areas where the solution needs to be adapted or extended to support new requirements or use cases.
- Continuous Improvement: Software development is an iterative process, and refining the solution based on testing and analysis is crucial for continuous improvement. By iteratively testing, analyzing, and refining the solution, developers can gradually improve its quality, reliability, and performance over time.
Author: chatgpt 3.5
Google "School Timetabling Problem" and research all aspects of the problem. Ask ChatGPT. Get to know the problem in general.
Ask Ms. Wear for the data you will be provided. Look at the data. Get to know the data. Data Q&A.
Learn from what last year's class did: 2023 Group Project Presentations
Decide what kind of solution you would like to try.
Java? Python? PHP? Pick a platform to solve this problem in. You will need to be able to read in text files and write to text files.
- Watch What is Github
- Watch Branches
- Watch Forks and Pull Requests
- Watch Github Issues - key to managing complex software collaboration.
- Join Github.
- How to Eclispe with Github or try this one
- VS Code and Git integration
- Use a Github repository
- Use a shared Google Doc to document the progress of your project. In this document record all your ideas and useful resources you've found. Document everything you try, and if it succeeds or fails.
There is no "I" in team. To be a valuable member of a group project, always ask yourself, what can I do to help the team succeed. This is not about you, it is about the team. As soon as you ask "What am I getting out of this?" you have stopped being a part of the team.
Read the assessment below and write methods to assess the success of your solutions.
In the context of the school timetabling problem, metrics play an important role in assessing the quality and effectiveness of a scheduling solution. Here are some specific metrics that can be used to evaluate a timetabling solution:
- Schedule Completeness: This metric assesses how well the timetable covers all required classes and activities without conflicts. It measures the percentage of scheduled classes out of the total number of classes that need to be accommodated.
- Resource Utilization: Resource utilization metrics evaluate how efficiently resources such as classrooms and teachers are utilized in the timetable. This includes metrics like classroom occupancy rate (percentage of time classrooms are occupied) and teacher workload (average number of teaching hours per teacher).
- Student Satisfaction: Student satisfaction metrics gauge how well the timetable aligns with student preferences and constraints. This can be measured through surveys or feedback mechanisms to assess factors such as class distribution throughout the week, alignment with student preferences for specific times of day, and overall satisfaction with the schedule.
- Teacher Satisfaction: Similar to student satisfaction metrics, teacher satisfaction metrics evaluate how well the timetable accommodates teacher preferences and constraints. This can include factors such as workload distribution, alignment with teacher availability and preferences, and overall satisfaction with the schedule.
- Minimization of Gaps: Gaps between classes can impact the efficiency of the schedule and the student experience. Metrics related to minimizing gaps measure the total duration of gaps between classes and aim to reduce idle time for both students and teachers.
- Conflict Resolution: Conflict resolution metrics assess the extent to which scheduling conflicts, such as double bookings of classrooms or overlapping teacher assignments, are resolved in the timetable. This includes metrics such as the number of conflicts resolved and the severity of conflicts remaining in the schedule.
- Optimization Objectives: Depending on the specific objectives of the timetabling problem, additional metrics may be used to evaluate the solution. For example, if the goal is to minimize transportation costs, metrics related to the distance traveled between classrooms for students or teachers may be relevant.
By analyzing these metrics, stakeholders can assess the quality of the timetable solution, identify areas for improvement, and refine the schedule to better meet the needs of students, teachers, and the educational institution as a whole.
- Milestones - 40%
- Presentation - 40% (Presentation Assessment Criteria)
- Self and Peer Assessment - 20%
- Meets tba% of all requested courses placed
- Meets tba % of all students have 8/8 requested classes
- Meets tba % of all students have 7-8/8 requested classes
- Produce timetables for all students sorted by number of requested courses placed, then by ID (the end of the list will have students with incomplete timetables)
- Produce the master timetable balanced.(similar number of courses in each block)
These are the milestones from last year. They are subject to change.
Milestone 1Generate a timetable and assess its level of success
Assessment (/15)/5 - Master Timetable Attempted - but computer taking to long to calculate
/5 - A complete master timetable is presented in a tabular form with the following column headings:
S1 A S1 B S1 C S1 D S2 A S2 B S2 C S2 D
(I should be able to search for any course and find all sections of it)
/5 - Metrics:
- % of all requested courses placed
- % of all students have 8/8 requested classes
- % of all students have 7-8/8 requested classes
BONUS (/2): I can randomly choose a student and get their personal timetable
Milestone 2Require that your master timetable has the correct number of sections for each course, never has more than the max number of students in a course and never runs a class with less than 50% of its max. In addition provide the following metrics:
- The number of students registered in each section of each course displayed in the master timetable
- The number requested courses placed/number of request courses
- The % of students with 8/8 courses (requested only)
- The % of students with 7-8/8 courses (requested only)
- The % of students with 8/8 courses (requested or alternate)
Bonus (/2) : you can show 3 students with 8/8 requested courses
Assessment (/15)/5 - Correct number of sections for each course (tested with random data set)
/5 - Enrollment for each section printed in master timetable
/5 - Metrics
Milestone 3By this point you know if your solution is working, or not. The goal of this project it to create good timetables for ~1000 students. In this Milestone, I want you to make a change to what you are doing that creates better results. This can involve working with another group (using a master timetable they have created as a starting point, OR adding some of their algorithms to yours)
Be sure to have implemented:
- All sequencing and blocking rules in place
- Linear courses in place
- number of requested courses placed/number of request courses > 80%
- % of students with 8/8 courses (requested only) > 40%
- % of students with 8/8 courses (requested or alternate) > 50%
Bonus (/2) Random student selected, gets 8/8 requested or alternate courses and the schedule breaks no rules.
Assessment (/15)/5 - All Sequencing and Blocking rules are in place. I will choose a random sequencing rule and a random blocking rule to test.
/5 - Linear courses are in place. I will choose a random linear course to test.
/5 - Metrics
Bonus (/2) Random student selected, gets 8/8 requested ONLY and the schedule breaks no rules.
Milestone 4 (subject to change)Metrics:
- show number of courses in each block, should not vary more than 3 courses
- number of requested courses placed/number of request courses > 60%
- % of students with 8/8 of requested courses > 20%
- % of students with 8/8 courses (requested or alternate) > 30%
- % of students with 1-2 courses not fulfilled (alt or requested) < 60%
- % of students with 3-8 courses not fulfilled (alt or requested) < 15%
Assessment:
/15, -1 for each not met, -2 if metric not provided
Bonus (/2) 1 random student selected, all get 8/8 requested OR alternate and the schedule breaks no rules.