CMSC 27100: Discrete Mathematics, Summer 2026
Welcome to Discrete Math!
- Instructor
-
Erica Goodwin (reach out!)
Office hours:
- Mondays, 4-5:30PM in JCL 207
- Wednesdays 4:30-5:30PM in JCL 207
- Fridays 10:30AM-12PM in JCL 207
- Grader
- Minh-Anh Nguyen-Dang
- Lecture
- Tuesdays and Thursdays, 6:00-8:30pm in Ryerson 277
- Communication
- Homework will be released on Canvas and submitted via Gradescope.
- Course announcements and asynchronous office hours will occur via Ed Discussion.
What are we learning in this course?
Why discrete mathematics?
This course serves as an introduction to the mathematical tools and concepts relevant to the field of computer science.
While the natural sciences (such as physics) are built upon continuous mathematics (such as calculus), computer scientists work with data that is discrete (try as we might to allow otherwise) and thus rely upon different mathematical foundations.
Rather than concern ourselves with the infinitely small and the infinitely large, we will discuss things that come in neatly packaged units.
We will learn how to think about them, talk about them, and most importantly prove facts about them!
Learning Objectives
This is a mathematics course, but in many ways this class is about reading, writing, and reasoning. Specifically, in this course you will:
- Write mathematical proofs, starting with agreed-upon definitions/theorems/rules and applying logical reasoning to prove a broader claim
- Evaluate proofs for correctness by identifying faulty assumptions or logical inconsistencies
- Develop problem-solving skills, including distilling a problem to its key parts and applying previously-seen ideas in new contexts
We will develop these skills while being introduced to core concepts from the following mathematical fields:
- Logic — mathematical reasoning with statements that are either true or false; the building blocks of proof writing!
- Number theory — integers and their properties, with a particular focus on prime numbers
- Combinatorics — the study of how to count things, specifically large but finite sets of elements
- Discrete probability — quantifying the likelihood that random events (with countably many outcomes) will occur
- Graph theory — the study of graphs, a data model composed of vertices and edges used to represent relationships between objects
Wait... can't we just use an LLM to do this?
In a world that is increasingly flooded with text generated by large language models, it will become all the more important (and rewarding, I hope!) to be able to
rigorously verify truthfulness of claims and creatively problem-solve in complex situations. For now, LLMs generate text that is logical-sounding; in this course, we will write proofs that are logically sound.
The logical reasoning and problem-solving skills you will develop in this course are relevant throughout the rest of computer science... and maybe even life!
Lecture Schedule
Lecture notes will be made available at least a week before class; worksheet solutions will be uploaded after class. In the materials column,
[R x.y], [V x.y], [BH x.y] refer to sections of the recommended course textbooks (see Course Resources below).
| Unit |
Week |
Date |
Topic |
Additional Materials |
| Unit 1: Intro to Proofs + Number Theory |
Week 1 |
T 6/16 |
Logic + Proofs (slides) (worksheet / solutions) |
[R 1.1-1.5] or
[V 1.1, 1.2, 1.5, 2.1, 2.2] |
| Th 6/18 |
Intro to Number Theory (worksheet / solutions) |
[R 1.7, 4.1, p.265-269] or
[V 7.1] |
| Week 2 |
T 6/23 |
Proof by Induction (worksheet / solutions) |
[R 5.1]
[V 6.1-6.3] |
| Th 6/25 |
Strong Induction + FTA (worksheet / solutions) |
[R 4.3, 5.2]
[V 6.4] |
| Week 3 |
T 6/30 |
Modular Arithmetic (worksheet / solutions) |
|
| Th 7/2 |
Unit 1 Exam |
|
| Unit 2: Combinatorics and Probability |
Week 4 |
T 7/7 |
Sets and Basic Counting (worksheet / solutions) |
[BH 1.1-1.4]
|
| Th 7/9 |
Counting Tricks (worksheet / solutions) |
[BH 1.1-1.4]
|
| Week 5 |
T 7/14 |
Conditional Probability (worksheet / solutions) |
[BH 2.1 - 2.9] |
| Th 7/16 |
Random Variables (worksheet / solutions) |
[BH 3.1-3.4, 3.8, 4.1, 4.2] |
| Week 6 |
T 7/21 |
Combinatorial Proofs (worksheet / solutions) |
[BH 1.5 - 1.6] |
| Th 7/23 |
Unit 2 Exam |
|
| Unit 3: Graphs |
Week 7 |
T 7/28 |
Graphs and Graph Proofs and Isomorphisms (worksheet / solutions) |
[R 10.1-10.4] |
| Th 7/30 |
Connectedness and Trees (worksheet / solutions) |
|
| Week 8 |
T 8/4 |
Exam retakes |
|
| Th 8/6 |
Unit 3 Exam |
|
Course Resources
Written Resources
You are not required to purchase a textbook for this course.
All problem sets will be self-contained, and the posted lecture notes will serve as an official record of the topics covered.
However, it can be helpful
to see content explained in a different way and to have more practice problems and examples
than can be covered in class. I recommend the following resources for this purpose. Readings from these resources will be posted to the
course schedule, with specific exercises recommended at the end of each lecture.
- Discrete
Mathematics and Its Applications (8th edition). by Kenneth H. Rosen.
- Other editions are also fine, but be careful to check that the content aligns.
- How to Prove It: A Structured Approach by Daniel J. Velleman.
- A great resource for the first unit of our course, with more detail and many more problems than we
have time for.
- Introduction to Probability, 2nd ed. by Joseph K. Blitzstein and Jessica Hwang
-
In Unit 2 of our course, we cover Chapter 1 of this book, and touch on topics from Chapters 2-4 but in less
detail than this book does. It'll be good as a resource, but note that it also deals with continuous probability
whereas we stick to discrete situations.
Help Resources
Asking for help is an important and expected part of the learning process — you are strongly encouraged to ask questions and seek help throughout this course!
- Office Hours
- Weekly office hours are a mix of one-on-one
and group interaction. They sometimes become a de-facto one-hour study
group. You are welcome to come and ask for hints (e.g. "Where do I even
start?"), ask for feedback on your progress (e.g. "Is this type of solution
on acceptable?"), or to talk about the course material and logistics in
general. You may come alone or with peers in the class, and are encouraged
to work with your classmates at office hours. If you can't make the posted office hours, send me an email and we will find another time to meet!
- Ed Discussion
-
You can also get help on Ed Discussion, which will be used for us
to make announcements and also function as an asynchronous office hours. Just like office hours,
you may ask for clarifications, hints, feedback on your progress, or ask about course material and
logistics. I will try my best to respond to questions in a timely manner; you should also feel free to answer questions that other students ask! However, please do not
post any full or partial solutions to HW problems publicly on Ed. If you would like course staff to check your solution,
please make a private post!
Assignments and Grading Policies
Your work this quarter will consist of attending lecture,
doing readings, and submitting assignments. Assignments will
consist of problem sets and three unit exams.
Problem sets (25%)
Problem sets are a chance for you to practice the skills you've learned
in class, get feedback on that practice, and revise your work. On non-exam weeks, problem sets will be released immediately after Tuesday lectures and due the following Monday night. You are allowed and encouraged to work on problem sets with classmates; see the Academic Integrity + LLM Policy for more details.
- Resubmissions policy
-
Homework solutions will be released shortly after the homework due date. Because problem sets are a chance for you to learn and practice, you will be allowed to revise and resubmit each problem set once, due before the next unit exam.
Your resubmission should have your work for every question, regardless of whether it has changed. That said, please make very
clear which questions have been changed and which have not. For any question you would like to resubmit, the resubmission must contain the following three parts:
- Your original answer to the question.
- A description, in your own words, of what was
incorrect about the original answer, and why that occurred. Was it a misunderstanding of a term or concept,
or perhaps just a calculation error? Your honesty is appreciated here, both to help yourself learn
and to help me understand if there's anything I can do better.
- Your updated answer to the question, in your own words. Any substantial change to your original answer should
be justified by your description above.
To earn points for resubmitted questions, you must include an accurate reflection (i.e. did you correctly identify what was incorrect?).
A question's resubmitted score will replace your original score, unless it is lower than the score of your original attempt (resubmissions will never lower your grade).
An implication here is that in order to resubmit a question, you must have made a reasonable attempt at it the first time. Here, "reasonable" is judged
in terms of effort - an honest but entirely incorrect attempt is fine, as is some scratch work demonstrating
that you've tried the problem, but it won't be accepted without evidence that you made an attempt.
- Late Policy
-
Problem sets are carefully scheduled to give you ample opportunity to practice course material before a unit exam.
However, I understand that life does not always abide by assignment schedules!
I'm happy to grant more time to work on an assignment as long there is a plan to stay on track with this fast-paced course.
Here's how to ask for an extension:
- One day: Ask on Ed (make a private post) — this will be granted, no questions asked.
- Up to four days: Send me an email describing the situation and how many days you need. This
will also be granted — I just want to make sure you have a plan for when you can finish the work.
- More than four days: Send me an email describing the situation. We will arrange a meeting to discuss
how to make sure you don't fall too far behind in the course.
Unit exams (75%)
Exams are your opportunity to demonstrate independent mastery of course material. Each of the three unit exams will account for 30%, 25%, or 20% of your grade (in order of highest performance), totaling 75%, buffered by course participation (see below).
Exams will be in-class with no outside aid apart from a cheat sheet (no textbooks,
devices, etc.). Content-wise, they will focus heavily on the current unit, but proof/reasoning
skills and ideas from earlier units may show up on a later exam. Exams will focus on concepts and skills, and
will require very little memorization (i.e. relevant theorems and definitions will mostly be provided).
- Retake policy — Rather than a cumulative final exam, in the last week of class, you will have the (optional) opportunity to retake exam questions pertaining to concepts from Unit 1 and Unit 2.
The new exam questions may replace up to half of your previous unit exam questions. More details will be provided!
Course Participation
Your active engagement in this course, both with me and with your peers, is key to learning the material. Up to 3% of each unit exam grade may be replaced (e.g. an 85% can become a 88%) by
course participation during that unit, in the form of:
- attending lecture,
- asking or answering a public content-related question on Ed (homework counts),
- attending office hours,
each of which will contribute 0.5% per occurrence within units 1 and 2, and 1% within unit 3.
In other words, to get the full 3%, you will need to do one thing (ask or answer an Ed question, attend office hours) on top of attending all classes per unit.
Accessibility
I am committed to creating an accessible and inclusive learning environment in which all students can participate and succeed. Students who have been approved for the use of academic
accommodations by Student
Disability Services (SDS) should follow the procedures established by SDS for using
accommodations. Timely notifications are required in order to ensure that your
accommodations can be implemented. Please meet with me to discuss your access
needs in this class after you have completed the SDS procedures for requesting
accommodations.
Academic Integrity + LLM Policy
It is your responsibility to be familiar with the University’s
policy on academic honesty and plagiarism.
Instances of academic dishonesty will be referred to the Office of the Provost for adjudication.
Can I work on homework with other people in the class?
Please do! Working in groups is an invaluable way to learn, share resources, and develop a support system.
However, all submitted solutions
must be written entirely by you alone. You should never read the
solutions your collaborators intend to submit, or even drafts of those
solutions. You must include a list of your collaborators in
your submission.
Keep in mind that problem sets are your main opportunity to practice for exams, where you will independently demonstrate your mastery of course material.
While unexpected circumstances can create additional pressure around homework deadlines, the homework late and resubmission policies are intended to give you the flexibility to fully use homework as a learning process.
This course is designed so that there should never be a situation in which you would benefit from, say, copying a homework solution.
Can I use an LLM?
Think of LLMs like an overly-encouraging and confident friend who once took Discrete Mathematics, may not always remember the material correctly, and doesn't know what is or isn't specifically covered in our course.
By the collaboration policy discussed above, this means that you may never solicit a full solution from an LLM.
More specifically:
- DO: Ask it to re-explain a topic you didn't understand from class.
- DO: Ask it to generate a practice problem or quiz for you.
- DO: Ask to explain a topic to it to see whether you fully understand it.
- DO: Ask it to write out a solution for a non-graded problem, for example one from a textbook. Though,
of course, it will be more beneficial if you try to solve it yourself first!
- DO NOT: Ask it to check your solution. Instead, make a private post
on Ed asking course staff to check your work — we are happy to do that too, and will be more accurate.
- DO NOT: Ask it for solutions to homework problems — these must be your own.
- DO NOT: Blindly trust its output. LLMs are, by construction, next-word predictors trained on the internet,
so they are well-equipped to write human-sounding and logical-sounding text. In this class, work must be logically sound, not logical-sounding.
- DO NOT: Assume that anything it discusses is fair game. Solutions that use different theorems/tools or different
definitions for terms than the ones discussed in class may not be accepted.
What about the internet?
Basically the same response — it's a great place to get alternate explanations to topics or to find practice
problems, but you should not look for solutions to homework problems and you should not trust that it is always accurate or acceptable for this course.
I accidentally found a solution to a problem online or
in a textbook (or maybe just a big hint). What should I do?
Just let me know via a private post to Ed, and we'll sort it out. You will not be accused of
academic dishonesty.