Algorithms
Completed: Spring 2024
Grade: B+
Course Description
Study of algorithms, data structures, and complexity analysis beyond the introductory treatment from CS 2420. Balanced trees, heaps, hash tables, string matching, graph algorithms, external sorting and searching. Dynamic programming, exhaustive search. Space and time complexity, derivation and solution of recurrence relations, complexity hierarchies, reducibility, NP completeness. Laboratory practice.
Reflection
This class was your bog-standard algorithms class. It focused on time and space complexity with an emphasis on solving problems in sub-exponential time. We learned the main classes of algorithms that exist as well as discussed the kinds of problems that would be best suited for each algorithmic approach. While this is not the kind of material I tend to enjoy the class was informative and I can understand why it is a required course for the BCS undergrad. Despite the course being very homework heavy seeing upwards of 6 assignments per week, it still felt manageable and encouraged problem-solving rather than just giving you the algorithms it expected you to use.