Inspiration

We have been going to schools in Fairfax County, Prince William County, and Loudoun County, and one of the most common annoyances that we see in schools are incorrect schedules. In fact, during one of our team members freshmen year, he was forced to take art instead of Spanish due to such mistakes. We realized that the method used to generate schedules was very ancient and not efficient, and we could use computer science to fix this problem.

What it does

Our code takes in information regarding the teacher names, the classes they teach, and how many periods they teach each class, and finds a valid teacher schedule. We then take in information regarding the student names, their desired courses, and alternate courses, and find valid schedules for each student based on teacher schedules.

How we built it

We used text files to get all the information for teachers and student, and created our data structures based on it. We then used a csp algorithm that generate both the teacher and student schedules, where failure is determined by not having teachers to teach a desired course during a specific period.

Challenges we ran into

We ran into challenges when trying to implement our code into a website since we did not have experience implementing python code into a website. We also ran into challenges when making sure the code works with any possible number of classes, students, and teachers.

Accomplishments that we're proud of

We are proud of having a working website that generates valid schedules based on its input data, and following constraints such as alternate courses and course sizes.

What we learned

We learned about incorporating python code with java script and how to make efficient and varying data structures.

What's next for High School Schedule

We will make it such that it can work with more constraints such as semester classes and classes that need to be clumped together, such as humanities and IBET. We will also make it more efficient so that the code won't take as long with bigger inputs.

Share this project:

Updates