Worksheet Sessions
MWF, 10:10am-11:00am (Section A), 11:15am-12:05pm (Section B)
Philip Caplan
  • 75 Shannon Street, room 219
    Middlebury, VT 05753  map
  • 1 (802) 243-5707
  • pcaplan@middlebury.edu
  • Office Hours: Mondays 4-5pm (office), Tuesdays 11am-12pm (office), Thursdays 12:30-1:30pm (office), Fridays 1:30-2:30pm (office) , and by appointment
  • 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.
  • Express problems in terms of systems of equations and use techniques from linear algebra to solve them.
  • 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:
  • Worksheets: 15%
  • Quizlets: 10 x 2.5% = 25%
  • Midterms: 20%
  • Final exam: 25%
  • Applications Paper: 5%
  • 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.

Video Lectures & Notes (asynchronous)

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 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).

Worksheet sessions (synchronous)

Instead of holding lectures MWF, you will be required to attend class 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 attend for about 25 minutes at any point in the reserved class time (but you must attend your section). Each worksheet will contain a few problems (usually 1-2) to practice your understanding from the lecture videos and notes. At the end of each worksheet session day, you will submit a Canvas form that will ask you whether you attended the session. You must submit this form on time to obtain credit for the worksheet. Your worksheet will not be graded, but is intended for you to practice solving problems. My solutions will be available on Canvas after you submit the Canvas form. Some of the problems could involve a small programming component. If you need additional practice beyond the worksheets, there are many practice problems (with solutions) in these textbooks.



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 quizlets will consist of the following:

  • I will select one problem from that week's set of worksheet problems, or the notes, 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.
  • A second (new) problem that will tie in various concepts about the topics from that week, but will challenge you to "think outside the box." You are free to use your notes, videos and consult with your classmates when solving this problem, but you must submit your own work.
  • Sometimes, there will be a reflection question in the quizlet. Submissions will be anonymous - you will only be required to upload a screenshot confirming your submission to the Google Form to the Canvas quiz.
  • There may also be some questions about how your group work went for that week, and which concepts you would like more practice with.
Each quizlet will count for 2.5% of your grade and will be due every Tuesday night.

Submission and grading

Once you submit your quizlet, my solutions will become available, and you will 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 quizlet. You will then be assigned a grade for your combined problem set solutions and self-assessment (see the guide). I will drop your lowest quizlet grade


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

  • M1: October 13
  • M2: November 10
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. Days & times in which you can sign-in and sign-out your exam will be specified later in the semester.

Applications Paper

Towards the end of the semester, you will write a short paper (2-3 pages) in which you will pick a topic from the course and describe how you would apply it to solve a problem of your choosing. This will involve a little bit of research, and you do not need to understand all the mathematical details of the problem at hand. Further details will be posted later in the semester.


It is your responsibility to watch the asynchronous lecture videos and respond to the effort-based Panopto quizzes (but please let me know if you cannot access Panopto). You must also attend the worksheet sessions on MWF and actively engage with your group members. Your participation grade will be based on whether you have attempted the Panopto quizzes, attended the worksheet sessions and regularly participated with your group members.


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.

Furthermore, creating such an environment is a team effort, so I expect you to join me in fostering an inclusive learning experience for everyone. Every member of the class is expected to show respect for every other member so that everyone can learn in this space. If you experience or witness any behavior that opposes this idea, it would be helpful for me to know so that I can address it. If you feel comfortable, you can report such incidents in the following ways:

  • talk to or email me,
  • report the incident to our anonymous CS departmental climate feedback form,
  • fill out a Bias Incident Report which goes to the Middlebury Community Bias Response Team.
You belong in this class and in the computer science department. Thank you for being here and for contributing to this course.


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.

Honour 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.

Laptop Loaner Program

If you ever find yourself temporarily in need of a laptop, the Computer Science department has 10 rotating Dell laptops available to our students. These come pre-installed with software for most of the courses in the major. They are available to be loaned out short-term or long-term based on your need (as determined by you). Feel free to ask me ahead of time if you think you need one for just a class period, or you can send an e-mail to Robert Lichenstein: rlichenstein [at] middlebury.edu directly.

On Long-Term Use: College policy has changed recently to include the expectation that every student have a laptop available. The college provides laptops to those who need them where “need” is based on Student Financial Services calculations. If you anticipate needing a laptop for the whole term, we encourage you to inquire with Student Financial Services and the library first due to our smaller pool of equipment. However, our department commits to meeting the needs of every student, so do not be afraid to reach out if you believe you need one of our laptops for any length of time.


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.