Bachelors Curriculum - Admitted 2014, 2015 & 2016

Students pursuing a B.S. in Computer Science must take a minimum of 360 units in the following categories: Computer Science, Mathematics/Probability, Engineering and Natural Sciences, Humanities and Arts, Required Minor, Computing @ Carnegie Mellon and Free Electives.

Curriculum Requirements Revised November, 2018

(requirements below are binding on students admitted Fall 2014, 2015 & 2016, students admitted prior to Fall 2014 should refer to curriculum information under Current Students)

Computer Science
The following computer science courses are required:

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

*Students with no prior experience with software tools (editors, scripting, code management, etc.) are encouraged to take 15-131: Great Practical Ideas in Computer Science concurrently with this course.

**Students with no prior programming experience take 15-112: Fundamentals of Programming before 15-122.

Communications Course (choose one)

  • 15-221 Technical Communication for Computer Scientists (retired)
  • 15-300 Research and Innovation in Computer Science
  • 76-270 Writing for the Professions
  • 17-200 Ethics and Policy Issues in Computing (approved, old number 08-200)

Algorithms & Complexity Elective (choose one)

  • 15-354: Computational Discrete Mathematics
  • 15-355: Modern Computer Algebra
  • 15-453: Formal Languages, Automata, and Computability
  • 15-455: Undergraduate Complexity Theory
  • 15-456: Computational Geometry
  • 15-458: Discrete Differential Geometry (approved as a substitute)
  • 21-301: Combinatorics
  • 21-484: Graph Theory
  • Others as designated by the CS Undergraduate Program

Applications Elective (choose one)

  • 02-510: Computational Genomics
  • 05-391: Designing Human-Centered Software
  • 10-401: Introduction to Machine Learning (or 10-315)
  • 11-411: Natural Language Processing
  • 15-322: Introduction to Computer Music or 15-323 Computer Music Systems & Information Processing
  • 15-381: Artificial Intelligence: Representation and Problem Solving
  • 15-415: Database Applications
  • 15-462: Computer Graphics
  • 16-384: Robot Kinematics and Dynamics
  • 16-385: Computer Vision
  • 17-313: Foundations of Software Engineering (new course number)
  • Others as designated by the CS Undergraduate Program

Logics & Languages Elective (choose one)

  • 15-312: Foundations of Programming Languages'
  • 15-314: Programming Language Semantics (approved as a substitute)
  • 15-316: Software Foundations of Security and Privacy (approved as a substitute)
  • 15-317: Constructive Logic
  • 15-414: Bug Catching: Automated Program Verification and Testing
  • 15-424: Foundations of Cyber-Physical Systems
  • 17-355: Program Analysis (approved as a substitute)
  • 21-300: Basic Logic
  • 80-310: Formal Logic
  • 80-311: Undecidability and Incompleteness
  • 80-413: Category Theory (approved as a substitute)
  • Others as designated by the CS Undergraduate Program

Software Systems Elective (choose one)

  • 15-410: Operating System Design and Implementation
  • 15-411: Compiler Design
  • 15-418: Parallel Computer Architecture and Programming
  • 15-440: Distributed Systems
  • 15-441: Computer Networks
  • 15-445: Database Systems (approved as a substitute)
  • Others as designated by the CS Undergraduate Program

Computer Science Electives (choose two)
Choose two courses from any SCS department, usually at the 200-level or above. Departments include Computer Science (15-xxx), Lane Center for Computational Biology (02-), Human- Computer Interaction Institute (05-), Institute for Software Research (08-,17-), Machine Learning (10-), Language Technologies Institute (11-) and the Robotics Institute (16-).

NOTE: The following courses do NOT count as Computer Science electives: 02-223, 02-250, 02-261, 05-341, 08-200, 08-532, 08-533, 15-351 (or any equivalent cross-listed courses to these courses). Check with your academic advisor before taking any new SCS courses to determine eligibility.

Mathematics & Probability
Five mathematics courses are required.

  • 21-120: Differential and Integral Calculus
  • 21-122: Integration and Approximation
  • 21-127: Concepts of Mathematics
  • One of the following Linear Algebra courses: 21-241: Matrices and Linear Transformations; 21-242: Matrix Theory; 21-341: Linear Algebra
  • One of the following Probability courses: 15-359: Probability and Computing; 21-325: Probability; 36-217: Probability Theory and Random Processes; 36-225: Introduction to Probability Theory

Engineering & Natural Sciences
Four engineering or science courses are required, of which at least one must have a laboratory component and at least two must be from the same department. Courses with a primary focus on programming, computation or mathematics are not acceptable for science or engineering courses.

Courses meeting the lab requirement include:

  • 02-261: Quantitative Cell and Molecular Biology Laboratory
  • 03-124: Modern Biology Laboratory (coreq 03-121)
  • 09-101: Introduction to Experimental Chemistry (this 3 unit lab together with 09-105, Introduction to Modern Chemistry, satisfies the lab requirement)
  • 09-221: Laboratory I: Introduction to Chemical Analysis
  • 15-321: Research Methods for Experimental Computer Science
  • 27-100: Engineering the Materials of the Future
  • 33-104: Experimental Physics
  • 33-228: Electronics I
  • 42-203: Biomedical Engineering Laboratory (crosslisted with 03-206)
  • 85-310: Research Methods in Cognitive Psychology
  • 85-314: Cognitive Neuroscience Research Methods

The following courses from the Lane Center can be used to satisfy the Science and Engineering requirement and can be paired with a Biology [03-] course for two courses from one department:

  • 02-223: Personalized Medicine: Understanding Your Own Genome
  • 02-250: Introduction to Computational Biology (or 02-251 + 02-252)
  • 02-261: Quantitative Cell and Molecular Biology Laboratory (also meets the lab requirement)

The following courses cannot be used to satisfy the Science and Engineering requirement:

  • 03-511     Computational Molecular Biology and Genomics   
  • 03-512     Computational Methods for Biological Modeling and Simulation
  • 06-262     Mathematical Methods of Chemical Engineering   
  • 09-103     Atoms, Molecules and Chemical Change  
  • 09-104     Fundamental Aspects of Organic Chemistry and Biochemistry
  • 09-108     The Illusion and Magic of Food
  • 09-109     Kitchen Chemistry Sessions (nor 09-209)
  • 09-231     Mathematical Methods for Chemists   
  • 12-215     Introduction to Professional Writing in CEE
  • 12-271     Introduction to Computer Application in Civil & Environmental Engineering
  • 18-090     Digital Media Interactions: Signal Processing for the Arts
  • 18-099     Mobile App Design and Development
  • 18-200     Emerging Trends in Electrical and Computer Engineering
  • 18-202     Mathematical Foundations of Electrical Engineering   
  • 18-213     Introduction to Computer Systems    
  • 18-345     Introduction to Telecommunication Networks    
  • 18-411     Computational Techniques in Engineering  
  • 18-482     Telecommunications, Technology Policy & Management  
  • 18-487     Introduction to Computer & Network Security & Applied Cryptography
  • 18-540     Rapid Prototyping of Computer Systems   
  • 19-101     Introduction to Engineering and Public Policy    
  • 19-211     Ethics and Policy Issues in Computing 
  • 19-350     SP TP: Research Methods & Statistics for Engineering & Public Policy Analysis 
  • 19-402     Telecommunications Technology, Policy & Management    
  • 19-403     Policies of Wireless Systems and the Internet  
  • 19-411     Global Competitiveness: Firms, Nations and Technological Change
  • 19-448     Science, Technology & Ethics
  • 27-410     Computational Techniques in Engineering 
  • 33-100     Basic Experimental Physics
  • 33-115     Physics for Future Presidents 
  • 33-124     Introduction to Astronomy
  • 33-232     Mathematical Methods of Physics 
  • 39-100     Special Topics: What Is Engineering?
  • 39-200     Business for Engineers
  • 42-201     Professional Issues in Biomedical Engineering

Humanities and Arts
All candidates for a bachelor's degree must complete a minimum of 63 units offered by the Dietrich College of Humanities & Social Sciences and/or the College of Fine Arts. The humanities and arts (or general education) courses for SCS students are to meet the distribution requirements found on the SCS Humanities and Arts page.

Required Minor
All CS undergraduates must complete a minor. Completion of a second major (or double degree) also satisfies this requirement. If permitted by the minor or second major department, courses taken in satisfaction for the minor or second major may also count toward any category other than required courses in computer science. More information can be found on the minor requirement page.

Computing @ Carnegie Mellon
All CMU students must take 99-10x Computing @ Carnegie Mellon.

Free Electives
A free elective is any Carnegie Mellon course. However, a maximum of nine units of Physical Education and/or Military Science (ROTC) and/or Student-Led (StuCo) courses may be used toward fulfilling graduation requirements.