Placement Exams

Placement exams are a key component of the MPCS onboarding process, designed to ensure students are matched with coursework that aligns with their existing knowledge and skills. All incoming students to the MPCS should plan to take placement exams before beginning their studies.

If you are a new student without any programming and/or a discrete math background, you can opt to begin the MPCS with Immersion Courses without taking exams. Please make sure you understand that these immersion classes are prerequisite classes and are taken in addition to courses required for graduation. In some cases, enrollment in immersion classes will extend time-to-degree and could limit the core courses you can take in your first quarter in the program.

 

Winter 2026 MPCS Placement Exams:

MPCS Programming Exam I: 12/12/25 – 12/13/25 (ONLINE) | Register For The Exam

The MPCS Programming Placement Exam I must be completed within a 2-hour time frame between Friday December 12 at 8AM CST and Saturday December 13 at 8PM CST. See below (Programming Placement Exam Overview) for topics list and exam format.

MPCS Programming Exam II: 12/22/25 – 12/23/25 (ONLINE)

Students that receive a pass on Programming Exam I will be invited to take Programming Placement Exam II. Exam II will allow for entry into more advanced MPCS programming and systems classes at the start of studies.

MPCS Discrete Math Exam: 12/08/25 & 01/05/26 (IN-PERSON) | Register For The Exam

The Discrete Math exam is offered in-person only on Monday December 8 (session 1) and Monday January 5 (session 2). It is recommended that any student needing to pass the Math Placement Exam in order to register for Winter Quarter classes take the exam in December. See below (Math Placement Exam Overview) for topics list, study materials, and a sample exam.

MPCS Data Analysis Exam: Next offering September 2026 (IN-PERSON)
The Data Analysis exam is an optional exam for MPCS students only and will be conducted in-person during Autumn 2026 orientation. Students who pass the exam have the opportunity to waive MPCS 53110 Foundations of Computational Data Analysis. Students specializing in Artificial Intelligence who do not pass the exam are expected to enroll in MPCS 53110 Foundations of Computational Data Science. See below (Data Analysis Placement Exam Overview) for the material covered in the exam. 

MPCS Algorithms Exam: Next offering September 2026 (IN-PERSON)
The Algorithms Placement exam is an optional exam for MPCS students and will be conducted in-person during Autumn 2026 orientation. Students who pass the exam have the opportunity to take a more advanced class to fulfill their Core Theory Requirement. See below (Algorithms Placement Exam Overview) for the material that will be covered.

 

Notes:

Placement Exam Overviews

Programming Placement Exam Overview

The MPCS offers a sequence of placement exams to assist with correct course placement for new MPCS students. An overview of the exams can be found below. Non-MPCS students interested in taking MPCS classes may be required to take one or both of these exams to be eligible to take a class. 

Additional details on the exams and practice problems are found in separate Canvas sites. New MPCS students and those approved to take MPCS classes will be added to the required Canvas site once it is available. 

Important notes on exams:

  • New MPCS students will be required to take this exam before beginning the program. Non-MPCS students will be eligible to take the exam if approved for a MPCS class.
  • Students are allowed to take the exam once. i.e., if you do not pass the exam at the main sitting, you are not allowed to retake the exam at subsequent sittings. 
  • Students without any background in programming can opt out of the exam and instead take MPCS 50101 Concepts of Programming as their first course in the program. Taking MPCS 50101 Concepts of Programming will extend the time to graduation for most MPCS students.
  • For new MPCS students, passing the MPCS Programming Exam I will allow for course placement into MPCS 51042 Python Programming or MPCS 50136 Java Programming. For advanced course placement, the second programming exam is required. 

An overview of topics and format are found below:

The MPCS Programming Exam I (“MPCS Exam 1”) will test the material that students must know before taking a Core Programming class in the MPCS. This exam will cover the following topics:

  • Programming Basics (e.g., values, types, expressions, and control flow)
  • Functions and Recursive Functions
  • Object Oriented Programming (defining classes, methods, etc.)
  • Data Structures (e.g., lists, sets, dictionaries) and Simple Recursive Data Structures (i.e. trees)

Exam Format

This exam will be offered online, and may be taken in C++, Java, or Python. It is intended to evaluate students’ grasp of concepts, not their fluency with any specific programming language.

Once a student starts the exam, they will have 120 minutes to write programs that solve four programming problems of varying difficulty. Students will be expected to make progress on all four problems to pass the exam.

You will submit your solutions through the Gradescope platform, which will run your code, including testing your code with a variety of inputs. We provide detailed instructions on how to use this platform in the Canvas site. We also provide several practice problems, and a practice exam, to help you familiarize yourself with the exam platform.

The exam will be open-book and open-Internet with some limitations. While students will be allowed to consult any online documentation, they must cite any resources used by including the relevant information in a comment in their code. Students are also expected to solve the problems themselves. A student who gets help from a friend or family member or who uses a tool, such as ChatGPT, violates the exam’s academic honesty policy.

New MPCS students who pass MPCS Exam I will have the option to take MPCS Exam II. This second exam, offered at a later date, will allow for advanced course placement.

MPCS Programming Exam II covers the following topics:

  • Programming Basics (e.g., values, types, expressions, and control flow)
  • Functions and Recursive Functions
  • Object Oriented Programming (classes, inheritance, etc.)
  • Data Structures (e.g., lists, sets, dictionaries) and Recursive Data Structures (e.g., trees, graphs)
  • Software Development (e.g., design, testing)
Discrete Math Placement Exam Overview
Students with a background in Discrete Math can take the placement exam to waive MPCS 50103 Mathematics for Computer Science: Discrete Math. MPCS 50103 is a prerequisite for MPCS 55001 Algorithms. In order to take MPCS 55001 Algorithms, students must pass the Discrete Math placement exam or take MPCS 50103. Students without a background in Discrete Math do not have to take the MPCS mathematics exam and should plan to enroll directly in MPCS 50103 Mathematics for Computer Science: Discrete Math.
  • PLACEMENT EXAM CAN BE TAKEN ONLY ONCE. 
  • Students who have previously taken MPCS 50103 Discrete Math are not eligible to take the Math Placement Exam. If you have registered for MPCS 50103 Discrete Math and attended more than three class sessions, withdrew after Week 3, or did not pass the class, you are not eligible to take the exam. 
  • All new MPCS students MUST take the placement exam OR enroll in MPCS 50103 Mathematics for Computer Science: Discrete Math
  • Non-MPCS students will need to pass the Discrete Math placement exam for approval to register for MPCS 55001 Algorithms. Students who have taken CMSC 27100 may be given a waiver for the exam. Course request approvals will include information about required exams.
STUDY MATERIALS:
To pass the exam students should have good working knowledge of all (or most) of the exercises on the Topics List (below). These exercises are from Discrete Mathematics and its Applications – 7th Edition, Rosen. Specific exercises may or may not appear on the actual exam. 
 
Data Analysis Placement Exam Overview
Students with a background in Data Analysis who want to waive the MPCS 53110 Foundations of Computational Data Analysis prerequisite for MPCS 53111 Machine Learning MUST take and pass the Data Analysis placement exam. This is an optional exam, students who do not take and pass this exam will be required to successfully complete MPCS 53110 Foundations of Computational Data Analysis before enrolling in Machine Learning.
  • PLACEMENT EXAM CAN BE TAKEN ONLY ONCE. 
The Data Analysis Placement Exam will cover the following material:
 

Statistics
——-
Sample spaces, probability measure, independence
Discrete and continuous random variables
Common distributions: Bernoulli, binomial, geometric,  Poisson, uniform, exponential, (multivariate) normal.
Joint/conditional distributions, functions of jointly distributed random variables
Expectation, variance, covariance, correlation, conditional expectation
Moment generating functions
Law of large numbers, central limit theorem.
Distributions of sample mean and sample variance
Parameter estimation based on moments, maximum likelihood, and the Bayesian approach.
Confidence intervals, hypotheses testing, Neyman-Pearson paradigm.

Linear algebra
———–
Systems of linear equations, Gaussian/Gauss-Jordan elimination,  (reduced) row echelon form, solutions to homogeneous/nonhomogeneous systems.
Matrix opertations, inverse, rank.
Vector spaces, four fundamental subspaces, linear independence, basis, dimension.
Determinants and their properties.
Eigenvalues, Eigenvectors, diagonalization
Inner product, orthogonality
Symmetric matrices, quadratic forms, singular value decomposition.

Suggested textbooks
—————–

Introduction to Mathematical Statistics and Its Applications by Richard Larsen and Morris Marx
Linear algebra and its applications by David C. Lay, Steven Lay, and Judi McDonald
No calculators will be allowed.
Algorithms Placement Exam Overview

MPCS students with a background in CS Theory and Algorithms can take the Algorithms Placement Exam. This is a two-hour, in-person exam to determine if a student exhibits mastery of core algorithmic concepts, fundamental algorithms and data structures, proficiency in analyzing time and space complexity and algorithmic correctness, and ability to apply algorithm design paradigms to solve algorithmic problems.

The exam is closed-book / closed-notes / closed internet. Students writing the exam cannot use notes, books, internet access, LLMs, or any electronic devices to complete the exam. This exam is optional and intended for MPCS students who have taken a previous Algorithms course and have a strong mastery of the material covered. Course and grade will be confirmed by your previous transcripts. A pass on this exam does not fulfill the MPCS Core Theory requirement. Instead, it allows for a more advanced Core Theory class to be taken in place of MPCS 55001 Algorithms. To be eligible for the algorithm placement exam students must have either:

  1. Taken and passed the MPCS Math Placement Exam
  2. Have taken a formal class in algorithms in your undergraduate and/or prior graduate coursework and passed it with a grade of A- or better.

 

UChicago students who took CMSC 27200 do not need to take this exam.

Passing the exam allows students to take a more advanced course to fulfill their Core Theory requirement instead of taking MPCS 55001 Algorithms. The theory options for students who pass the placement exam are: MPCS 55005 Advanced Algorithms, a CSMC Theory course, other MPCS Theory course, or a TTIC Theory course (with approval from the MPCS Administration).

The Algorithms Placement Exam will cover the following material:

  • sorting and searching algorithms
  • time/space complexity of an algorithm
  • divide-and-conquer algorithms
  • randomized algorithms
  • hash tables, heaps, and binary search trees
  • dynamic programming
  • graph search algorithms and their applications
  • shortest paths algorithms and their applications
  • minimum spanning tree algorithms and their applications
  • network flow algorithms and flow reduction algorithms
  • introductory linear programming

 

Students will be required to write pseudocode, prove correctness, and analyze time and space complexity of their algorithm solutions on the examination.

 

Suggested textbooks
—————–

Introduction to Algorithms (Third Edition) by T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein (ISBN 978-0-262-03384-8).