CSCI E-124: Algorithms and Data Structures

Computer Science E-124 is a course on the design and analysis of efficient algorithms, using data structures for efficient implementations of abstract operations.

Internet Access to Lectures Only

The lectures for this course are only available on the Internet using streaming video. The recorded lectures which you will view are from the Harvard School of Engineering and Applied Sciences (SEAS) course Computer Science 124. Two lectures per week will be made available throughout the term and while the lectures are recorded, the other aspects of the course are "live." This means that you are responsible for homework, exams and other work. There will be an optional weekly section meeting for students that wish to attend it on campus. The section will be videotaped -- details below.

Lectures should now be available here.



Announcements

Handouts

Course syllabus

Quiz #1, (.ps, .pdf)

Notes from Brian's math review, 2/5: LaTeX, PDF

Hilary's LaTeX template: LaTeX, PDF

Hilary's proof of the General Single-Source Shortest Path algorithm, 2/23: LaTeX, PDF

Random walk examples from section, 4/13: LaTeX, PDF

Expected-value example from section, 4/27: PDF

Introduction -- Coin Flipping, 1/30: PS PDF

Other Coin Flipping Notes: PDF

Notes 1, 2/3: PS PDF -- Introduction to Algorithms

Notes 2, 2/5: PS PDF -- Big O Notation, Recurrences

Notes 3, 2/12: PS PDF -- Graphs and Modeling, DFS

Notes 4, 2/19: PS PDF -- Breadth-first Search, Shortest Paths

Notes 5, 2/21 PS PDF -- Minimum Spanning Trees

Notes 6, 2/26: PS PDF -- Disjoint set data structure

Notes 7, 3/2: PS PDF -- Greedy Algorithms

Notes 8, 3/4: PS PDF -- Divide and Conquer

Notes 9, 3/10: PS PDF -- Dynamic Programming

Notes 10, 3/11: PS PDF -- Hashing

Notes 11, 3/13: PS PDF -- Hashing, continued

Notes 12, 3/18: PS PDF -- Document similarity

Notes 13, 4/1: PS PDF -- Primality testing

Notes 14, 4/3: PS PDF -- Cryptography

Notes 15, 4/8: PS PDF -- 2-SAT

Notes 16, 4/9: PS PDF -- Linear Programming

Notes 17, 4/14: PS PDF -- Network Flow

Notes 18, 4/15: PS PDF -- NP-Completeness

Notes 19, 4/26: PS PDF -- Coping with NP-Completeness

For more on heuristic algorithms, you might want to check out some papers by the professor; a sampling is available at this web page. The first two papers are most recommended.

Notes 20, 4/27: PS PDF -- Approximation Heuristics

Notes 21, 4/29: PS PDF -- Reduction from LMA to RCQ

Notes 22, 4/29: PS PDF -- Suffix trees and pattern matching

Course Staff

Email Office Hours Location
Instructor
Michael Mitzenmacher    michaelm at eecs period harvard period edu    Contact TFs first    Arranged
Teaching Fellows
Hilary Finucane
Brian Young    
cscis124@gmail.com    In-person: Mondays, 7:30 pm
Online: Thursdays, 8:30 pm    
1 Story St., 3rd floor
Via Elluminate -- e-mail TFs for details
(The TF who leads section each week will hold the in-person office hours afterward.)

Section Time

Sections will meet Mondays at 1 Story St., Room 306, 6:30-7:30 pm, beginning Feb. 9, with alternating section leaders.

Video of sections will be streamed live via Harvard Extension School's Live Classroom and also available on the lecture video page linked above.
Please check announcements for the schedule / topics.

Problem Sets

Because we are accepting completed assignments by e-mail only, all assignments must be typed. We will accept MSWord, PDF, PostScript, and plaintext files.

Email your assignments to the e-mail address specific to that assignment, listed below, on the due date (by 11:59 pm Eastern Standard Time unless otherwise indicated). Please include your full name and the assignment number in the subject line. For example: John Doe, Assignment 1.

Every file you submit should have a filename beginning with your last name.

Problem Set 1 ps pdf Out: February 3 Due: noon, February 14
Problem Set 2 ps pdf Out: February 12 Due: 11:59 pm February 28 Submit to: cscis124+ps2@gmail.com
Programming Assignment 1 ps pdf Out: February 26 Due: 11:59 pm March 12 Submit to: cscis124+pa1@gmail.com
Problem Set 3 ps pdf Out: March 10 Due: 11:59 pm March 20
Note: the text for the Buffy problem is available here.
Submit to: cscis124+ps3@gmail.com
Programming Assignment 2 ps pdf Out: March 20 Due: 11:59 pm April 11 Submit to: cscis124+pa2@gmail.com
Problem Set 4 ps pdf Out: April 1 Due: 11:59 pm April 18 Submit to: cscis124+ps4@gmail.com
Problem Set 5 ps pdf Out: April 16 Due: 11:59 pm Saturday, May 2 Submit to: cscis124+ps5@gmail.com
Programming Assignment 3 ps pdf Out: April 16 Due: 11:59 pm Saturday, May 9 Submit to: cscis124+pa3@gmail.com


Frequently Asked Questions

See the FAQ page. If your question isn't answered, please email the TFs. (Updated 3/19/09)