Prerequisites Overview - Masters Program in Computer Science

Prerequisite Courses
Masters Program in Computer Science Curriculum
Take course or pass
placement exam
5 Core Courses in Programming, Algorithms, Databases, Computer Systems,
Networks & Architectures
Concepts of
4 Electives in applied technologies in areas such as big data, web development,
mobile application development, cloud computing data analytics, computer
and network security.
Math for
6 Core Coursesin Programming, Algorithms, Databases, Computer Systems,
Networks & Architectures
3 Electives in Applied Computing Skills
3 Specialization classes in Software Engineering, Data Analytics or High
Performance Computing
Internship in area of specialization
At the University of Chicago, we are interested in
intellectual ability, experience, professionalism,
and the future potential of our candidates, more
than simply their previous training in computer
science. We do not require a previous degree in
Computer Science or any previous CS coursework
to start the MPCS. We offer flexible options for the
necessary prerequisite requirements to ensure our
incoming students are prepared for the demanding
curriculum of the Masters Program in Computer
Students with a solid background in one or both of
these areas can request to waive the courses during
the application process. The waiver will be reviewed
with your complete application. If admitted,
placement tests covering math, programming or
both will be given before the start of your studies.
The math and programming placement exams are
two separate exams. Your request to waive the
prerequisite material or the results of the placement
exams will not affect your admission to the
For those students without a solid background in
math and programming, we offer two immersion
courses ‘Concepts of Programming’ and ‘Math
for Computer Science - Discrete Math’ that cover
the prerequisite material needed for the program.
Prerequisite courses, like all courses in the program,
can be completed on either a full or part-time basis.
Once either the programming or math requirement
has been met, students can begin taking classes in
the program.
[email protected]
(773) 834-3388
Not sure if you need to take the Prerequisite Math and/or Programming courses or take the placement
exams to test out of these one or both of these foundation courses? Take a look at the list of topics below
to help you evaluate your previous experience and current knowledge of these topics areas. If you feel you
have a good knowledge of these topics, you will likely want to take the placements exams. If you feel you
need more training in either or both areas, you will want to take the foundation courses.
Prerequisite Math
Prerequisite Programming
Math is essential for Computer Science. The topics
listed below are necessary for the core Algorithms
class. If you have covered these topic in a Discrete
Math or other math class, you can take the math
placement exam at the start of your studies in the
program. If you do not have a knowledge of these
topics, you should plan to take the MPCS 50103
Math for Computer Science: Discrete Math at the
start of your studies..
Students with a background in programming may
take a placement exam to waive the Concepts
of Programming course. To waive Concepts of
Programming, you must pass an exam that requires
solving 4-5 programming problems on an actual
computer. You must be able to produce code
that compiles and runs correctly on the provided
machine. In preparation for the exam, you will
be provided with sample problems, including full
unabridged exams from previous years.
Solving the problems in the exam requires
knowledge of the following concepts:
• Logic: propositional logic; quantifiers
• Mathematical
reasoning: methods of proof, direct
proof and indirect proof. Mathematical induction
and strong induction
ounting: methods of counting;
permutations,combinations, binomial theorem,
pigeonhole principle, inclusion-exclusion
iscrete probability: discrete probability spaces;
conditional probability and independence;
Bernoulli trials, Bayes’s theorem, random variables
and expected value; variance, geometric and
binomial distributions
• Asymptotic notation
• Recurrences and methods of solving recurrences
• Graphs: simple graphs, isomorphism, paths, trees
odular arithmetic, divisibility, prime numbers;
GCD and Euclid’s algorithm, Fermat’s little
Familiarity with sets, functions, and relations will be
[email protected]
(773) 834-3388
Solving the problems in the exam requires
knowledge of the following concepts:
• Data types (native and derived)
• Operators, precedence, and expressions
• Assignment and statements
• Control flow (conditionals and iteration)
• Functions, return types, and parameters
• Recursion
• Console and file I/O
With this core knowledge, the primary skill we are
concerned with is your ability to read a problem
description and compose a program that expresses
a solution to the problem on your own from scratch.
In other words, your knowledge of data types, for
example, is important, but more important is that
you know to use the appropriate data types within
the context of the problem you are solving.
The exam may be taken in C, C++, C#, Java, Python
(2 or 3), JavaScript, or PHP. If you would like to
use a different language, please contact the MPCS
administration at least two weeks before the exam
so we can determine whether the language can be