Course Information
Time:  MWF 2:002:50 

Room:  Lyons Hall 202 
Instructor: 

Joseph Tassarotti 
joseph.tassarotti@bc.edu 
St. Mary's Hall S383 
Office Hours: MW 10:30  noon, or by appointment 
Teaching Assistants: 

Yuezhen Chen 
Office Hours: Tuesdays 4:00  6:00 PM in Fulton 160 Lab 

Zhixuan (Josh) Zhao 
Office Hours: Wednesdays 6:00  8:00 PM in Fulton 160 Lab 
Overview
This course is about probability theory, which provides the mathematical tools to understand randomness and uncertainty. Why should computer scientists study probability theory? The reason is that randomness is essential to many areas of computer science:
 Algorithms can use randomness to run faster or use less space.
 Cryptographers use probability theory to determine whether communication protocols are secure.
 Machine learning uses randomized methods for training, and probability theory helps us analyze and evaluate the performance of machine learning algorithms.
Beyond computer science, probability theory has applications in many physical and social sciences, particularly for data analysis. Increasingly, these fields rely on computer programs to help carry out such analyses.
One challenge in studying probability theory is that humans have poor intuitions for randomness. We see patterns where there are none and misestimate how likely events are. By applying the formal rules of probability theory, we can overcome these flawed intuitions.
But as computer scientists, we have another tool at our disposal: we can write programs that simulate randomized events. By studying the results of these simulations, we can often approximate the answers to many important questions. In this course, we will use these simulations to complement theoretical analysis.
Prerequisites
The listed prerequisites are CSCI 2243 and Calculus. In reality, familiarity with programming at the level of CSCI 1101 should suffice in place of CSCI 2243. The textbook does include content that involves linear algebra, but we will not cover this material.
There will be programming assignments in Python, but they will not use any "advanced" features of Python. So, if you are not familiar with Python, you should be able to quickly pick up the basics needed for the assignments as long as you have some prior programming experience.
Textbooks
The textbook for this course is Randomness and Computation by Professor Sergio Alvarez. The book is available for free as a PDF that will be distributed via Canvas. Please do not redistribute this text. The readings in the schedule refer to this book. I will provide lecture notes on topics that are not covered by the book.
Assignments
Homework will be assigned roughly weekly, due the following week. The homework will include both written exercises and programming problems. As mentioned above, the programming assignments will be in Python. Solutions to written problems must be typed. Because these assignments will involve mathematics, I strongly encourage you to learn to use LaTeX, which is software designed for typesetting mathematics. It is the standard for writing documents in a wide range of technical fields (mathematics, computer science, physics, statistics, and so on), so it is worthwhile to start learning. There are alternatives, like Microsoft Equation Editor, that should also suffice.
Exams
There will be two midterm exams and a final exam. The midterms will be on Friday, October 11 and Friday, November 8 in class. The date, time, and location of the final exam are dictated by the registrar's office.
Grading
Your final score for the class will depend on the assignments and exams. These components will be weighted as follows: 50% homework, 10% midterm 1, 10% midterm 2, 30% final. There is no predetermined scale for mapping raw scores to letter grades.
Academic Integrity
The university takes academic integrity seriously. You should review the university's policies.
For this course, you are allowed to discuss the assignments and material with other students. However, the work you submit should be your own. To ensure this, you should follow something that is sometimes called the "whiteboard policy": you and another student can discuss a problem at a whiteboard at a high level. You should not record any notes or be writing code during these discussions. When you're done, you should erase the whiteboard, leave, and write up your solution on your own. The spirit behind this rule is that you must fully understand what you submit by being able to write and formulate it independently.
Services for Students with Disabilities
Students with disabilities who need accommodations should request them by contacting the Connors Family Learning Center or the Disability Services Office. See the overview of the resources BC provides for accessibility.
Wellness
Your health and wellbeing are important. Please be aware that the university provides a range of support services for students struggling with mental health issues.
Schedule of Lectures
Week  Topic  Reading/Notes  Homework 

Aug. 2630  Discrete Probability  2.1, 2.2 If you need to install python3 and libraries, you can look at Prof. Straubing's instructions from an earlier iteration here  Homework 1 out, due Sept. 6 Homework 1 Starter code 
Sept. 26  Counting  2.3  Homework 2 out, due Sept. 13 Homework 2 Starter code 
Sept. 913  Random Variables  3  Homework 3 out, due Sept. 20 Homework 3 Starter code 
Sept. 1620  Inequalities, Conditional Probability  5.1, 5.4, 6  Homework 4 out, due Sept. 27 Homework 4 
Sept. 2327  Conditional Expectations, Poisson Approximation  5.2.2, Notes  Homework 5 out, due Oct. 4 Homework 5 
Sept. 30 Oct. 4  Continuous Distributions, Central Limit Theorem  4, 5.2.3  
Oct. 711  Convolution, Exam Review  Homework 6 out, due Oct. 25 Homework 6 

Oct. 1418  Markov Chains  9  
Oct. 2125  Analysis of Absorbing and Ergodic Chains  9  Homework 7 out, due Nov. 8 Homework 7 
Oct. 28 Nov. 1  Variances for Absorbing and Ergodic Chains  (video lectures)  
Nov. 48  Coupling, Exam Review  Homework 8 out, due Nov. 16 Homework 8 

Nov. 1115  Martingales  Homework 9 out, due Nov. 23 Homework 9 

Nov. 1822  Moment Generating Functions  Homework 10 out, due Dec. 7 Homework 10 