MPCS 50103 Mathematics for Computer Science: Discrete Mathematics (Winter 2022)

Section 1
Instructor(s) Ng, Timothy (timng)
Location Ryerson 276
Meeting Times Wednesday 5:30pm - 8:30pm
Fulfills Immersion Math

Syllabus

Course Description

This course is an introduction to ideas and techniques from discrete mathematics that are widely used in computer science.  The course emphasizes mathematical proof and problem solving, employed on a variety of useful topics in counting, discrete probability, graphs, and basic number theory. 

On completion of the course, students will be trained to think about and use mathematical concepts and techniques to solve problems, and to express 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

Topics covered include: methods of proof, including mathematical induction; number theory, incuding divisibility, prime numbers, greatest common divisors, modular arithmetic, Chinese remainder theorem, Fermat's little theorem; counting, including permutations, combinations, binomial theorem, pigeonhole principle, inclusion/exclusion principle; discrete probability, including conditional probability, independence, Bayes's theorem, random variables, expected value, variance, covariance; graphs, including graph isomorphism, graph coloring, trees, planar graphs; recurrences and asymptotic notation. 

 

Textbook

Discrete Mathematics and its Applications (7th edition) (McGraw-Hill) by Kenneth H. Rosen (ISBN 978-0073383095).

 

Prerequisites

Precalculus, especially logarithms and exponentials, is a prerequisite; calculus is recommended but not required.  High-school level familiarity with sets, functions, relations, and mathematical notation will be assumed.

Course Prerequisites

MPCS 50101 Concepts of Programming (completed or concurrently taking) OR successfully passing the Programming Placement exam.

This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp (https://masters.cs.uchicago.edu/page/mpcs-unix-bootcamp) or take the online MPCS Unix Bootcamp Course on Canvas.

Other Prerequisites

MPCS Students only.

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 52011-1 -- Introduction to Computer Systems
  • MPCS 53110-1 -- Foundations of Computational Data Analysis
  • MPCS 51250-1 -- Entrepreneurship in Technology
  • MPCS 55001-2 -- Algorithms

Eligible Programs

Masters Program in Computer Science MS in Computational Analysis in Public Policy (Year 1) MS in Computational Analysis in Public Policy (Year 2) MA in Computational Social Science (Year 1) MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors)