This sample ed plan is meant to be illustrative of one typical path through the major; many valid alternatives exist.
| Year | Fall | Winter | Spring |
|---|---|---|---|
| First Year | CS 141 Intro to CS PREC 100 First Year Preceptorial Elective | CS 142 Program Design MATH 151 Calculus I Elective | MATH 152 Calculus II Elective Elective |
| Sophomore | CS 262 Information Management MATH 210 Linear Algebra I Elective | CS 201 Computer Organization STAT 200 Statistics Elective | CS 226 Operating Systems & Networks MATH 175 Discrete Math Elective |
| Junior | CS 205 Algorithm Design & Analysis MATH 217 Number theory Elective | CS 292 Software Development MATH 300 Structures Elective | CS 3xx Elective CS 3xx Elective Elective |
| Senior | CS 306 Automata Theory & Prog. Langs CS 3xx Elective Elective | CS 3xx Elective Elective Elective | CS 399 Research Seminar Elective Elective |
Notes
Those of you interested in grad school in CS are recommended to take the following CS 3xx Electives at a minimum:
- 306 Automata Theory & Programming Languages
- at least two of 303 Graphics, 305 Operating Systems, 308 Networks, 317 Artificial Intelligence, 320 Database Systems
- at least one of 330 Cryptography, 340 Human-Computer Interfaces, 360 Natural Language Processing
- 399 Senior Research Seminar
You should have at least one minor or a second major in a related field; Mathematics is the most common (requiring only MATH 205 Calc III in addition to the courses listed above for a minor). Other possibilities exist: for instance, if you are interested in artificial intelligence, psychology or neuroscience would make sense.
We also suggest you seriously consider doing Honors in Computer Science.
This program also works well if you'd like to end up doing software development in the systems, embedded, networking, or scientific areas of industry (e.g. write embedded code for cell phones, write compilers, write that new version of Windows, etc.); in this case you should be sure to take 322 Software Engineering.