• My handwritten notes for each class are available here.
  • Phil has made a "TA Corner" website for CMPSCI 240, where he will post ideas, hints, etc. for the programming-based homeworks. He has already posted some notes on homework 4.
  • CMPSCI 240 in practice: the math behind 96 billion burger choices!

General Information

  • Instructor: Prof. Hanna Wallach (wallach at cs umass edu)
  • TAs: Philip Kirlin (pkirlin at cs umass edu) and Sandeep Kalra (skalra at cs umass edu)
  • Instructor Office Hours: TBD
  • TA Office Hours: Wednesdays, 1:15-2:15pm and Thursdays, 12:45-1:45pm, LGRT 220
  • Lectures: Tuesdays/Thursdays, 11:15am to 12:30pm, LGRT 103
  • Discussions: Wednesdays, either 10:10am to 11:00am or 12:20pm to 1:10pm, ELAB 306.
    Note that you must attend the discussion section for which you are enrolled.

Course Content and Structure

This course is designed to help students develop the mathematical reasoning skills needed to solve problems involving uncertainty. The skills you will learn in this course are crucial for many exciting areas of computer science that inherently involve uncertainty, including artificial intelligence and machine learning, data mining, financial modeling, natural language processing, bioinformatics, web search and information retrieval, algorithm design, cryptography, system design, network analysis, and more. These skills may also help you analyze the uncertainty in your day-to-day life.

The course is divided into two parts. The first part will cover sample space and probability, discrete random variables, information theory, continous random variables, correlation and covariance, and limit theorems. The second part will cover inference, naive Bayes classification, and Markov chains.

Required Textbook

The required textbook for the course is "Introdution to Probability, 2nd Edition" by Dimitri P. Bertsekas and and John N. Tsitsiklis. The required reading for each class will be posted below throughout the semester. You should complete the required reading BEFORE attending class.

Lectures and Discussions

  • Tue. Jan. 24: Overview, sample space and probability. Reading: B&T 1.1, 1.2 (pp. 1–10) [pdf]
  • Wed. Jan. 25: No discussion
  • Thu. Jan. 26: Sample space and probability. Reading: B&T 1.2, 1.3 (pp. 10–28) [pdf]
  • Tue. Jan. 31: Sample space and probability. Reading: B&T 1.3, 1.4 (pp. 18–34) [pdf]
  • Wed. Feb. 01: Discussion: Sample space and probability [pdf]
  • Thu. Feb. 02: Sample space and probability. Reading: B&T 1.5, 1.6, 1.7 (pp. 34–52) [pdf]
  • Tue. Feb. 07: Discrete random variables. Reading: B&T 2.1, 2.2, 2.3 (pp. 71–81) [pdf]
  • Wed. Feb. 08: Discussion: Sample space and probability [pdf]
  • Thu. Feb. 09: Discrete random variables. Reading: B&T 2.2, 2.4 (pp. 74–79, 81–92) [pdf]
  • Tue. Feb. 14: Discrete random variables. Reading: B&T 2.4, 2.5 (pp. 81–97) [pdf]
  • Wed. Feb. 15: Discussion: Discrete random variables [pdf]
  • Thu. Feb. 16: Discrete random variables. Reading: B&T 2.6, 2.7, 2.8 (pp. 97–118) [pdf]
  • Tue. Feb. 21: Information theory. Reading: TBD [pdf]
  • Wed. Feb. 22: Discussion: Discrete random variables [pdf]
  • Thu. Feb. 24: Information theory. Reading: TBD [pdf]
  • Tue. Feb. 28: Information theory. Reading: TBD [pdf]
  • Wed. Feb. 29: Discussion: Information theory [pdf]
  • Thu. Mar. 01: Correlation and covariance. Reading: B&T 4.2 (pp. 217–222) [pdf]
  • Tue. Mar. 06: Limit theorems. Reading: B&T 5.1 (pp. 263–268) [pdf]
  • Wed. Mar. 07: Discussion: Correlation and covariance, limit theorems [pdf]
  • Thu. Mar. 08: Limit theorems. Reading: B&T 5.2 (pp. 269–270) [pdf]
  • Tue. Mar. 13: Review for midterm
  • Wed. Mar. 14: No discussion
  • Thu. Mar. 15: Midterm
  • Tue. Mar. 27: Midterm solutions
  • Wed. Mar. 28: No discussion
  • Thu. Mar. 29: Inference [pdf]
  • Tue. Apr. 03: Inference, naive Bayes classification (Phil Kirlin) [pdf]
  • Wed. Apr. 04: Discussion: Inference [pdf]
  • Thu. Apr. 05: Naive Bayes classification (Phil Kirlin) [pdf]
  • Tue. Apr. 10: Markov chains. Reading: B&T 7.1 (pp. 339–346) [pdf]
  • Wed. Apr. 11: Discussion: Naive Bayes classification [pdf]
  • Thu. Apr. 12: Markov text generation [pdf]
  • Tue. Apr. 17: No class
  • Wed. Apr. 18: Discussion: Markov chains [pdf]
  • Thu. Apr. 19: Markov chains. Reading: B&T 7.3 (pp. 352–357) [pdf]
  • Tue. Apr. 24: Markov chains. Reading: TBD [pdf]
  • Wed. Apr. 25: Discussion: Markov chains [pdf]
  • Thu. Apr. 26: Review for final
  • Tue. May 01: Review for final


Homeworks will be posted here throughout the semester. There will be eight homeworks in total. Five of these will be written assignments; the other three will be programming assignments. You will have one week to complete each homework. Homeworks will be assigned on the following days:

  • Fri. Feb. 03: Homework 1: Sample space and probability (due Fri. Feb. 10) [pdf]
  • Fri. Feb. 10: Homework 2: Discrete random variables (due Fri. Feb. 17) [pdf]
  • Fri. Feb. 17: Homework 3: Discrete random variables (due Fri. Feb. 24) [pdf]
  • Fri. Feb. 24: Homework 4: Information theory (due Fri. Mar. 02 at 11:59pm) [pdf]
  • Fri. Mar. 02: Homework 5: Correlation and covariance, limit theorems (due Fri. Mar. 09) [pdf]
  • Fri. Apr. 06: Homework 6: Naive Bayes classification (due Fri. Apr. 13) [pdf]
  • Fri. Apr. 13: Homework 7: Markov text generation (due Fri. Apr. 20) [pdf]
  • Fri. Apr. 20: Homework 8: Markov chains (due Fri. Apr. 27) [pdf]

Homeworks must be submitted by 4:00pm on the day indicated, unless otherwise noted. Written assignments must be submitted, on paper, to the CS main office. Programming assignments (i.e., completed Java files) must be submitted to the cs240 directory in your home directory on EdLab.

Grade Breakdown

  • Discussions (10%): Most discussions will include an in-class writing assignment. You will be divided randomly into small groups of three or four students and each group will hand in a response to the writing assignment. Responses will be graded either "check" (2 out of 2 points) or "check-minus" (1 out of 2 points). Together, these will count for 10% of your grade.
  • Homeworks (30%): There will be eight homeworks (five written and three programming). Together, these will count for 30% of your grade. Homeworks will be graded on both correctness and clarity. If you cannot solve a problem completely, you will get more credit if you identify the gaps in your argument than if you try to cover them up. Late homework will not be accepted.
  • Midterm (30%): There will be one midterm, counting for 30% of your grade.
  • Final Exam (30%): The final exam will be cumulative and will count for 30% of your grade. If it is to your advantage, however, I will count the final exam for 45% and and the midterm for 15%.

In accordance with UMass policy, incomplete (INC) grades will only be given when (documented) severe physical/mental medical reasons have prevented the completion of course requirements.

Academic Honesty Policy

The amount of outside help permitted depends on the course component:

  • Midterms and Final Exam: The midterms and final exam are closed-book and no outside help is allowed. Any cheating on a midterm or the final exam is grounds for an F in the course.
  • Homeworks: You may discuss the homeworks with other students—in fact, I encourage this as a learning experience. However, the writeup and code (if appropriate) must be your own. Copying is not permitted; neither is collaboration so close that it looks like copying. If I receive two identical homeworks, I will accept neither of them (i.e., both students will receive an F) and I will pursue formal action. A good practice is to divide your work into an "ideas phase" where you collaborate, followed by a "writeup/implementation phase" where you work alone. You should enter the latter phase with notes, but not problem solutions or code. You must write a list of all your collaborators at the top of each assignment. This list should include anyone with whom you have discussed the assignment. If you make use of any printed or online sources while working on an assignment (other than specific course materials such as the textbook or slides), these must also be listed. Copying solutions from the web is cheating and is surprisingly easy to detect.

For more information, please see the Dean of Students' Academic Honesty Policy.