A Major Redesign
The Computer Science Department is pleased to announce that it is implementing changes that will result in more a flexible major, modified major, and minors offered by the department. As part of these changes, the department will replace the current prerequisites with two newly designed introductory courses, starting next fall. The undergraduate courses will also be renumbered for a simpler design for the major. This page provides preliminary information on the changes to the major, as well as the new prerequisite courses.
Undergraduate Courses
Computer Science undergraduate courses will be renumbered as follows:
-
1–19: Introductory and non-major courses
-
20–29: Digital arts
-
30–49: Theory and algorithms
-
50–69: Systems and hardware
-
70–89: Applied computer science
-
90–99: Reading and culminating experience
Major
The new Computer Science major has the following requirements:
-
Prerequisites: Computer Science 1 and Computer Science 10.
-
Passing at least 10 additional courses as described below.
Among the additional courses must be:
-
Two Computer Science courses numbered 30 to 49 (Theory and algorithms)
-
Two Computer Science courses numbered 50 to 69 (Systems and hardware )
-
Two Computer Science courses numbered 70 to 89 (Applied computer science)
-
Three elective courses
-
Computer Science culminating experience: either two terms of Computer Science 98, or one or two terms of Computer Science 99 (Honors Thesis Research).
An elective course is any Computer Science course numbered from 30 to 89 that is not used to fulfill another requirement. Other elective courses are possible as described in the ORC.
Computer Science 1: Introduction to Programming and Computation
The first prerequisite course for the Computer Science major is the newly designed Computer Science 1, which replaces the former Computer Science 5.
This course introduces computational concepts that are fundamental to computer science and are useful for the sciences, social sciences, engineering, and digital arts. Students will write their own interactive programs to analyze data, process text, draw graphics, manipulate images, and simulate physical systems. Problem decomposition, program efficiency, and good programming style are emphasized throughout the course. No prior programming experience is assumed.
The course offering for Academic Year 2011-2012 is as follows:
Computer Science 10: Problem Solving via Object-Oriented Programming
The second prerequisite course for the Comptuer Science major is the newly designed Computer Science 10, which replaces the former Computer Science 8, which will be offered once more next fall.
Motivated by problems that arise in a variety of disciplines, this course examines concepts and develops skills in solving computational problems. Topics covered include abstraction (how to hide details), modularity (how to decompose problems), data structures (how to efficiently organize data), and algorithms (procedures for solving problems). Laboratory assignments are implemented using object-oriented programming techniques.
The course offering for Academic Year 2011-2012 is as follows:
Course Renumbering: Old to New
|
Old # |
New # |
Old Name |
New Name |
|
|
1 |
|
Introduction to Programming and Computation |
|
2 |
2 |
Programming for Interactive Digital Arts |
|
|
3 |
3 |
Computational Thinking |
|
|
4 |
4 |
Concepts in Computing |
|
|
5 |
|
Introduction to Computer Science |
|
|
7 |
7 |
First-Year Seminar in Computer Science |
|
|
8 |
8 |
Problem Solving with Computer Science |
|
|
|
10 |
|
Problem Solving via Object-Oriented Programming |
|
12 |
20 |
Motion Study: Using Motion Analysis for Science, Art and Medicine |
|
|
19 |
30 |
Discrete Mathematics in Computer Science |
|
|
22 |
22 |
3D Digital Modeling |
|
|
23 |
50 |
Software Design and Implementation |
|
|
25 |
31 |
Algorithms |
|
|
26 |
71 |
Numerical Methods in Computation |
|
|
32 |
24 |
Computer Animation: The State of the Art |
|
|
33 |
61 |
Information Systems |
Database Systems |
|
34 |
74 |
Machine Learning and Statistical Data Analysis |
|
|
36 |
70 |
Numerical and Computational Tools for Applied Science |
|
|
37 |
51 |
Computer Architecture |
|
|
38 |
55 |
Security and Privacy |
|
|
39 |
39 |
Theory of Computation |
|
|
42 |
27 |
Projects in Digital Arts |
|
|
43 |
75 |
Introduction to Bioinformatics |
|
|
44 |
76 |
Artificial Intelligence |
|
|
46 |
84 |
Mathematical Optimization and Modeling |
|
|
47 |
56 |
Digital Electronics |
|
|
48 |
57 |
Implementation of Programming Languages |
Compilers |
|
52 |
77 |
Computer Graphics |
|
|
53 |
79 |
Introduction to Computational Neuroscience |
|
|
54 |
81 |
Principles of Robot Design and Programming |
|
|
58 |
58 |
Operating Systems |
|
|
63 |
63 |
Programming Parallel Systems |
|
|
64 |
83 |
Computer Vision |
|
|
68 |
59 |
Principles of Programming Languages |
|
|
72 |
28 |
Advanced Projects in Digital Arts |
|
|
78 |
60 |
Computer Networks |
|
|
80 |
95 |
Reading Course |
|
|
82 |
89 |
Topics in Computer Graphics |
|
|
85 |
49 |
Topics in Theoretical Computer Science |
Topics in Algorithms and Complexity |
|
88 |
69 |
Topics in Computer Systems |
Topics in Computer Systems or Topics in Applied Computer Science |
|
97 |
99 |
Honors Thesis Research |
|
|
98 |
98 |
EPICS: Engineering Projects in Community Service |
|
|
104 |
276 |
Artificial Intelligence |
Advanced Artificial Intelligence |
|
105 |
231 |
Algorithms and Data Structures |
Advanced Algorithms |
|
106 |
240 |
Numerical Linear Algebra |
|
|
107 |
251 |
Computer Architecture |
|
|
108 |
258 |
Advanced Operating Systems |
|
|
109 |
239 |
Theory of Computation |
Computational Complexity |
|
110 |
191 |
Writing, Presenting, and Evaluating Technical Papers in Computer Science |
|
|
118 |
259 |
Programming Languages |
|
|
134 |
174 |
Machine Learning and Statistical Data Analysis |
|
|
136 |
170 |
Numerical and Computational Tools for Applied Science |
|
|
143 |
175 |
Introduction to Bioinformatics |
|
|
146 |
184 |
Mathematical Optimization and Modeling |
|
|
153 |
179 |
Introduction to Computational Neuroscience |
|
|
164 |
183 |
Computer Vision |
|
|
180 |
295 |
Reading Course |
|
|
181 |
219 |
Special Topics Seminar |
Special Topics |
|
182 |
189 |
Topics in Computer Graphics |
|
|
185 |
149 |
Algorithms Seminar |
Topics in Algorithms and Complexity |
|
186 |
189 |
Numerical Analysis Seminar |
|
|
187 |
169 |
Computer Architecture and Hardware Seminar |
|
|
188 |
169 |
Computer Systems Seminar |
Topics in Computer Systems or Topics in Applied Computer Science |
|
210 |
210 |
Computer Science Colloquium |
|
|
257 |
296 |
Supervised Undergraduate Teaching |
|
|
297 |
297 |
Graduate Research |
|
|
298 |
298 |
Thesis Research |
|
|
299 |
299 |
Full-Time Thesis Research |
|
Course Renumbering: New to Old
Course Renumbering: Old to New
|
New # |
Old # |
Old Name |
New Name |
|
1 |
|
|
Introduction to Programming and Computation |
|
2 |
2 |
Programming for Interactive Digital Arts |
|
|
3 |
3 |
Computational Thinking |
|
|
4 |
4 |
Concepts in Computing |
|
|
7 |
7 |
First-Year Seminar in Computer Science |
|
|
8 |
8 |
Problem Solving with Computer Science |
|
|
10 |
|
|
Problem Solving via Object-Oriented Programming |
|
20 |
12 |
Motion Study: Using Motion Analysis for Science, Art and Medicine |
|
|
22 |
22 |
3D Digital Modeling |
|
|
24 |
32 |
Computer Animation: The State of the Art |
|
|
27 |
42 |
Projects in Digital Arts |
|
|
28 |
72 |
Advanced Projects in Digital Arts |
|
|
30 |
19 |
Discrete Mathematics in Computer Science |
|
|
31 |
25 |
Algorithms |
|
|
39 |
39 |
Theory of Computation |
|
|
49 |
85 |
Topics in Theoretical Computer Science |
Topics in Algorithms and Complexity |
|
50 |
23 |
Software Design and Implementation |
|
|
51 |
37 |
Computer Architecture |
|
|
55 |
38 |
Security and Privacy |
|
|
56 |
47 |
Digital Electronics |
|
|
57 |
48 |
Implementation of Programming Languages |
Compilers |
|
58 |
58 |
Operating Systems |
|
|
59 |
68 |
Principles of Programming Languages |
|
|
60 |
78 |
Computer Networks |
|
|
61 |
33 |
Information Systems |
Database Systems |
|
63 |
63 |
Programming Parallel Systems |
|
|
69 |
88 |
Topics in Computer Systems |
Topics in Computer Systems or Topics in Applied Computer Science |
|
70 |
36 |
Numerical and Computational Tools for Applied Science |
|
|
71 |
26 |
Numerical Methods in Computation |
|
|
74 |
34 |
Machine Learning and Statistical Data Analysis |
|
|
75 |
43 |
Introduction to Bioinformatics |
|
|
76 |
44 |
Artificial Intelligence |
|
|
77 |
52 |
Computer Graphics |
|
|
79 |
53 |
Introduction to Computational Neuroscience |
|
|
81 |
54 |
Principles of Robot Design and Programming |
|
|
83 |
64 |
Computer Vision |
|
|
84 |
46 |
Mathematical Optimization and Modeling |
|
|
89 |
82 |
Topics in Computer Graphics |
|
|
95 |
80 |
Reading Course |
|
|
98 |
98 |
EPICS: Engineering Projects in Community Service |
|
|
99 |
97 |
Honors Thesis Research |
|
|
149 |
185 |
Algorithms Seminar |
Topics in Algorithms and Complexity |
|
169 |
187 |
Computer Architecture and Hardware Seminar |
|
|
169 |
188 |
Computer Systems Seminar |
Topics in Computer Systems or Topics in Applied Computer Science |
|
170 |
136 |
Numerical and Computational Tools for Applied Science |
|
|
174 |
134 |
Machine Learning and Statistical Data Analysis |
|
|
175 |
143 |
Introduction to Bioinformatics |
|
|
179 |
153 |
Introduction to Computational Neuroscience |
|
|
183 |
164 |
Computer Vision |
|
|
184 |
146 |
Mathematical Optimization and Modeling |
|
|
189 |
182 |
Topics in Computer Graphics |
|
|
189 |
186 |
Numerical Analysis Seminar |
|
|
191 |
110 |
Writing, Presenting, and Evaluating Technnical Papers in Computer Science |
|
|
210 |
210 |
Computer Science Colloquium |
|
|
219 |
181 |
Special Topics Seminar |
Special Topics |
|
231 |
105 |
Algorithms and Data Structures |
Advanced Algorithms |
|
239 |
109 |
Theory of Computation |
Computational Complexity |
|
240 |
106 |
Numerical Linear Algebra |
|
|
251 |
107 |
Computer Architecture |
|
|
258 |
108 |
Advanced Operating Systems |
|
|
259 |
118 |
Programming Languages |
|
|
276 |
104 |
Artificial Intelligence |
Advanced Artificial Intelligence |
|
295 |
180 |
Reading Course |
|
|
296 |
257 |
Supervised Undergraduate Teaching |
|
|
297 |
297 |
Graduate Research |
|
|
298 |
298 |
Thesis Research |
|
|
299 |
299 |
Full-Time Thesis Research |
|