Basic Course Information
Course Name: CS220: Discrete Structures and their Applications
Semester: Fall 2025
Credits: 4
Prerequisites/Co-requisites:
(CS 152 with a minimum grade of B or CS 162 with a minimum grade of C or CS 163 with a minimum grade of C or CS 164 with a minimum grade of C) and (MATH 155, may be taken concurrently or MATH 156, may be taken concurrently or MATH 159, may be taken concurrently or MATH 160, may be taken concurrently).
Communication Policy:
All students are added to a team in Microsoft Teams, which we primarily use for communication. Ask a TA or email an instructor if you are not yet a member of the team.
AI Policy:
Treat tools which provide AI assistance (Claude, ChatGPT, Gemini, Grok, Llama, etc.) as if they were a person outside of class. Using these tools to understand content from lectures or the book is perfectly fine. Posing homework problems (or problems very similar to homework problems) for an AI in order to obtain solutions and/or hints is not allowed. If you are unsure whether your use of AI is compromising your education, seek advice from an instructor. If you are copying substantial amounts of text into and out of a chat interface, then you are likely in violation of this policy and compromising your education.
Course Materials
zyBooks online textbook which through “Inclusive Access” should be accessible to anyone who successfully enrolls in the course.
Course Description & Objectives
An introduction to logic, sets, functions, proofs, mathematical induction, counting, big O notation, graphs, and trees with an emphasis on how they relate to computer science. Some familiarity with Python is assumed.
Upon the completion of this course, students will be able to:
- Understand basic propositional and predicate logic
- Apply rules of inference to make valid logical arguments
- Understand and apply mathematical knowledge of sets and functions
- Understand and apply simple mathematical proof techniques
- Understand and apply mathematical induction
- Create new proofs of mathematical statements
- Apply counting principles such as the sum and product rules to enumerate sets with complex descriptions
- Analyze simple code snippets and comment on their algorithmic complexity
- Understand data structures such as graphs and trees and analyze their basic properties
Course Schedule – Alignment of Course Topics, Learning Outcomes, and Assessments
Every week there is a recitation designed to help you learn core course content with the help of a TA. For in-person students this is assessed with a Canvas quiz done during the weekly recitation section meeting. Recitation attendance is compulsory. For online students there is a Canvas discussion that can be completed asynchronously. There are also graded activities in the online textbook and graded “knowledge check” Canvas quizzes that help you learn and retain the material.
In addition, there are two midterms, two programming assignments, four written assignments, and a final. The table below shows a rough schedule and maps these assessments to topics and learning outcomes.
| DATE | TOPIC/SUB-TOPIC | LEARNING OUTCOME(S) ALIGNMENT | ASSIGNMENT/ ASSESSMENT(S) |
| Week 4 | Propositional logic | Understand propositional logic | Programming assignment 1 |
| Weeks 5-6 | Sets, functions, logic | Demonstrate understanding and application | Midterm 1 (online Canvas quiz taken asynchronously for all students) |
| Week 8 | Mathematical proof | Understand and apply simple proof techniques & create new proofs | Written Assignment 1 |
| Week 9 | Mathematical induction | Understand and apply mathematical induction & create new proofs | Written Assignment 2 |
| Week 10-11 | Counting, big O notation | Apply counting principles & analyze simple code snippets | Midterm 2 (in-class paper exam for in-person students, online Canvas quiz for online students) |
| Week 12 | Mathematical induction | Create new proofs | Programming assignment 2 |
| Week 13 | Mathematical induction | Create new proofs | Written assignment 3 |
| Week 14 | Mathematical induction | Create new proofs | Written assignment 4 |
| Week 16 / Finals week | Everything | Everything | Final (in-class paper exam for in-person students, online Canvas quiz for online students) |
Course Policies
- Recitations typically begin with a short presentation by a TA, followed by a graded exercise. Typically, attendance and solutions to exercises are entered in a Canvas quiz which requires an access code. Your TA will give you the code during the recitation, but not necessarily right at the start. Recitation attendance is required in this class.
- All exams and quizzes are to be done without the aid of notes, AI, or outside assistance of any kind, unless advised by an instructor.
- Treat tools which provide AI assistance (Claude, ChatGPT, Gemini, Grok, Llama, etc.) as if they were a person outside of class. Using these tools to understand content from lectures or the book is perfectly fine. Posing homework problems (or problems very similar to homework problems) for an AI in order to obtain solutions and/or hints is not allowed. If you are unsure whether your use of AI is compromising your education, seek advice from an instructor. If you are copying substantial amounts of text into and out of a chat interface then you are likely in violation of this policy and compromising your education.
- Deadlines are deadlines. If you fail to submit an assignment, attend recitation, or take an exam on time, you get no points for that assessment. There is one important class of exceptions to the rule above: unforeseeable emergencies. Examples might include severe illness, the death of a family member or close friend, a house fire, etc. In the case of an unforeseeable emergency, please communicate with the instructor as early as possible. Documentation is required in all instances. If you must miss an important assessment due to illness, please go see a medical professional. Your visit summary is sufficient documentation; there is no need to have a doctor write you an official note unless the condition requires multiple days of allowed absences.
Grading Weights
Your Canvas total will be determined by the weights below, with one important caveat: you need to get 60% or above as the weighted average of your exam grades (Midterms 1 & 2 and the final) to receive a ‘C’ and above. Therefore, a student who gets below 60% as their on the weighted average of their exams will get a ‘D’ or worse for the course, even if their scores in other areas raise their overall score to a passing average.
| Assignment / Group | Weight |
|---|---|
| Final | 23% |
| Midterm 2 | 20% |
| Midterm 1 | 17% |
| Written and programming assignments | 14% |
| Knowledge checks | 11% |
| zyBooks readings | 8% |
| Recitations | 7% |
Final Grades
Final letter grades are assigned according to the following conversion from Canvas totals. We review boundaries carefully and reserve the right to make manual adjustments to relax the thresholds as appropriate.
| Grade | Range |
|---|---|
| A | 90 – 100 |
| B | 80 – 89.999 |
| C | 70 – 79.999 |
| D | 60 – 69.999 |
| F | 00 – 59.999 |