## Course Information

### Description

Probability is a mathematical discipline for reasoning about randomness: it helps us make decisions in the face of uncertainty and build better systems. In this course, we will teach you the fundamental ideas of probability and random processes. The various assignments are carefully designed to strengthen your mathematical understanding of probability and to demonstrate how these concepts can be applied to the real world, be it in communication networks, control systems, or machine learning.

### Prerequisites

Knowledge of probability at the level of CS 70 or STAT 134. Familiarity with linear algebra.

### Textbooks

- (BT) Dimitris P. Bertsekas and John N. Tsitsiklis, Introduction to Probability, 2nd Edition, Athena Scientific, 2008.
- (W) Jean Walrand, Probability in Electrical Engineering and Computer Science: An Application-Driven Course, Amazon, 2014. (e-book available)

### Course Outline

(Subject to some changes)

- M1: Fundamentals of Probability / 4 weeks / Main Reference: BT
- Review: Discrete and Continuous Probability
- Conditioning, Convolution, Transforms
- Bounds, Convergence of Random Variables, Information Theory and Coding
- Labs: Introduction/ Fountain Codes/ Auctions/ Huffman Codes

- M2: Random Processes / 4.5 weeks / Main References: BT & W
- Markov Chains (Discrete and Continuous Time), Queueing
- Poisson Processes
- Random Graphs
- Labs: Sampling, Random Graphs

- M3: Inference, Estimation, Learning / 4 weeks / Main References: BT & W
- MLE/MAP, Detection, Communication, Hypothesis Testing
- Estimation, Kalman Filter
- Hidden Markov Models, Expectation Maximization & Clustering
- Labs: Project, Kalman Filter, Viterbi Algorithm, EM Algorithm

### Piazza

We will be using Piazza for class discussion. Rather than emailing questions to the GSIs, we encourage you to post your questions on Piazza. Find our class page here.

### Grading

The grading breakdown is as follows:

- Homework (10%)
- Lab (5%)
- Project (5%)
- Midterm 1 (20%)
- Midterm 2 (20%)
- Final (40%)

### Exams

- Midterm 1: Thursday, September 26, 7-9 PM
- Midterm 2: Tuesday, November 5, 7-9 PM
- Final: Wednesday, December 18, 8-11 AM

See the exams page for details.

### Homework

- Homeworks will be posted on the course website every Thursday morning and are due on the following Wednesday at 11:59 PM.
- Homeworks should be submitted as a PDF to Gradescope.
- Any homework that is illegible or too difficult to read will get a 0.
- Homeworks will be self-graded through Google Forms. Forms will be posted on the course website every Thursday morning and due the following Monday at 11:59 PM.
- Any late self-grades will result in a 0, with no exceptions.
- Each homework problem will be graded by the course staff.
- Your lowest two homework scores will be dropped.

### Labs

- Labs will be posted on the course website every Saturday morning and are due on the following Friday at 11:59 PM.
- Labs will be in the form of Jupyter notebooks. However, students should convert their notebooks to both a .py file and a PDF to submit to Gradescope.
- Labs will be self-graded through Google Forms. Forms will be posted on the course website every Saturday morning and are due on the following Monday at 11:59 PM.
- Any late self-grades will result in a 0, with no exceptions.
- Your lowest lab score will be dropped.

### Project

- An open-ended group project will be posted sometime before midterm 2.
- Groups will be strictly 3 or 4 people, and projects must fit the theme or spec amongst a set of prompts provided in a document.
- Projects will be graded out of 10 on a per-category basis.

### Collaboration

Discussions about assignments are allowed and encouraged, but each student is expected to write his/her own solutions.