SCS Admin Services | CSD Home | SCS Home

 

 

Computer Science as a Secondary Concentration
Revised July, 2004

The School of Computer Science offers both a Double Major and a Minor in Computer Science.

Double Major

The following courses are required for a Double Major in Computer Science:

Prerequisites:

  • 15-111:Intermediate/Advanced Programming (students with no prior programming experience take 15-100: Introductory/Intermediate Programming and 15-200: Advanced Programming/Practicum)
  • 15-113: Systems Skills in C (mini)
  • 21-120: Differential & Integral Calculus
  • 21-122: Integration, Differential Equations, and Approximation
  • 21-127: Concepts of Mathematics
  • 21-241: Matrix Algebra (or 21-341: Linear Algebra)

Double Major requirements:

  • 15-211: Fundamental Data Structures and Algorithms
  • 15-212: Principles of Programming
  • 15-213: Introduction to Computer Systems
  • 15-251: Great Theoretical Ideas in Computer Science I
  • 15-451: Algorithm Design and Analysis
  • one Applications course:
    • 15-381: Artificial Intelligence: Representation and Problem Solving
    • 15-384: Robotic Manipulation
    • 15-385: Computer Vision
    • 15-393/323: Music Systems and Information Processing
    • 15-413: Software Engineering
    • 15-415: Database Applications
    • 15-437: Web Application Development
    • 15-462: Computer Graphics
    • 15-463: Computational Photography
    • 15-482: Human Language Technologies
    • 15-490: Computational Neuroscience
    • 15-681: Artificial Intelligence: Machine Learning
    • 16-362: Mobile Robot Programming Laboratory
  • one Fundamentals of Algorithms course:
    • 15-354: Computational Discrete Mathematics
    • 15-355: Modern Computer Algebra
    • 15-414: Bug Catching: automated Program Verification and Testing
    • 21-301: Combinatorics
    • 21-373: Algebraic Structures
    • 21-484: Graph Theory
  • one Fundamentals of Programming course:
    • 15-312: Foundations of Programming Languages
    • 15-399/317: Constructive Logic
    • 15-453: Formal Languages and Automata
    • 17-651: Models of Software Systems
    • 21-300: Basic Logic
    • 80-310: Logic and Computation
    • 80-311: Computability and Incompleteness
  • one Systems Programming course:
    • 15-410: Operating System Design and Implementation
    • 15-418: Parallel Computer Architecture and Programming
    • 15-441: Computer Networks
    • 18-447: Introduction to Computer Architecture
  • two Computer Science electives
  • 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
    • 36-625: Probability and Mathematical Statistics I

Double-Counting Restrictions
In order to avoid excessive double-counting, students pursuing a Double Major or Minor in Computer Science must complete at least 6 courses in their home department, of at least 9 units each, none of which are required by (or are cognates for requirements in) the Computer Science major. Students interested in pursuing a dual degree between Computer Science and any other department are subject to the further stricture that any course used to satisfy a core CS requirement cannot simultaneously be used to satisfy a core requirement in the second degree. Simply put, core CS and core second degree requirements may not be double counted.

Minor

The following courses are required for the Minor in Computer Science:

Prerequisites:

  • 15-111:Intermediate/Advanced Programming (students with no prior programming experience take 15-100: Introductory/Intermediate Programming and 15-200: Advanced Programming/Practicum)
  • 21-127: Concepts of Mathematics

Minor requirements:

  • 15-211: Fundamental Data Structures and Algorithms
  • 15-212: Principles of Programming
  • one software project course chosen from:
    • 15-410: Operating System Design and Implementation
    • 15-411: Compiler Design
    • 15-415: Database Applications
    • 15-441: Computer Networks
    • 15-462: Computer Graphics 1
    • 16-362: Mobile Robot Programming Laboratory
  • two Computer Science electives at the 300-level or higher.

Double-Counting Restrictions
In order to avoid excessive double-counting, students pursuing a Double Major or Minor in Computer Science must complete at least 6 courses in their home department, of at least 9 units each, none of which are required by (or are cognates for requirements in) the Computer Science major. Students interested in pursuing a dual degree between Computer Science and any other department are subject to the further stricture that any course used to satisfy a core CS requirement cannot simultaneously be used to satisfy a core requirement in the second degree. Simply put, core CS and core second degree requirements may not be double counted.


Maintained by Catharine Fichtner, CS Undergraduate Program Administrator.

 

      CSD Home   Webteam  ^ Top   SCS Home