CS237 Fall 2021 Syllabus

CAS CS 237 - Fall 2021 - Probability in Computing

Syllabus


Official Course Description

Introduction to basic probabilistic concepts and methods used in computer science. Develops an understanding of the crucial role played by randomness in computing, both as a powerful tool and as a challenge to confront and analyze. Emphasis on rigorous reasoning, analysis, and algorithmic thinking. (Counts as a Group B course for the CS major, and a background course for the CS minor.)

More specifically, we focus on basic probability theory and applications and uses of probability theory in computer science. This includes using probability to analyze data sets and algorithms and to prove the correctness of algorithms.

Prerequisites: CS 131 and MA 123 (or equivalent elementary calculus class) and CS 111 (or equivalent Python programming experience). We assume good working knowledge of elementary set theory and counting, elementary calculus (i.e., integration and differentiation), and programming in Python.


Piazza Page

Gradescope for submitting homeworks. Sign up using the entry code 4PY4JG. Please use your BU email address and include your Student ID in the format U00000000.


Course Staff

Instructors:

Prof. John Byers
Homepage: cs.bu.edu/fac/byers/
Email: (@ bu . edu) byers

Prof. Alina Ene
Homepage: cs-people.bu.edu/aene/
Email: (@ bu . edu) aene

Teaching Assistants:

Name Email (@ bu . edu)
Jeremy Feininger (TA) jlf77
Eren Budur (TA) ebudur
Yang (Alex) Yu (CA) yuyang00
Waner Zhou (CA) zwe
Cassie Huang (CA) chuang18
Ji (Anna) Zhang (CA) annajz
John Bolognino (CA) jcbolo
Marco Raigoza (CA) mraigoza

Office hours: The office hours schedule has been posted on Piazza.


Lectures

Lecture A1: Tue/Thu 2:00pm - 3:15pm, PHO 206.
Lecture B1: Tue/Thu 3:30pm - 4:45pm, SCI 113.

Discussion Sections

Discussion A2: Fri 9:05am - 9:55am, CAS 225.
Discussion A3: Fri 10:10am - 11:00am, MCS B33.
Discussion A4: Fri 11:15am - 12:05pm, CAS 228.
Discussion B2: Fri 12:20pm - 1:10pm, CAS 214.
Discussion B3: Fri 1:25pm - 2:15pm, MCS B33.
Discussion B4: Fri 2:30pm - 3:20pm, CAS 228.

Discussion sessions will be an invaluable part of the course typically providing guidance on the homework questions and additional problem solving.


Textbook

We will use the following textbook. Please be advised that not all lecture material is covered in the textbook.


Communications

We will use Piazza for class discussion and questions. The system is highly catered to getting you answers to your questions fast and efficiently from classmates and the course staff. Please do not email questions to the course staff, post your questions on Piazza instead. We also encourage you to post answers to student questions there (but obviously, not answers to problems on the current homework). Our class page is located here. We will also use Piazza to post announcements and handouts.


Grading and Attendance

The course grade will break down as follows:

Last day to drop the course: without a W : October 7, with a W : November 5. Incompletes will not be granted for this class. The course staff may make changes to the grading scheme to reflect changes in the course.

Exams: There will be a midterm exam and a final exam. The midterm exam will be held in class, as indicated on the schedule. The cumulative final will be held during the normal two-hour final exam slot.

Homework Assignments, Submission, and Late Policy: Assignments will involve both analytic (math) problems and programming in Python. Assignments will be due on Mondays at 10pm, as indicated on the schedule. All assignments will be submitted electronically via Gradescope as a PDF for the math portion and as a Jupyter notebook for the programming portion. Please sign up for the class on Gradescope using the entry code 4PY4JG. Please use your BU email address and include your Student ID in the format U00000000.
Each student receives two 24h extensions that can be used on any two homeworks. We will not accept homework submissions that are more than 24h late and we will not grant additional extensions. We will also automatically drop the lowest homework score when computing your homework grade. However, we strongly recommend putting your best effort in every homework, as they provide the best preparation for the exams. As you likely already know, assignments requiring substantial creativity can take more time than you expect, so plan to finish a day early.

Regrading Procedure: If, after reviewing the posted solutions, you still believe a portion of your homework was graded in error, you may request a regrade. Please submit your regrade request on Gradescope within one week. Note that when we regrade a problem, your score may go up or down.

Attendance: Students are generally expected to attend both lecture and discussion during the scheduled class times.


Topics


Academic Conduct

Academic standards and the code of academic conduct are taken very seriously by our university, by the College of Arts and Sciences, and by the Department of Computer Science. Course participants must adhere to the CAS Academic Conduct Code; please take the time to review this document if you are unfamiliar with its contents. Unauthorized downloading, uploading, sharing, and/or duplicating course materials including, but not limited to, assignments, exams, slides, videos, and any other material created and/or provided by the course staff without the course staff's express permission is a violation of the Academic Conduct Code.


Collaboration and Honesty Policy

Please read carefully the collaboration and honesty policy for this course. Please sign and submit a signed copy of the policy to Gradescope. A student's work will not be graded until they have submitted a signed policy document. Ungraded work will revert to an automatic 0 after a one week grace period.


LaTeX

We strongly recommend that you prepare your homework solutions using LaTeX, and submit PDFs to Gradescope. LaTeX is a scientific document preparation system; most CS technical publications are prepared using this tool. Great editors exist on most platforms, such as TexShop for Mac and TeXstudio for several platforms. An alternative to setting up LaTex on your machine is to use Overleaf.

The not so short introduction to Latex is a good reference to get you started.


Python and Jupyter notebook

In this course we will be using Python and Jupyter notebooks for some of the homework exercises. We recommend that you download a Python distribution such as Anaconda. Anaconda includes both Python and Jupyter notebook. The first discussion session will provide a basic introduction to Python and Jupyter notebooks. Additional resources include the following basic tutorials: