Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Table of Contents


This repository contains all of the course planning documents for Computer Science 102 Fall 2020, Discrete Structures. This course introduces the mathematical foundations of Computer Science, ensuring that students can effectively create and manipulate discrete objects in a Python programming environment. More details about the course are available in the course syllabus. A collection of slides for each week of the course is also available in the course slides repository.

Course Description

An introduction to the foundations of computer science with an emphasis on understanding the abstract structures used to represent discrete objects. Participating in hands-on activities that often require teamwork, students learn the computational methods and logical principles that they need to create and manipulate discrete objects in a programming environment. Students also learn how to write, organize, and document a program’s source code so that it is easily accessible to intended users of varied backgrounds. During a weekly laboratory session students use state-of-the-art technology to complete projects, reporting on their results through both written documents and oral presentations. Students are invited to use their own departmentally approved laptop in this course; a limited number of laptops are available for use during class and lab sessions.

Course Textbooks

  • Programming and Mathematical Thinking: A Gentle Introduction to Discrete Math Featuring Python by Allan M. Stavely, Available on Amazon
  • Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! By Amit Saha, Available on Amazon

Instructor Correspondence

Please note that the course instructor will primarily use the course's Slack workspace for communication with students.

Course Schedules

Learning Objectives

Assignment Types

Assessment Strategy

Course Assignments

Laboratory Assignments

Practical Assignments

Technical Challenge Assignments

As part of an interactive technical challenge assignment, students will demonstrate that they can use a terminal window to complete the following steps: (i) use Docker Desktop Community Edition to enter into an interactive Docker container, (ii) use Poetry to install the dependencies for a Python program, (iii) run a Python program in a virtual environment created by Poetry, and (iv) explain how the Python program's source code will cause it to create the output evident in the terminal window.

Assignment Reminder

Please note that you must click the instructor-provided link in Slack to start each of the laboratory, practical, and technical challenge assignments.

Review Sheets for Examinations

Team Assignment

Course Resources


🌟 Plans in Computer Science 102 Fall 2020