Welcome to the Spring 2021 iteration of CIS 160!

If you're new here, welcome!

We have a course Piazza page. It will be used for course announcements and Q&A.

We have a course Gradescope. It will be used for homeworks. Gradescope can be accessed through Canvas.

Most questions should be directed to Piazza. However, if you need to get in contact with the course staff for an urgent matter, please email the head TAs at cis160@seas.upenn.edu (do not contact this email address with waitlist related queries).

Course Learning Objectives

  • Decipher and manipulate mathematical notation for sets, functions, operations, and relations, as applied to discrete modeling of computational problems.
  • Construct informal but rigorous mathematical proofs.
  • Apply combinatorial techniques to counting problems that arise in computation.
  • Build discrete probabilistic models for random processes and behaviors that arise in computation.
  • Apply graph theory to modeling problems that can be solved with computational methods.


Your final grade will consist of:

  • 15% - Midterm 1
  • 15% - Midterm 2
  • 15% - Midterm 3
  • 30% - Final Exam
  • 20% - Homework
  • 2.5% - Recitation Attendance/Participation
  • 2.5% - Interactive Session Attendance/Participation

Your lowest two homework scores will be dropped when calculating final grades.

Collaboration Policy

You may organize into collaboration teams of up to 3 current students. For each homework assignment, you can only be in one team and must list all team members on your homework submission, whether or not you specifically spoke with them. You may have different teams for different assignments.

Collaboration can only consist of discussions. You must write your solutions on your own.

The only materials you may reference when writing homework solutions are course materials (lecture notes, homework solutions, and recitation guides).

Please see the course syllabus on Canvas for a full collaboration policy, including detailed examples of permitted collaboration.


There is no required or recommended textbook for this course. A textbook that can be referred to for extra reading is ''Mathematics: A Discrete Introduction'' by E. A. Scheinerman.