UNC COMP 283: Discrete Structures
COMP 283 is the CS department's discrete math course, covering logic, proof techniques, induction, sets, relations, counting, and graph basics. It's one of the courses (alongside COMP 210) required to apply to the CS major, and most students' first proof-based course.
Fennie is independent and not affiliated with UNC Chapel Hill. This is an unofficial study guide.
What makes it hard
Writing proofs is a different activity from computing answers, and that adjustment is the whole course: problems have no procedure to follow, induction resists the memorized template, and grading rewards precise logical writing. With major-application stakes attached, the course punishes the common strategy of coasting until the first exam recalibrates you.
What you'll cover
- • Propositional and predicate logic
- • Proof techniques
- • Mathematical induction
- • Sets, relations, and functions
- • Counting and combinatorics
- • Graph basics
The COMP 283 study guide
How to study for UNC COMP 283, step by step.
- 1
Treat it as a writing course from day one
COMP 283 grades the precision of logical writing, not just the idea behind it. Study finished proofs as writing samples (what gets stated, justified, and ordered) before producing your own.
- 2
Attempt every problem cold
Reading solutions feels like learning and transfers almost nothing. Struggle properly first, then compare against the solution to identify the exact move you were missing.
- 3
Drill induction beyond the template
Base case and inductive step are easy to memorize; knowing what to do inside the inductive step is the skill. Work inductions on varied structures until the choice of manipulation feels natural.
- 4
Make quantifier manipulation mechanical
Translating statements into logic and negating quantified claims is where exam points quietly die. Practice both directions daily until error-free.
- 5
Rework every docked point
Graders are showing you the precision standard the course holds. Rewrite each imperfect proof until it would earn full credit. With the CS application watching, that calibration is the highest-value studying available.
Today
Today's COMP 283 plan
What a Fennie Daily Plan looks like for COMP 283. Yours is built from your own syllabus and adapts every day to your deadlines and progress.
First plan free, no card required. Fennie is independent and unaffiliated with your school.
FAQ
Is COMP 283 at UNC hard?
It's where procedure-followers meet problems with no procedure. The math is light; learning to construct and precisely write proofs is the difficulty, and it can't be crammed. Steady weekly practice handles it, and that matters because the grade feeds the CS major application.
Should I take COMP 283 or MATH 381?
Both satisfy the discrete math requirement for the CS major application, and STOR 315 is a third path. COMP 283 is the CS department's version with CS-flavored emphasis; MATH 381 leans more mathematical. Take whichever fits your schedule and strengths; admissions treats them equivalently.
Why does the CS major require discrete structures?
It's the foundation under the rest of the degree: induction is how algorithm correctness gets argued, logic underpins everything from circuits to verification, and counting and graphs recur across upper-level courses. Weak 283 fundamentals resurface in every theory-adjacent course after it.
More UNC courses
COMP 110: Introduction to Programming and Data Science
COMP 110 is UNC's Python-based introduction to programming, framed around data science ideas, and the first course toward the CS major and minor. It assumes no prior experience and covers control flow, functions, lists and dictionaries, object basics, and working with data.
COMP 210: Data Structures and Analysis
COMP 210 teaches how data structures are actually built: lists, stacks, queues, trees, and hash tables, along with recursion and runtime analysis. It's the centerpiece of the CS major application at UNC, so the grade carries admission stakes on top of the content.
COMP 211: Systems Fundamentals
COMP 211 takes UNC CS students below Python: data representation, C programming, pointers and memory management, processes, and the Unix command line. It builds a working model of how programs actually execute, and with COMP 210 it forms the core that upper-level courses assume.
COMP 301: Foundations of Programming
COMP 301 teaches UNC CS students to structure and organize larger programs: object-oriented design in Java, interfaces, inheritance, design patterns, and testing. It's the bridge from writing code that works to writing code that's built well, and it follows COMP 210 in the core sequence.