Data Structures and Algorithms
Completed: Spring 2022
Grade: B+
Course Description
This course provides an introduction to the problem of engineering computational efficiency into programs. Students will learn about classical algorithms (including sorting, searching, and graph traversal), data structures (including stacks, queues, linked lists, trees, hash tables, and graphs), and analysis of program space and time requirements. Students will complete extensive programming exercises that require the application of elementary techniques from software engineering.
Reflection
The course was the second programming course I took after CS1420. It built upon my Java fundamentals and began to teach me the basics of data structures. I wrote more code line-for-line in this course than any course I have taken to date (updated Spring 2024). The class had us implement various data structures and time their basic operations to ensure our correctness. This class was also the first time that I had been exposed to the idea of Big-O notation and time/space complexity in general. It also began a journey into the idea of algorithms and had us implement various algorithms to traverse our data strutures. However, most of the algorithms learned in this class were used for sorting and CS4150 would be the course where I took a deep dive into algos as a whole. This class also required pair programming for all asignments and taught me the importance of a second pair of eyes when writing code. It truley is an invaliable resource to have a fresh persepective when you have been staring at the same code for hours on end searching for the bug that is causing your entire implementation to operate incorrectly.