CS237 Fall 2020 Syllabus

CAS CS 237 - Fall 2020 - 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 other elementary calculus class). We assume good working knowledge of elementary set theory and counting, and elementary calculus (i.e., integration and differentiation).


Piazza Page

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


Course Staff

Instructor: Prof. Alina Ene
Homepage: cs-people.bu.edu/aene/
Email: (@ bu . edu) aene
Office Hours: Monday 9:30am - 11am

Teaching Fellows and Undergraduate Assistants
Name Email (@ bu . edu) Office Hours
Xingjian Han (TF) xjhan Friday 7:15am - 8:45am
Iden Kalemaj (TF) ikalemaj Thursday 8:30pm - 10pm
Yansong Bai (UA) baibest1 Tuesday 2pm - 3pm
Rachel Lai (UA) ralai Wednesday 4pm - 5pm
Anna Watson (UA) ajwatson Sunday 7pm - 8pm

All office hours will be held remotely via Zoom. The links to the Zoom meetings will be posted on Piazza.

Lectures

Lecture A1: Mon/Wed 2:30pm - 3:45pm, SAR 101.

Discussion Sections

Discussion A2: Tue 9:30am - 10:20am, FRC 222.
Discussion A3: Tue 11:15am - 12:05pm, MCS B37.
Discussion A4: Tue 12:30pm - 1:20pm, CAS 237.
Discussion A5: Tue 2:00pm - 2:50pm, CAS 201.

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

Rotation schedule for in-class attendance: All class sessions (lectures and discussions) will be held in person and streamed online via Zoom. Due to room capacity and social distancing restrictions, there will be a rotation for the students attending the class sessions in person. The rotation will be posted on Piazza. If you have not done so already, if you are attending entirely remotely this semester, please indicate so on the student link.

Class recordings: All class sessions (lectures and discussions) will be recorded for the benefit of registered students who are unable to attend live sessions (either in person or remotely) due to time zone differences, illness or other special circumstances. Recorded sessions will be made available to registered students only via their password-protected Piazza account. Students may not share such sessions with anyone not registered in the course and may certainly not repost them in a public platform. Students have the right to opt-out of being part of the class recording. Please contact the course staff to discuss options for attending the course in such cases.


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:

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 two midterm exams. The midterm exams will be held synchronously via Zoom. Students will be required to connect on Zoom using video during the exams, and may use any suitable device (laptop, tablet, phone, etc.). If we are unable to see a student's video during part of the exam, we may ask the student to take a separate oral exam. If you anticipate any issues with taking the exams over Zoom using video, please contact the instructor to discuss possible solutions.

Homework Assignments, Submission, and Late Policy: Assignments will involve both analytic (math) problems and programming in Python. Assignments will be due on Mondays at midnight as indicated on the course 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 MBZYNP. Please use your BU email address and include your Student ID in the format U00000000.
We will not accept late submissions and we will not grant extensions. To offset this policy, when computing your homework grade, we will automatically drop the lowest homework score. 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, either in person or remotely via Zoom. If you are attending remotely from a time zone with an extreme time difference and cannot attend during the scheduled class times, please contact the course staff to let us know.


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 with your first homework.


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. Some basic tutorials include: