CSE 312: Foundations of Computing II, Spring 2022

General Information


Stefano Tessaro [he/him]

A: MWF 9:30-10:20 (CSE2 G10)
Office: CSE 644

Paul Beame [he/him]

B: MWF 1:30-2:20 (CSE2 G10)
Office: CSE 668

Course Resources

  1. Course website: https://cs.washington.edu/312

  2. Gradescope, EdStem and other materials linked from the website above.


Community COVID-19 levels are low at this time and masks are not required. However, given our group is large and we will be close together when we meet, wearing a mask is recommended. This policy is subject to change as the COVID-19 pandemic continues to evolve.


You should regularly check the class web site and EdStem for announcements and other information, including the most up-to-date information on problem sets and errata. The class web page will also have the schedule of topics to be covered and links to other class materials, including accompanying lecture notes, slides (after lecture) etc. If you have any personal questions, please email the instructors directly. Any other non-sensitive questions about course content should be posted on our discussion forum. The discussion forum also allows posting privately that are visible only to the course staff.


There is no required textbook for the course. A good reference is a draft textbook written by Alex Tsun from his summer offering of 312. This should be all you need.

Nonetheless, you may find following optional textbooks useful.

  • Larsen and Marx, An Introduction to Mathematical Statistics (5th edition). Prentice-Hall.
  • Dimitri P. Bertsekas and John N. Tsitsiklis, Introduction to Probability (First Edition). Athena Scientific, 2000. (Available here.)
  • Sheldon Ross, A First Course in Probability (10th Ed.), Pearson Prentice Hall, 2018.

Course Grades

Your final course grade will be computed according to the following rough breakdown:

Problem Sets (8)45-50 %
Concept Checks (1 per lecture)5-8 %
Midterm15-20 %
Final Exam30-35 %

Problem Sets

  • There will be 8 problem sets ("PSets"), to be solved individually. All of them will involve a written part and many of them will involve a coding problem or two as well. You will be submitting your solution to each PSet on Gradescope. PSets will generally be due on Wednesdays.

  • We plan to have a small number of coding problems. The coding you do on the problem sets will be done in Python. The implementation you do will provide you with a deeper understanding of how the theory we learn in this class is used in practice and should be a lot of fun. Note that we do not expect you to have any experience or knowledge of Python --- we will provide you with tutorials and other kinds of help to get you started. A huge bonus of this class will be that you will come away with basic, working knowledge of Python (which you will undoubtedly use in the future, and definitely if you take CSE 446, the machine learning class).

  • We strongly encourage you to type the written parts up using LaTeX. There are links to resources for learning LaTeX here. If you take other classes that involve a fair amount of math (such as the machine learning class CSE 446) or plan to write research papers, you will need to typeset in LaTeX anyway. It is a very useful skill, so you may as well start now.

  • You must show your work; at a minimum 1-2 sentences per question, but ideally as much as you would need to explain to a fellow classmate who had not solved the problem before. Be concise. A correct answer with no work is worth nothing, less than a wrong answer with sufficient explanations explaining your reasoning.

  • You must tag the question parts of your homework correctly on Gradescope. Failure to do so will result in a 0 on every untagged question. Please check your submission by clicking each question, and making sure your solution appears there.

  • The coding parts of the homeworks will be written in Python3, with no exceptions. This because the coding parts will be autograded. There are no hidden tests, and you’ll have unlimited attempts. Whatever you see last on Gradescope for that section will be your grade. You will be able to write and test them on the EdStem platform, which means that essentially no setup is required.

  • Regrade requests are due on Gradescope within one week of grades being published.

  • It is okay to discuss with other students in coming up with PSet solutions, but you must list all your collaborators at the top of each homework. Moreover, you have to write up your own solution and be able to explain your answer if asked to do so. We plan to do some spot checks in which we ask students to explain one of their solutions (or solve a slight variant of the problem they solved on the homework) in person.

  • You do not need to solve all PSets to secure the highest possible grade.

Concept Checks

  • Associated with each lecture, there will be a "concept check" for you to take on Gradescope. This will consist of 4-8 questions that test your basic understanding of the concepts covered in lecture. The questions are intended to be straightforward to answer; each concept check should not require more than about 20-30 minutes.

  • Concept checks are due at 9:00 AM PST before the next lecture for students in both sections of the course.

  • You can submit your answers as many times as you want; we will only grade the final submission. Correct answers will reveal the answer explanation; all other answers will not, so you can keep trying until you see the answer explanation.

  • After the initial deadline, you can submit your concept check up to a week after the concept check is released for partial credit (capped at 50%).

  • Since there will be nearly 30 concept checks (one per lecture), we will drop your lowest 4 scores when calculating your grade in the class.


  • There will be a midterm and final in this course to act as culminating assessments of the course concepts.
  • The midterm will be in class during your regular lecture time on Wednesday, May 4.
  • The final exam will be Monday, June 6 and has been rescheduled to accommodate roughly common exam times. The room will be CSE2 G20 and the times will be 2:30-4:20 pm (the original exam time for the 1:30 section) and 4:30-6:20 pm.

Late Policy

  • Problem Sets: You have a total of six late days during the quarter, but can only use up to three late days on any one problem set. Please plan ahead, as we will not be willing to add any additional late days except in absolute, verifiable emergencies.

  • The final problem set will not be accepted late.

  • Concept checks submitted late, but within one week of the associated lecture, can earn up to half credit.


  • Disability Accommodation Policy: See here for the current policy.

  • Religious Accommodation Policy: See here for the current policy.