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