Inspiration

I have talked a lot about planning classes with peers at school and spent a lot of time making schedules. I have noticed that this is a problem that takes up a lot of time for many people. The prerequisites have always confused me and made me hate planning classes. I always thought that there should be an easy way to visualize the classes I need to take and how they fit into my remaining semesters.

What it does

There is a text box where the user can input each of the Computer Science related classes they have taken so far. Then, they can click a button that automatically fits all of the remaining computer science classes they have left to take into boxes each corresponding to one semester. Then, the program displays the classes they have left to take in as little semesters as possible. The semesters are also made so that the user meets the prerequisites each semester, assuming they pass each class.

How we built it

The program is written in Java and uses a Java Swing GUI. It includes a "Course" class that has information about each course including its prerequisites, and whether those prerequisites are met. When assembling the schedule, each class is put into a stack, and the stack is emptied while placing each course into the correct semester.

Challenges we ran into

I did the project solo and had little experience doing front end. I had to learn a lot about Java Swing to make the GUI within the time constraint. I also had trouble using the Action Listeners to update certain components using data from other classes.

Accomplishments that we're proud of

I think the GUI looks clean, I was worried about having to get the components into an appropriate spot, but that did not end up being an issue.

What we learned

I learned a lot about GUIs and I have a better understanding of classes in Java.

What's next for University Schedule Builder

I would like to include other information about credits needed and general education classes. Then I will share the program with other students who can hopefully use it to have an easier time planning their schedules.

Built With

Share this project:

Updates