Bachelors Curriculum - Admitted Fall 2012 and 2013

B.S. in Computer Science Curriculum
Curriculum Requirements (binding on students admitted Fall, 2012 & Fall, 2013)
Revised April, 2016

The B.S. curriculum in Computer Science requires a minimum of 360 units and can be divided into the following sections:

Image removed.Computer Science

    • 15-128 Freshman Immigration Course
    • 15-122 Principles of Imperative Computation
      (students with no prior programming experience take 15-112 Fundamentals of Programming before 15-122)
    • 15-150 Principles of Functional Programming
    • 15-151 Mathematical Foundations of Computer Science
      (non-majors take 21-127 Concepts of Mathematics)
    • 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

    • one Communications course:
      • 15-221 Technical Communication for Computer Scientists
      • 15-300 Research and Innovation in Computer Science
      • 76-270 Writing for the Professions
    • one Algorithms & Complexity elective:
      • 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
      • 21-301 Combinatorics
      • 21-484 Graph Theory
      • others as designated
    • one Applications elective:
      • 02-450 Automation of Biological Research
      • 05-391 Designing Human-Centered Software
      • 05-431 Software Structures for User Interfaces (must be taken with 05-433 - counts as one course)
      • 10-601 Machine Learning
      • 11-411 Natural Language Processing
      • 15-313 Foundations of Software Engineering
      • 15-322/15-323 Intro to Computer Music/Computer Music Systems & Info 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
      • others as designated
    • one Logics & Languages elective:
      • 15-312 Foundations of Programming Languages
      • 15-317 Constructive Logic
      • 15-414 Bug Catching: Automated Program Verification and Testing
      • 15-424 Foundations of Cyber-Physical Systems
      • 21-300 Basic Logic
      • 80-310 Formal Logic
      • 80-311 Computability and Incompleteness
      • others as designated
    • one Software Systems elective:
      • 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
      • others as designated
  • two Computer Science electives (can be from any SCS department; usually 200-level or above): 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 Robotics Institute [16-])

    (NOTE: The following Lane Center courses do NOT count as Computer Science electives: 02-223, 02-250, 02-261. These courses can count toward the Science and Engineering requirements described below.)


Image removed. Mathematics

  • 21-120 Differential & Integral Calculus
  • 21-122 Integration, Differential Equations, and Approximation
  • 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 and Statistics I

Image removed. Science and Engineering

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.

At present, courses meeting the lab requirement are:

  • 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

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 How To Analyze 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-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

Image removed.Humanities and Arts

All candidates for the bachelor's degree must complete a minimum of 63 units offered by the 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.


Image removed.Required Minor

A sequence of courses prescribed by the requirements of the particular department. 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.


Image removed.Computing @ Carnegie Mellon

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

  • 99-10x Computing @ Carnegie Mellon

Image removed.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.

 
Maintained by Catharine Fichtner, CS Undergraduate Program Administrator.