Wim Bohm
Office: 470 CS Building
Office Hours: MW 2-3 pm
Cole Frederick, Ali Ebrahimpour Boroojeny
Office: CSB 120
Office Hours: 1-3pm MR (Cole)
Office Hours: 8-10am RF (Ali)
Office Hours:

Jingwu Xu
Office: CSB 120
Office Hours: 9-11am T, 2-4pm W (Jim)
Office Hours:

Teaching Team Contact Email:
Lecture Time and Place:
11:00 - 12:15, TR, Aylesworth C111

CS 320 provides an introduction to algorithms, their correctness proofs and complexity, algorithm classes, and prblem classes. The course is about learning and practicing principles for organizing your thinking when solving programming problems.

Mastering these skills will allow you to discover and invent efficient algorithms of your own, by figuring out what steps are needed for correctness and to reduce running time. You will also learn to recognize what kinds of optimizations are a waste of your time, since they will have little or no impact on the running time of a program as a whole.

We will study big-O analysis at a more advanced level than in CS 200 on a variety of subjects:

  • greedy algorithms and greedy proofs
  • divide-and-conquer strategy and techniques for bounding running times of such algorithms
    • dynamic programming
  • tree and graph algorithms
    • depth-first, breadth-first search
    • bipartite graphs
    • topological sort
    • connected components
    • spanning trees and shortest paths, cycles
  • reduction
  • problem classes (P,NP,NPC)
Final Exam: Wednesday May 9, 6:20-8:20 pm
By popular demand the dynamic programming quiz is reopened through April 8
The due date for PA2 (graphs) has been moved to Friday 3/2, late Tuesday 3/7 (system was down in weekend)
Welcome to CS320
Sign up for the class discussion board here!