Algorithms (Syllabus)

The third semester in a series of programming courses; this course built upon data structures and introduced algorithms and related concepts. Algorithms studied included sorting algorithms, hash tables and hashing algorithms, trees and graphs, and data input/parsing. Algorithm analysis included using Big-O notation to rank algorithms by time complexity and space complexity. Additional OOP topics covered included using inheritance, virtual methods, and polymorphism. The entire course was done in C++. The final project, a culmination of everything we learned, was to create a program that found the shortest path between any two cities in the continental US (using Dijkstra's shortest-path algorithm) and visually display it.