Gunnar Hovik


Seeking Employment


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.

Projects:

  • "Anagram"
  • "Ceiling"
  • "Galaxy Quest"
  • "Auto Sink"
  • "Rumor Mill"
  • "Get Shorty"
  • "Number Theory"
  • "Bank Queue"
  • "Under the Rainbow"