Welcome to the Summer 2020 iteration of CIS 160!

If you're new here, welcome!

If you're looking to get started with LaTeX, grab our LaTeX Setup Guide to get started!

We have a course Piazza page.

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 us at cis160@seas.upenn.edu.

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:

  • 30% - Exam 1
  • 30% - Exam 2
  • 25% - Homework
  • 10% - Recitation Participation
  • 5% - Interactive Session Participation

Collaboration Policy

Please read the collaboration policy in detail.


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.