CMU CS Undergraduate Courses List

Here is a list of undergraduate courses offered by the Computer Science department at Carnegie Mellon University. This list is not exhaustive and is subject to change. Please refer to the official course catalog for the most up-to-date information.

As the requirements you must get a minimum of 360 units in the following categories then you can graduate.

  • Computer Science Core
  • Mathematics/Probability
  • Engineering and Natural Sciences
  • Humanities and Arts
  • Computing Minor

High-level CS educational objectives after you finish these courses.

  • Identify, use, design, develop and analyze appropriate abstractions and algorithms to solve problems while being able to prove the algorithm’s performance and correctness across a variety of metrics (e.g., time, space, parallel vs. sequential implementation, computability).
  • Implement solutions to problems in domains such as artificial intelligence, graphics and sound, software engineering, and human-computer interaction, by applying the fundamentals of those areas to create solutions to current problems while being exposed to research developments that will enable them to adapt as the technology changes.
  • Reason about and implement programs in various programming languages and paradigms
  • Describe, specify, and develop large-scale, open-ended software systems subject to constraints such as performance and/or resource issues
  • Communicate technical material effectively to technical and non-technical audiences
  • Work both individually and in teams
  • Recognize the social impact of computing and the attendant responsibility to consider the legal, moral and ethical implications of computing technologies.

For the detail please refer to CMU CS Undergraduate Program Educational Objectives

Core Courses

  • 15-122: Principles of Imperative Computation 12
  • 15-150: Principles of Functional Programming 12
  • 15-210: Parallel and Sequential Data Structures and Algorithms 12
  • 15-213: Introduction to Computer Systems 12
  • 15-251: Great Theoretical Ideas in Computer Science 12
  • 15-451: Algorithm Design and Analysis 12

Artificial Intelligence elective (min 9)

  • 10-315 Introduction to Machine Learning (SCS Majors) 12
  • 11-411 Natural Language Processing 12
  • 11-485 Introduction to Deep Learning 9
  • 15-281 Artificial Intelligence: Representation and Problem Solving 12
  • 15-386 Neural Computation 9
  • 16-384 Robot Kinematics and Dynamics 12
  • 16-385 Computer Vision 12

One domain elective (min. 9)

02-251 Great Ideas in Computational Biology 12
05-391 Designing Human Centered Software 12
11-324 Human Language for Artificial Intelligence 12
15-322 Introduction to Computer Music 9
15-330 Introduction to Computer Security 12
15-455 Undergraduate Complexity Theory 9
15-462 Computer Graphics 12
17-313 Foundations of Software Engineering 12

One Logics/Languages elective (min. 9)

for rigorous, formal reasoning about programs or systems

15-312 Foundations of Programming Languages 12
15-314 Programming Language Semantics 12
15-316 Software Foundations of Security and Privacy 9
15-317 Constructive Logic 9
15-414 Bug Catching: Automated Program Verification 9
15-424 Logical Foundations of Cyber-Physical Systems 12
17-355 Program Analysis 12
17-363 Programming Language Pragmatics 12
80-413 Category Theory 9

One Software systems elective (min. 12)

15-410 Operating System Design and Implementation 15
15-411 Compiler Design 15
15-418 Parallel Computer Architecture and Programming 12
15-440 Distributed Systems 12
15-441 Networking and the Internet 12
15-445 Database Systems 12

Two Computer Science electives (min. 9) regarding to Mathematics

15-151 Mathematical Foundations for Computer Science
(if not offered, substitute 21-127 or 21-128) 12
21-120 Differential and Integral Calculus 10
21-122 Integration and Approximation 10
21-241 Matrices and Linear Transformations 11
or 21-242 Matrix Theory
21-259 Calculus in Three Dimensions 10
or 21-266 Vector Calculus for Computer Scientists
or 21-268 Multidimensional Calculus
or 21-269 Vector Analysis
Plus one of the following four Probability choices:
15-259 Probability and Computing 12
21-325 Probability 9
36-218 Probability Theory for Computer Scientists 9
36-225-36-226 Introduction to Probability Theory - Introduction to Statistical Inference
(must take both courses in this sequence to satisfy requirement)

Technical communication

One Technical Communications course: Units
07-300 Research and Innovation in Computer Science 9
17-200 Ethics and Policy Issues in Computing 9
76-270 Writing for the Professions 9

Computing

The following course is required of all students to familiarize them with the campus computing environment:

99-101 Computing @ Carnegie Mellon 3

Summary

SUMMARY OF DEGREE REQUIREMENTS:

Area Courses Units
Computer Science (core courses, constrained electives, and SCS electives) 12 125
Mathematics 6 58
Technical Communication 1 9
Science/Engineering 4 36
Humanities/Arts 7 63
Minor or Concentration Requirement/Free electives Varies 63
Computing @ Carnegie Mellon 1 3
First Year Seminar 1 3
360