This is an academic team project that served as my final project for a software design course in C++!
This project was pretty fun, involving the implementation of a lot of data structures and algorithms such as
linked lists
for organization of student data. Algorithms were also required for sorting students by metrics such as GPA,
research scores, language scores, and more.
The initial list of students applying to graduate school are held in text files that the program reads from.
However, if some people apply late, that's okay, because the program allows
you to enter a new students information and they'll be sorted among the other students automatically. You
can also delete any pre-existing entries, including ones you've just entered.
There are two linked lists for two different types of students: Domestic and International. However, upon
evaluation, the main menu allows you to
quickly merge the lists together and you can sort and search among them to figure out the next batch of
students accepted into graduate school.
Making this program was a great experience. I learned how to work with others to create a software project
and as a bonus, developed my competence and confidence in C++.
When I think about working on this project, I think about the times the team met on campus writing down the
pseudocode to make our classes and methods work. Every problem that came along felt like a puzzle.
The pseudocode as well as using git helped A LOT. I have no idea how our project would've gone smoothly with
version control, backups, and restores without using git. I also don't know
how our code could've fused together smoothly by the end and been so optimized without pseudocode. Just
about every algorithm was O(n), and this was mostly due to using linked lists as opposed to vectors or
arrays.
Although it was fun trying to solve the problems of how to get a good algorithm to do the right
manipulations in the data, I personally also liked creating the menu. I guess this is because it let me see
that everything was coming together.
I could tangibly see the tiny systems in place coming together for the bigger overall system, and I enjoyed
that. Overall, this was a difficult, challenging, and enjoyable project.