| Section | 1 |
|---|---|
| Instructor(s) | Agarwal, Ishan (ishanagarwal) |
| Location | Ryerson 277 |
| Meeting Times | Wednesday 5:30pm - 8:30pm |
| Fulfills | Immersion Math |
Course Overview [Watch Video]
Syllabus PDF: Please look at the attached syllabus (Winter 2025 version) for full details about the class.
Course Description:
This course is an introduction to ideas and techniques from discrete mathematics that are commonly used in computer science. It emphasizes mathematical proof and problem solving, employed on a variety of useful and interesting topics: combinatorics, discrete probability, graphs, and basic number theory.
On completion of the course, students will be practiced in using mathematical concepts and techniques to solve problems, and in expressing mathematical notions precisely. They will be able to use ideas and techniques from discrete mathematics in subsequent courses in computer science, in particular courses in the design and analysis of algorithms, networks, numerical methods, software engineering, data analysis, and machine learning.
Course Contents:
Course Activities:
Course Materials:
The course textbook is: Discrete Mathematics and its Applications (7th edition) (McGraw-Hill) by Kenneth H. Rosen (ISBN 978-0073383095).
The MIT Open Courseware textbook for their Mathematics for Computer Science course is also a good resource: MIT OCW textbook.
The class is intended to be self contained. Complete lecture notes will be provided for all the lectures. All problems in the problem sets will also be stated in full.
Evaluation:
The course grade will be based on homework, quizzes, a midterm and a final exam.
The quizzes/ exams will be closed-book/notes.
You will thus have a homework score out of 100% and an Exam Score out of 100% and these will be combined as per the table in the syllabus document.
Prerequisites:
Pre-calculus (especially familiarity with exponentials and logarithms) is a prerequisite. High school level familiarity with sets and functions, as well as common mathematical notation, will be assumed.
MPCS 50101 Concepts of Programming (completed or concurrently taking), or a PASS on MPCS Programming Placement Exam I, or a Core Waiver for Programming.
Course request information for non-MPCS students: https://masters.cs.uchicago.edu/student-resources/non-mpcs-student-course-requests/
This class is scheduled at a time that conflicts with these other classes: