Course information
- Description: Introduction to the design and analysis of efficient algorithms. Topics include models of computation, efficient sorting and searching, algorithms for algebraic problems, graph algorithms, dynamic programming, probabilistic methods, approximation algorithms, and NP-completeness.
- Credits: 3.0
- Prerequisites: COMS W3139 and W3203 or equivalent.
- For: Undergraduate, Masters, Professional, PhD
- Instructor
- Name: Prof. Cliff Stein
- Office: 424 Mudd
- Phone: 212-854-5238
- Email: cliff@ieor.columbia.edu
- Office hours: T 2:00-3:00, and by appointment.
- Teaching Assistants:
- Name: Yifan Du
- Office: 122A Mudd
- Email: yd2302@columbia.edu
- Office hours: T 10:30-12:30
- Name: Drishan Arora
- Office: 122A Mudd
- Email: da2624@columbia.edu
- Office hours: M 6-8
- Name: Shanlongchuan Gu
- Office: 122A Mudd
- Email: sg3208@columbia.edu
- Office hours: F 12-2
- Office: 122A Mudd
- Name:Wenhao Zhang
- Office:122A Mudd
- Email: wz2293@columbia.edu
- Office hours: Th 6-8
- Office:122A Mudd
- Name:Jihan Li
- Office:122A Mudd
- Email: jl4346@columbia.edu
- Office hours:Wed. 1-3
- Office:122A Mudd
- Name:Yilin Xiong
- Office:122A Mudd
- Email: yx2274@columbia.edu
- Office hours: Th 1-3
- Office:122A Mudd
- Visiting the instructor or TAs in their office hours
- Using Piazza This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. Find our class page at: https://piazza.com/columbia/fall2015/csor4231_002_2015_3/home
We encourage students with disabilities, including invisible disabilities such as chronic diseases and learning disabilities, to discuss with the instructor any appropriate accommodations that we might make on their behalf.
Announcements
- No class on Tuesday, September 15.
- Homework 3 is now due on Sunday, Oct. 25 at 5 PM.
- Homework 4 is now due on Sunday, Nov. 1 at 5 PM.
- No class, Thursday, Dec. 10.
- Optional review sessions, Tuesday, Dec. 15, 1-2PM, Mudd 303.
- A sample final can be found on courseworks, in the Files and Resources area.
- Final Exam is Tuesday, Dec. 22, 4:10-7:00PM in Havermeyer 309.
Materials
- Links to Examples of Algorithms
- List of algorithms
- Notes for Lecture 1
- Basic Math Background
- Running time of functions
- More on recurrences
- HeapSort
- Lower Bounds for Sorting
- Linear Time Sorting
- Picture of a Card Sorter
- Deterministic Selection
- Randomized Analysis
- Randomized Selection
- Quicksort
- Dynamic Programming
- Program to make change
- Matrix Chain
- Fibonacci numbers program
- Longest Common Subsequence
- Shortest and Longest Paths
- List of some algorithms that use dynamic programming
- A video about an application of dynamic programming to graphics
- Greedy Algorithms
- Huffman Coding
- Amortized Analysis
- Graph Algorithms
- Topological Sort
- Strongly Connected Components
- Minimum Spanning Trees
- Disjoint Sets
- Shortest Paths
- All Pairs Shortest Paths
- Maximum Flows
- Ford-Fulkerson example part 1 part 2
- paper on soviet rail system
- Garey and Johnson Cartoon
- NP-completeness
- (Partial) List of NP-complete problems n
- Cartoon about NP. Cartoon
- A TSP site from GA Tech
- Approximation Algorithms