Panopto & YouTube
Worksheet Sessions
MWF, times 8am-9am (Section C) and 2:30pm-4:30pm (Section A/B)
Philip Caplan
  • 75 Shannon Street, room 208
    Middlebury, VT 05753  map
  • 1 (802) 243-5707
  • pcaplan@middlebury.edu
  • Office Hours: MWF 7:30am-8am, 2pm-2:30pm & 4:30pm-5pm (and by appointment)
  • I don't want to post zoom links here, so please see my email!
  • You can call me Philip, or Professor Philip if you prefer.
  • Please come to office hours with specific questions.
  • Assignments must be handed in on time, unless you have a compelling reason and let me know > 72 hours in advance.


The primary goal of this course is for you to enhance your pen-and-paper problem solving skills for computer science applications. An important component to solving problems is working with your peers: communicating your strategies and using mathematical arguments to support your solutions.

Learning Objectives

By the end of this course, you will be able to:
  • Use mathematical notation for basic mathematical objects such as sets and functions correctly and appropriately.
  • Write clear, concise, and correct proofs using the following techniques: direct proof, induction, contrapositive, proof by contradiction, proof by counter example, and proof by cases.
  • Analyze function growth and algorithm runtime using asymptotic notation and recurrence relations.
  • Solve combinatorial problems.
  • Describe graphs and their properties, prove statements related to graphs, and understand simple graph algorithms.
  • Describe and analyze random events using discrete probability.


Your final grade will be determined as follows:
  • Problem Sets: 5 x 3% = 15% (up to 04/02)
  • Quizlets: 5 x 1% = 5% (up to 03/13)
  • Worksheets: 3 x 15 x 1% = 15% (starting 03/30)
  • Reflections: 5 x 2% = 10% (starting 03/30)
  • Midterms: 20%
  • Final exam: 25%
  • Participation: 10%
I will use Canvas to post your grades.


There are no required textbooks. Lecture notes will be posted on the calendar. However, you may find the following open access textbooks useful for finding practice problems. Chapter sections corresponding to the lecture topic will be posted on the calendar.



My goal is to create an inclusive and welcoming learning experience for everyone. I try to use language, examples and exercises that promote a sense of belonging to the field of mathematics and computer science, but please let me know if there is anything I can do to improve.

Worksheet sessions: please fill out this form!

Instead of holding lectures MWF (as we did in the first five weeks), you will be required to log into Zoom breakout meetings to solve problems with your assigned groups. The worksheets you complete in these sessions will form the bulk of the work you do for this course, so attendance is mandatory. You are only required to log in for about 20 minutes at any point in the reserved time slot. Each worksheet will contain two problems. The first problem is to be solved virtually with your groups (you can use Zoom's whiteboard feature to share ideas). The second problem is to be solved independently, however, you may wish to talk with your group members about approaches to solve it. At the end of each session day, you will submit an assignment that will ask you to upload a picture of your work for each problem. These will be graded based on effort: if you upload a picture for each problem, then you get the points (2 x 0.5% = 1%) for that worksheet. You must submit this assignment on time. My solutions will be available on Canvas after you upload a picture of your work. I will also be logged into the break-out meetings in case you have any questions.

Video Lectures & Notes

Just as in the first five weeks, I will provide typed notes to guide you through the course material and will post them on the course calendar. I will also create pre-recorded lecture videos that elaborate upon each course topic, which will also be linked on the course calendar. The lecture videos will be posted to Panopto and YouTube the day before the worksheet dates. You must watch the Panopto lectures because there will be embedded quizzes for you to complete (correctness doesn't matter, but it will count towards your participation grade). Lectures will also be posted on YouTube so that you can rewatch them without the Panopto quiz interruptions.


At the end of each week, you will reflect and assess your work for that week, in the form of a Canvas quiz. Each of these reflection quizzes will consist of the following:

  • A self-assessment question for each problem from that week (6 total) asking you to select a multiplier to assess your own work. This is similar to when you did self-assessments for the problem sets using this grading rubric. However, you no longer need to annotate your submissions in Canvas, but simply select an appropriate multiplier from a dropdown. This will not affect your grade, but is a good way for you to assess how well you are doing in the problems.
  • A free response reflection on the problems from that week. Overall, what concepts did you struggle with? What did you like/dislike?
  • A free response reflection on your virtual group work for that week. How was the engagement between all the group memebers?
  • List a few topics that were covered this week (similar to the previous quizlets).
  • I will select one problem from that week's set of problems for you to resolve and upload a copy of your solutions. When solving this problem, you should respect Middlebury's Honor Code: you are not allowed to consult your notes, textbooks or solutions to the problems. Whereas the daily problems were graded for effort, this problem will now be graded for correctness.
Each reflection will count for 2% of your grade and will be due every Sunday night.


There will be two take-home midterms which are worth 20% total. The dates for the two midterms (M1,M2) are:

  • M1: March 11
  • M2: April 22
Your total grade, M, for the two midterms (M1,M2) will be calculated as: M = 0.7*max(M1,M2) + 0.3*min(M1,M2). Please let me know as soon as possible if you have any conflicts with these dates.

Final exam

The final exam will cover all material in the course and will be a 3-hour take-home exam. You may chose which date you prefer to take the exam: either Thursday May 14th or Friday May 15th. Times in which you can sign-in and sign-out your exam will be specified later in the semester.


There will be no more quizlets after 03/13. There will be a weekly in-class quizlet (every Friday, about 10-15 minutes). Each quizlet will consist of 1-2 problems, taken directly from the problem sets or in-class exercises (up to a small change in the numbers). Sometimes, a quizlet will be an anonymous reflection quizlet, in which you can provide anonymous feedback as to how the course is going for you so far (what you like, what you don't, how might you apply this material, what I can do to help). I will simply take attendance when you turn in your reflection quizlets to give you full credit. All quizlets are closed book/notes (unless otherwise specified) and must be completed individually. I will drop your lowest quizlet score.

Every quizlet will have a question at the end which asks "What did we cover this week?" in which you are to write 2-3 bullet points of the main topics we covered in the particular week of the quizlet (M,W,F). This method of "retrieval" has been shown to be effective in forming stronger memories of what you have learned.

Problem sets

There will be no problem sets due after 03/31. The problem sets provide you with opportunities to practice problem solving, and more importantly, to figure out what you understand and where you need additional practice. The problems will challenge you to apply your knowledge to something we haven't directly seen in the lecture exercises. Some of the problem sets will involve a small programming component. If you need additional practice beyond the problem sets, there are many practice problems (with solutions) in these textbooks. The problem sets will also contain an anonymous reflection question, which are to be filled into a Google Form. Once you complete the form, you will take a screenshot confirming your submission, and then attach it to a comment in your problem set submission on Canvas (this way, I know you completed the reflection, while remaining anonymous).

Submission and grading

The final problem set self-assessment is due on 04/02. The problem set questions will be posted on the calendar page of this site and you will upload an electronic copy of your solutions (as a single PDF file) to the corresponding Assignment in Canvas. After the submission deadline (on Tuesdays), I will post my solutions and you will then be responsible for self-grading your solutions, using this guide (with rubric). Your self-assessment will be due on Thursday following the (Tuesday) due date of the problem set -- so this is a good way to study for the Friday quizlet! You will then be assigned a grade for your combined problem set solutions and self-assessment (see the guide). We are mostly looking for effort and thought process in your solutions. I will drop your lowest problem set grade.


We will no longer use Plickers after 03/13 :( I will use Plickers for quick in-class exercises. Your responses won't affect your grade but I will keep track of whether you are participating in the activities. If you lose your Plicker QR code, ask me for your number and print out another copy from the Plickers website.


Academic Accommodations

Students with documented disabilities who believe that they may need accommodations in this class are encouraged to contact me as early in the semester as possible to ensure that such accommodations are implemented in a timely fashion. Assistance is available to eligible students through Student Accessibility Services. Please contact the ADA Coordinator Jodi Litchfield, who can be reached at litchfie@middlebury.edu or 802-443-5936 for more information. All discussions will remain confidential.

Title IX

As faculty members and members of the Middlebury community, we are committed to the safety of all students. If we learn of any potential violation of our Policy Against Sexual Misconduct, Domestic and Dating Violence and Misconduct, and Stalking ('SMDVS Policy') or our Anti-Harassment/Discrimination Policy, we are required to notify a member of Middlebury's Title IX team (policies summary). This ensures that the students receives timely care and information about their rights, their choices, and available resources for support. Students who would like to speak with a confidential resource who does not have an obligation to report can contact MiddSafe, the Patron Center for Health and Wellness, WomenSafe (serving individuals of all gender identities), or campus and local clergy and medical professionals. For more information, see go/sexualviolenceinfo.

Honor Code

You are expected to maintain the highest level of academic integrity in this course. All work you turn in should be your own. However, collaboration on problem sets and projects is not only allowed, but encouraged. If you work with another student on a problem set or projects, please acknowledge that person (e.g. "I worked with xxx."). Additionally, please adhere to the following guidelines:

For problem sets, you may discuss or work on problems with others, but you should write up your solutions on your own, using your own words. However, I recommend practicing solving some problems on your own, since this is what you will have to do for quizzes and exams.

The exams and quizzes must be entirely your own work. Exams and quizzes should be completed without any notes or other resources, unless specifically allowed for. You may not share any information about midterms or quizzes with any other students, either within or outside of the course.


I will not accept late submissions unless you have a compelling reason and let me know at least 72 hours in advance. You do not need to let me know which of your problem sets or quizlets you wish to drop from your grade.