Computer Science as a Secondary Concentration
Revised June, 2008
The School of Computer Science offers both a Double
Major and a Minor in Computer Science.
NOTE: The courses that satisfy the Constrained Elective requirements have changed for students entering in Fall, 2008 and are different from the curriculum requirements printed in catalogs prior to 2008. This revised curriculum is binding on all students admitted for Fall, 2008 and later. Students admitted prior to Fall, 2008 but on or after Fall, 2006 should follow the Fall, 2006 double major/minor requirements. Students admitted prior to Fall, 2006 should follow the prior
double major/minor requirements.
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-111)
- 15-123: Effective Programming in C and UNIX
- 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
- 15-451: Algorithm Design and Analysis
- one Communications course:
- 15-221: Technical Communication for Computer Scientists
- one Applications elective:
- 15-323: Music Systems and Information Processing
- 15-381: Artificial Intelligence: Representation and Problem Solving
- 15-384: Robotic Manipulation
- 15-385: Computer Vision
- 15-413: Software Engineering
- 15-415: Database Applications
- 15-421: Web Commerce, Security and Privacy
- 15-437: Web Application Development
- 15-462: Computer Graphics
- 15-463: Computational Photography
- 15-482: Human Language Technologies
- 15-490: Computational Neuroscience
- 10-601: Artificial Intelligence: Machine Learning
- 16-362: Mobile Robot Programming Laboratory
- one Programming elective::
- 15-312: Foundations of Programming Languages
- 15-317: Constructive Logic
- 17-651: Models of Software Systems
- 21-300: Basic Logic
- 80-311: Computability and Incompleteness
- one Systems elective:
- 15-410: Operating System Design and Implementation
- 15-418: Parallel Computer Architecture and Programming
- 15-441: Computer Networks
- 18-447: Introduction to Computer Architecture
- one Theory elective:
- 15-354: Computational Discrete Mathematics
- 15-355: Modern Computer Algebra
- 15-414: Bug Catching: automated Program Verification and Testing
- 15-453: Formal Languages and Automata
- 21-301: Combinatorics
- 21-484: Graph Theory
- 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.
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-111)
- 21-127: Concepts of Mathematics
Minor
requirements:
- 15-211: Fundamental Data Structures and Algorithms
- one of the following courses:
- 15-213: Introduction to Computer Systems (requires 15-123 as a prerequisite)
- 15-251: Great Theoretical Ideas in Computer Science
- three Computer Science electives (15-212 or higher; 15-221 does not count!)
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.
Maintained by Catharine
Fichtner, CS Undergraduate Program Administrator.
|