Brief Course Description

Probabilistic analysis and randomized algorithms have become an indispensible tool in virtually all areas of Computer Science, ranging from combinatorial optimization, machine learning, data streaming, approximation algorithms analysis and designs, complexity theory, coding theory, to communication networks and secured protocols. This course has two major objectives: (a) it introduces key concepts, tools and techniques from probability theory which are often employed in solving many Computer Science problems, and (b) it presents many examples from three major themes: combinatorial constructions and existential proofs, randomized algorithms, and sampling.

In addition to the probabilistic paradigm, students are expected to gain substantial discrete mathematics problem solving skills essential for computer scientists and engineers.

My Office Hours

  • Feel free to drop by, or by email appointment.


CSE 531 or equivalence, good grasp of discrete mathematic thinking. Rudimentary knowledge of discrete probability theory.


5 Written Assignments. 1 Final Presentation. No exam.

Grading Policy:

  • 5 written assignments: 16% each.
  • Final presentation and report : 20%
  • Assignments due at the end of the lecture on the due date
    • 1 day (up to 24 hours) late: 20% reduction
    • Each extra (24 hours) day late: 40% reduction (which means you don't have to bother submit your assignment if it's more than 2 days late)
  • A: 85%, A-: 80%, B+: 72%, B: 65%, B-:55%, C:45%, D: 40%, F.

Reference books:

There is no official textbook for the course. I do believe that my lecture notes and pointers are sufficient. The following books should be helpful to you, especially the first four.