Discrete Mathematics
- Level
- Undergraduate
- Status
- Under development
Note: this course is still being designed and calibrated; the page content is for reference and does not represent the final teaching version.
Syllabus
Course Overview
Discrete Mathematics provides proof, modeling, and abstraction skills for computing systems and security. The course covers logic, sets, relations, functions, induction, counting, graphs, trees, automata, and basic probability, tying topics to programs, protocols, cryptography, and system design.
This is the mathematical entry course for applied cryptography, compilers, program analysis, and protocol verification.
Prerequisites
- High-school mathematics and basic programming experience.
- Willingness to practice formal expression and rigorous proof.
- No advanced mathematics background required.
Learning Outcomes
- Use propositional and predicate logic to express computational properties.
- Write direct, contradiction, induction, and constructive proofs.
- Model system structures with graphs, relations, and automata.
- Solve counting and basic probability problems.
- Connect mathematical models to program correctness, protocols, and cryptographic applications.
Course Format
- Two meetings per week: one for core concepts and one for labs, paper discussion, or project review.
- The course proceeds over 16 weeks, each with a checkable assignment, lab, or project milestone.
- Reproducibility is required: code, configuration, data, lab logs, and reports must be reviewable by staff or peers.
Weekly Plan
Logic, propositions, and predicates
Translate program properties into logical formulas.
Logic, propositions, and predicates: lab and review
Translate program properties into logical formulas. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Proof methods and induction
Prove correctness of a recursive program by induction.
Proof methods and induction: lab and review
Prove correctness of a recursive program by induction. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Sets, relations, and functions
Model access control and equivalence relations.
Sets, relations, and functions: lab and review
Model access control and equivalence relations. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Counting and combinatorics
Analyze key spaces and collision probabilities.
Counting and combinatorics: lab and review
Analyze key spaces and collision probabilities. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Graphs, trees, and traversal
Represent dependencies, attack paths, or control flow as graphs.
Graphs, trees, and traversal: lab and review
Represent dependencies, attack paths, or control flow as graphs. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Recurrences, complexity, and asymptotics
Analyze algorithm cost and protocol-state growth.
Recurrences, complexity, and asymptotics: lab and review
Analyze algorithm cost and protocol-state growth. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Automata and formal languages
Construct a lexical rule or protocol state machine.
Automata and formal languages: lab and review
Construct a lexical rule or protocol state machine. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Probability models and randomized algorithms
Complete a randomized experiment and security-parameter analysis.
Probability models and randomized algorithms: lab and review
Complete a randomized experiment and security-parameter analysis. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Assessment
Concept questions, reading responses, design tasks, and small programming or lab exercises.
Proof assignments, modeling exercises, and a small mathematical application project.
Participation in discussions, demos, code or paper reviews, and peer feedback.
Submit reproducible artifacts, a technical report, and a demo explaining methods, results, limitations, and future work.
Course Project
Students model a computing or security topic with discrete structures and provide proof or experimental explanation, such as protocol state machines, access-control relations, control-flow graphs, or cryptographic parameter analysis.
Policies
- AI tools are allowed, but generated code, lab notes, and design suggestions must be reviewed by the student and disclosed in the report.
- Students may not submit code, proofs, configuration, or experimental results they cannot explain; each member must defend their own design, tests, and tradeoffs.
- Late work affects iteration grades, but the course values reproducible, auditable, and maintainable results over last-minute accumulation.
Reference Courses
International
- CMU15-151: Mathematical Foundations for Computer Science
- CornellCS 2800: Discrete Structures
- ETH ZurichDiscrete Mathematics
- Georgia TechCS 2050: Introduction to Discrete Mathematics for Computer Science
- MIT6.042J Mathematics for Computer Science
- OxfordDiscrete Mathematics
- PrincetonCOS 340: Reasoning about Computation
- StanfordCS103: Mathematical Foundations of Computing
- UC BerkeleyCS 70: Discrete Mathematics and Probability Theory
- University of WashingtonCSE 311: Foundations of Computing I
China 985 Universities
- 上海交通大学Discrete Mathematics
- 中国科学技术大学离散数学
- 南京大学离散数学
- 哈尔滨工业大学离散数学
- 浙江大学MATH 213 离散数学
- 西安交通大学离散数学