Algorithms and Data Structures

Design, analysis, and implementation of algorithms and data structures across multiple course offerings.

About These Courses

I have taught several courses in the area of algorithms and data structures, focusing on how to design efficient algorithms, reason about their correctness, and analyze their time and space complexity.

Across these offerings, we covered topics such as:

  • Asymptotic analysis and proof of correctness
  • Fundamental data structures
  • Greedy algorithms, divide and conquer, and dynamic programming
  • Graph algorithms and network flows
  • NP-completeness and computational intractability

Below is a list of specific offerings.

Offerings