Inspiration

Like all university students, we must do one dreaded thing each semester: register for classes. But when we knew registration time was approaching, we ran into a major obstacle: Our advisor was booked through the middle of November! Like so many universities, our registration system is unwieldy and outdated, making it hard to determine which classes we should take on our own. On Friday night, our conversation was dominated by course planning for next semester. On Saturday morning, we wanted to choose a project that was relevant and helpful. Why not solve a problem that we're facing right now?

What it does

Virtual Advisor is the go-to program for students to determine which classes to register for. Users have the option to Browse Courses, which outputs all core or general education classes, or Plan Ahead. Virtual Advisor goes beyond typical registration software by suggesting courses for the upcoming semester, taking into account classes taken, desired number of credit hours, semesters the courses are offered, pre-requisites, and co-requisites. After students input their interests, Virtual Advisor will even output General Education courses that they may enjoy. The program also outputs estimated difficulty for the suggested semester by averaging course difficulty pulled from Rate My Professors.

How we built it

We utilized Eclipse to program in Java. We stored most of the course data in two linked lists. For example, one list includes different nodes for all variables such as prerequisites, corequisites, course name, course number, etc. The second linked list contains all of the major specific courses, which contains the same information in each node besides whether or not it’s required (for all core classes are required). In order to acquire information about the classes, the program reads the course info from a .txt file that includes all ECU Computer Science classes and a sample of ECU’s general education courses. User input determines the amount of credits the student desires to take in the upcoming semester, the semester they plan to register for, as well as their individual interests. We converted a given course name node into a string, then used the interests as a CharSequence to see if the key words in interest were contained in the node string. Afterward, general education courses are recommended based on which interests match.

Challenges we ran into

We ran into one large challenge in trying to read a spreadsheet in Java. Prior to the event, a couple of our team members had just been introduced to reading from text files, but this was the first instance we have attempted to read from spreadsheets. We decided to import our courses from a spreadsheet to make them easier to add and edit in the future. Through asking for help and a lot of research, we were able to integrate this into our program and make each course an object in a linked list. For simplicity, we decided to convert the .csv into a text file.

Accomplishments that we're proud of

This is the first large-scale project we have ever worked on! Since we each have less than two years of programming experience, we are so proud that we were able to translate an idea to a drawing to actual code. This project also required a lot of research to determine how to implement our idea, particularly how to read text from a spreadsheet.

What we learned

While two of us are in an introductory object-oriented programming course, the other two have not taken Java courses prior. This meant that there was a lot to be learned in terms of how to code in Java together. Over the course of this project, we learned a lot about Java syntax, objects, exceptions, and structures like linked lists. The team members who knew Java were able to cement their skills by taking on the role of the teacher. They learned how to use a linked list as a dictionary.

What's next for Virtual Advisor

This version of Virtual Advisor is a prototype for Computer Science students at ECU. In the future, we would like to integrate our program into university student and course databases, so it can access course data without it being inputted. On a smaller scale, we want to continue adding majors to our catalog, allowing more students at ECU to utilize Virtual Advisor for their course planning. While we have four available interests right now, we also want to add more interest options and add keyword tags to course descriptions to allow for more effective general education suggestions. Finally, we would like Virtual Advisor to offer a more comprehensive course plan, suggesting courses for semesters further in the future.

Built With

Share this project:

Updates