A student can earn either a Bachelor of Science or a Bachelor of Arts degree in Computer Science. The B.S. program is designed for students who plan to continue in computing after graduation, including technical management and consulting. The B.A. provides a solid computer science background as preparation for work in other fields.
The B.S. and B.A. degree programs both require the same five core courses
and a senior project, which must be taken as
In addition the B.S. program requires six intermediate or advanced computer science courses as electives, for a total of twelve courses; the B.A., four, for a total of ten. Neither Computer Science 480a or b Directed Reading nor Computer Science 490a or b may be counted as electives.
The prerequisite structure of the core courses is shown in Figure 1.
Typical schedules beginning in the freshman and sophomore years are given in Tables 1 and 2.| Fall | Spring | Fall | Spring | |||||||
| CPSC 201 | CPSC 223 | Freshman | CPSC 201 | |||||||
| CPSC 202 | CPSC 365 | Sophomore | CPSC 202 | CPSC 223 | ||||||
| CPSC 323 | Elective | |||||||||
| Elective | Elective | Junior | CPSC 323 | CPSC 365 | ||||||
| Elective | Elective | Elective | Elective | |||||||
| Elective | ||||||||||
| CPSC 490 | Elective | Senior | Elective | CPSC 490 | ||||||
| Elective | Elective |
| Fall | Spring | Fall | Spring | |||||||
| CPSC 201 | CPSC 223 | Sophomore | CPSC 201 | |||||||
| CPSC 202 | CPSC |
|||||||||
| CPSC 323 | CPSC 365 | Junior | CPSC 202 | CPSC 365 | ||||||
| Elective | Elective | CPSC 323 | Elective | |||||||
| Elective | ||||||||||
| Elective | CPSC 490 | Senior | Elective | CPSC 490 | ||||||
| Elective | Elective | Elective | Elective | |||||||
| Elective | Elective |
Note that it is only possible to take Computer Science 201 and 223 concurrently if one has sufficient programming experience (two courses or the equivalent).
All sophomore, junior, and senior majors should have their programs approved by their class advisor (see §7.1) or the director of undergraduate studies.
All courses counting toward the major must be taken for a letter grade.
The five core courses cover the material that every student of computer science should know; the electives give students an opportunity to specialize in particular areas of computer science.
Students considering graduate study in computer science (either immediately following graduation or after working for several years) are advised to take
and one of
as well as courses in their intended area of study.
Students interested in applications of computers to scientific and engineering problems are advised to take
in addition to computational courses in Applied Mathematics and Engineering and Applied Science.
To encourage study in interdisciplinary areas where computer science plays a major role, advanced courses3in other departments that involve concepts from computer science and are particularly relevant to an individual program may, with permission of the class advisor or the director of undergraduate studies, be counted as electives. Generally at most two such courses may be used to satisfy the requirements for the B.S. program (one for the B.A. program).
Even if they cannot be counted as electives, some courses in mathematics (e.g., calculus, linear algebra, probability and statistics, optimization, and discrete mathematics) may be beneficial. For example, some graduate programs require calculus and linear algebra.