Welcome to the Fall 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. The Gradescope course code will be posted on Piazza.

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:

  • 25% - Homework
  • 5% - Recitation Attendance
  • 20% - Midterm 1
  • 20% - Midterm 2
  • 30% - Final

To guarantee a passing grade, you will need both:

  • 40% average on the homework
  • Score at least 1.5 standard deviations below the average on the exams


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.