| |
 |
 |
 |
Computer Science as a Secondary Concentration
Revised June, 2006
The School of Computer Science offers both a Double
Major and a Minor in Computer Science.
NOTE: The requirements have changed for students
entering in Fall, 2006 and are substantially different from the
curriculum requirements printed in catalogs prior to 2006. This revised curriculum
is binding on all students admitted for Fall, 2006 and later. Students
admitted prior to Fall, 2006 should follow the prior
double major/minor requirements published in their admit-year catalog.
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 course:
- 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
- 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-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.
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!) (NOTE: the 2006 printed catalog mistakenly states two electives are required, not three!)
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.
|