Announcements

Lab Assignment 4 is out and due 11:59pm Wednesday April 5. Select partners using Teammaker. Submit your homework poll using Pollster.

Labs 1,2 have been graded.
Course Info

Professor: Joshua Brody

Class: Monday/Wednesday/Friday 9:30am10:20am SCI 204

Lab: Thursday 2:45pm4:15pm Clothier 016

Office Hours: Monday 2:00pm4:00pm SCI 260, by appointment, and when my door is open.

Course Discussion: EdSTEM (mandatory enrollment)

Textbooks:

Probability and Computing, by Mitzenmacher and Upfal.

A Computational Introduction to Number Theory and Algebra, by Shoup. We’ll use this free, online book only for discrete probability (chapter 8).

Randomized Algorithms, by Motwani and Raghavan. This book is not required but is a good reference.

Required Materials

Probability Textbook: We’ll mainly use a free online textbook for developing probability theory: A Computational Introduction to Number Theory and Applications, by Victor Shoup. Don’t be put off by the title — we’ll only use the chapter on discrete probability (Chapter 8). It is selfcontained.

Required Textbook: Much of our computer science applications will come from Probability and Computing, by Mitzenmacher and Upfal.

Optional Textbook: Randomized Algorithms, by Motwani and Raghavan. This book is not required but is a good reference.
Course Overview, Goals, and Structure.
This course provides an introduction to algorithm design with a focus on randomized algorithms and data structures. Topics include analysis of algorithms, basics of discrete probability including tail inequalities, the probabilistic method, NPCompleteness, and applications to graph algorithms, streaming algorithms, communication complexity, and machine learning.
Prerequisites: CPSC 035 is required. Mathematics background at the level of Linear Algebra or higher is also required but may be taken concurrently.
Goals for the Course
Above all, the goal of this course is to instill a deep understanding of discrete probability and the role randomness plays in computer science.
Class Structure

Class Meetings. Lecture material will cover course concepts in depth, include activities to practice concepts learned, and to facilitate student discussion.

Suggested Readings. There are no required readings for the class. However, there are suggested readings that reinforce lecture material and provide more context.

Gradescope Exercises. For the initial portion of the course where the focus is on discrete probability, we’ll use daily Gradescope exercises to reinforce new material. Each exercise will be released after lecture and be due at 11pm before the next lecture is due. My intent with these exercises is that they take approximately one hour of time, quickly reinforce material from class, and quickly identify any areas that require followup. Gradescope exercises will be graded on a check plus / check / check minus / did not complete scale.

Tests. There will be three 90 minute tests given throughout the semester, after roughly every four weeks. Tests will be closed book.

Lab Assignments. Each lab assignment will be partnered and come out roughly every two weeks.

Final Project. In lieu of a final exam, you and a partner will develop a final project that more deeply explores one area at the intersection of probability and computer science that is of greatest interest to you.
Schedule
WEEK  DAY  ANNOUNCEMENTS  TOPIC & READINGS  LAB ASSIGNMENTS 
1  Jan 18  Course Introduction, Asymptotic Analysis  
Jan 20  
2  Jan 23  Probability Definitions and Basics
 
Jan 25  
Jan 27  Drop/Add Ends  
3  Jan 30  Conditional Probability, Independence
 
Feb 01  
Feb 03  
Feb 06  Canceled Classes  
Feb 08  
Feb 10  
4  Feb 13  Random Variables, Expectation
 
Feb 15  
Feb 17  
5  Feb 20  Moments and Deviations
 
Feb 22  Test 1 (Feb 23)  
Feb 24  
6  Feb 27  Randomized Algorithms  
Mar 01  
Mar 03  
Mar 06  Spring Break  
Mar 08  
Mar 10  
7  Mar 13 
Randomized Data Structures
 
Mar 15  
Mar 17  
8  Mar 20  The Probabilistic Method
 3/20 lecture notes  
Mar 22  
Mar 24  Travel  no classes  
9  Mar 27  
Mar 29  Test 2 (Mar 30)  The Probabilistic Method
(continued)  
Mar 31  Random Graphs
 
10  Apr 03  
Apr 05  
Apr 07  Randomized Algorithms for AI  
11  Apr 10  
Apr 12  
Apr 14  
12  Apr 17  Streaming Algorithms  
Apr 19  
Apr 21  
13  Apr 24  Intractability and NPCompleteness  
Apr 26  Test 3 (Apr 27)  
Apr 28 
Grading
Grades will be weighted as follows:
Gradescope Exercises 
15% 
Lab Assignments 
15% 
Test 1, in lab 2/16/23 
15% 
Test 2, in lab 3/23/23 
15% 
Test 3, in lab 4/20/23 
15% 
Final Project 
20% 
Class Participation 
5% 
Policies
Class Attendance
You should attend every class. If you need to miss a class or circumstances arise that make it difficult or impossible to attend, please let me know as soon as possible.
Academic Integrity
Academic honesty is required in all your work. Under no circumstances may you hand in work done with or by someone else under your own name. Discussing ideas and approaches to problems with others on a general level is encouraged, but you should never share your solutions with anyone else nor allow others to share solutions with you. You may not examine solutions belonging to someone else, nor may you let anyone else look at or make a copy of your solutions. This includes, but is not limited to, obtaining solutions from students who previously took the course or solutions that can be found online. You may not share information about your solution in such a manner that a student could reconstruct your solution in a meaningful way (such as by dictation, providing a detailed outline, or discussing specific aspects of the solution). You may not share your solutions even after the due date of the assignment.
In your solutions, you are permitted to include material which was distributed in class, material which is found in the course textbook, and material developed by or with an assigned partner. In these cases, you should always include detailed comments indicating on which parts of the assignment you received help and what your sources were.
When working on quizzes, exams, or similar assessments, you are not permitted to communicate with anyone about the exam during the entire examination period (even if you have already submitted your work). You are not permitted to use any resources to complete the exam other than those explicitly permitted by course policy. (For instance, you may not look at the course website during the exam unless explicitly permitted by the instructor when the exam is distributed.)
Failure to abide by these rules constitutes academic dishonesty and will lead to a hearing of the College Judiciary Committee. According to the Faculty Handbook:
This policy applies to all course work, including but not limited to code, written solutions (e.g. proofs, analyses, reports, etc.), exams, and so on. This is not meant to be an enumeration of all possible violations; students are responsible for seeking clarification if there is any doubt about the level of permissible communication.
The general ethos of this policy is that actions which shortcut the learning process are forbidden while actions which promote learning are encouraged. Studying lecture materials together, for example, provides an additional avenue for learning and is encouraged. Using a classmate’s solution, however, is prohibited because it avoids the learning process entirely. If you have any questions about what is or is not permissible, please contact your instructor.
Academic Accommodations
If you believe you need accommodations for a disability or a chronic medical
condition, please contact Student Disability Services (via email at
studentdisabilityservices@swarthmore.edu
) to arrange an
appointment to discuss your needs. As appropriate, the office will issue
students with documented disabilities or medical conditions a formal
Accommodations Letter. Since accommodations require early planning and are not
retroactive, please contact Student Disability Services as soon as possible.
For details about the accommodations process, visit the Student Disability Services website.
To receive an accommodation for a course activity, you must have an official accommodation letter from the Office of Student Disability Services and you need to meet with course staff to work out the details of your accommodation at least two weeks prior to the activity.
You are also welcome to contact any of the course staff privately to discuss your academic needs. However, all disabilityrelated accommodations must be arranged, in advance, through Student Disability Services.