CS 223 -- Random Processes and Algorithms

Preliminary Syllabus

Instructor: Michael Mitzenmacher
E-mail: michaelm@eecs.harvard.edu
Office: SEC 3.310
Phone: 496-7172
Office Hours: After class 11-12, evenings TBD, by appointment, and lunch.

Syllabus: www.eecs.harvard.edu/~michaelm/CS223/syllabus.html

Calendar: www.eecs.harvard.edu/~michaelm/CS223/calendar.html

Zoom Link, for Office Hours: Please see on Canvas


The goal of this course is to provide you with a solid foundation in the basic techniques used to analyze randomized algorithms and probabilistic processes. The course is designed for roughly a first/second year graduate student; advanced undergraduates with an appropriate theory background (such as strong performance in CS 124 and/or Stat 110) may also be ready for the class. Graduate students in disciplines outside theory are welcome and encouraged to take the course. The course will be a mix of textbook reading, lectures, and reading and discussion of research papers. The goal will be to move as quickly as possible from talking about topics at the textbook level to seeing how they are applied in research problems. We aim to emphasize applications outside of theory, looking at how the techinques come up in networking, Internet algorithms, CS-economics settings, and so on.

Course content

The course emphasizes theoretical foundations. Topics to be covered are expected to include the following:


Students should have taken at least CS 124 or its equivalent. Students should be able to program in a standard programming language; C or C++ is preferred.

Knowledge of probability will be extremely helpful; generally, the necessary probability will be covered in class, but we will start assuming that students have some knowledge of the basics (expectation, variance, random variables, etc.) Students with less probability background will find it necessary to undertake some extra reading and preparation on their own outside of class. In particular, chapters 1-4 of the textbook are considered background reading.


The course will have homework assignments due roughly every week. The assignments will be of two types: some assignments will consist of theoretical problems and programming exercises based on the material. Other assignments will involve reading a paper and being prepared to derive results from the paper in class for discussion. The homework will be worth roughly 40 percent of your grade. The remainder will be based on a short class project (40 percent of your grade) and a short take-home final exam (20 percent of your grade).

All assignments will be due at the beginning of class on the appropriate day. Late assignments are not acceptable without the prior consent of the instructor. Consent will be given for reasonable extenuating circumstances, including medical crises, job interviews, attending conferences, family situations, visiting potential graduate schools, etc.

Required Text

The class will be based on a book written by the instructor. The book is Probability and Computing: Randomized Algorithms and Probabilistic Analysis. There is an Amazon link available on the instructor's home page. Please get this book as soon as possible. For students who want more background in probability, there are many basic standard texts in the library. Sheldon Ross has written several introductory books; my personal favorite is "Introduction to Probability Models."


We will use Canvas for submitting assignments, asking/answering questions outside of class (beyond office hours), etc. Though you are always welcome to e-mail me directly!

Class Information/Notes

Class notes, homework assignments, and other information will be made available on the Web when possible. For access go to the class web site. In many cases, the class web site may be the only location where information is posted or available, so look in from time to time!

Student Lunches

In order to ensure that all students, and especially undergraduates, have a chance to interact with me, I plan to arrange at least one day every other week where I will be available to go to lunch with students at the dining hall. Feel free to invite me! I'd be happy to talk about applying to graduate school, thesis topics, or whatever you want to talk about.