CSE 312: Foundations of Computing II, Spring 2025

General Information

Instructors

Rachel Lin [she/her]

rachel(at)cs.washington.edu
Office: CSE 652

Course Resources

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

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

Announcements

You should regularly check EdStem for announcements and other information, including the most up-to-date information on problem sets and errata. The class web page contains the topics to be covered and an initial schedule. The actual schedule might change based on the pace of the class. The exact schedule and links to other class materials, including accompanying lecture notes, slides (after lecture) etc will all be posted on Edstem, under the resources tab. Please post your questions on Edstem as much as possible. Use public posts for course related questions and private posts for personal quetions, which are only visible to the course staff.

Textbooks

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 be released on Wednesdays and due on Wednesdays one week after.

  • 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 should not use the web or mathematical software like wolframalpha to help solve the homework. This is because the homework is already designed to make sure that they can be solved manually. If software were allowed, we would have designed harder questions. Furthermove, the purpose of the homework is for you to learn. We all know that these homework problems are well within the reach of software and AI, but they do not help you learning.

  • 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 is 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. We will drop your lowest homework score when calculating your grade in the class.

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 1:00 PM PST before the next lecture.

  • 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 3 scores when calculating your grade in the class.

Exams

  • 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 7.
  • The final exam will be Monday, June 9 in the regular lecture room 2:30-4:20 pm (the exam time in the official exam schedule).

Late Policy

  • Problem Sets: You have a total of 9 * 24 = 216 late hours during the quarter, but can only use up to 3 * 24 = 72 late hours on any one problem set, since after 72 hours we will release the solution.

  • For the final problem set, you can only use up to 24 late hours, since after 24 hours we will release the solution to facilite the preparation of final.

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

  • Please plan ahead, as there will be no exceptions to the late policies.

Section Participation Policy

  • Sections are designed for excercise, participation, and collaboration. Attending sections is mandatory, and in-person participation will be recorded. Your section participation record will be used for rounding up (or not) your final grades at the end of the quarter.

  • Depending on the content of the sessions, in-person participation is necessary for some of them and they will be announced in a rolling basis.

  • For the rest sessions, you can get your particpation credit by either attending the session in person, or handing in written work showing that you have worked through the exercises done in that session. In the latter case, contact your section instructor for detailed instruction.

Accommodations

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

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