cmu-cs-undergraduate-courses-list

CMU CS Undergraduate Courses ListHere 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 Mathematics15-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 communicationOne 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 ComputingThe following course is required of all students to familiarize them with the campus computing environment:

99-101 Computing @ Carnegie Mellon 3

SummarySUMMARY 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