Discrete Math with Functional Programming and Proofs: A Mathematical Intro to Computer Science
Intro to mathematical computer science. Use the lens of functional programming to learn discrete math and to write mathematical proofs. Topics include: Computation From a Mathematical Viewpoint; Functional Abstraction; Substitution Model; Iteration, Recursion and Induction; Number theory, RSA/Cryptography; Graph Theory; Set theory, Types & Functions; Analysis of Algorithms, Algorithmic Complexity; Lists, Trees, hierarchical data: Mathematical Proofs; Structural Induction; Streams; MapReduce; Computability & the Halting Theorem; Countability, and Equinumerosity; Computational Geometry ; Turing Reductions; Probability; Hidden Markov Models; Lower bounds; Motion Planning for Robotics. Recommended prerequiste: Math 111 or equivalent, Computer Science 101 or equivalent. Cannot take if taken Computer Science 230 or 232.
Topics
- Computation From a Mathematical Viewpoint
- Functional Abstraction
- Substitution Model
- Iteration
- Recursion and Induction
- Number theory
- RSA/Cryptography
- Graph Theory
- Set theory
- Types & Functions
- Analysis of Algorithms
- Algorithmic Complexity
- Lists
- Trees
- hierarchical data: Mathematical Proofs
- Structural Induction
- Streams
- MapReduce
- Computability & the Halting Theorem
- Countability
- and Equinumerosity
- Computational Geometry
- Turing Reductions
- Probability
- Hidden Markov Models
- Lower bounds
- Motion Planning for Robotics
Topics explicitly listed in official catalogue description
Prerequisites & course information
004341
Sources
- Course catalogue ↗2026-2027