next up previous contents
Next: Special Projects Up: Degree Programs in Computer Previous: Degree Programs in Computer   Contents


B.S. and B.A. in Computer Science

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

• Computer Science 201a or b Introduction to Computer Science
• Computer Science 202a Mathematical Tools for Computer Science2
• Computer Science 223b Data Structures and Programming Techniques
• Computer Science 323a Introduction to Systems Programming and Computer Organization
• Computer Science 365b Design and Analysis of Algorithms

and a senior project, which must be taken as

• Computer Science 490a or b Special Projects.

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.

Figure 1: The prerequisite structure of the core courses.
Image prereqs

Typical schedules beginning in the freshman and sophomore years are given in Tables 1 and 2.
Table 1: Sample B.S. programs for a student starting in the freshman year. Omit two electives from either to get a B.A. program.
                                            
 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  


Table 2: Sample B.S. programs for a student starting in the sophomore year. Omit two electives from either to get a B.A. program.
                                            
 Fall         Spring                   Fall         Spring  
                                            
 CPSC 201         CPSC 223         Sophomore                   CPSC 201  
 CPSC 202                                       CPSC $223^*$  
                                            
 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).

Students are strongly advised to complete Computer Science 201a or b and 223b by the end of their sophomore year. Otherwise the choice of electives may be somewhat limited, especially in the B.S. program.

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.

Electives

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

• Computer Science 421a Compilers and Interpreters
• Computer Science 422b Operating Systems

and one of

• Computer Science 465a Topics in Algorithms
• Computer Science 468a Computational Complexity
• Computer Science 469b Randomized Algorithms,

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

• Computer Science 440b Numerical Computation I

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.


SUMMARY OF REQUIREMENTS

Prerequisites: None

Number of courses: B.S. degree--twelve term courses taken for a letter grade (including the senior project); B.A. degree--ten term courses taken for a letter grade (including the senior project)

Specific courses required: B.S. and B.A. degrees--CPSC 201a or b, 202a, 223b, 323a, and 365b

Distribution of courses: B.S. degree--six additional intermediate or advanced CPSC courses. B.A. degree--four additional intermediate or advanced CPSC courses

Substitution permitted: Advanced courses in other departments, with permission of the class advisor or the director of undergraduate studies

Senior requirement: Independent project (CPSC 490a or b)


next up previous contents
Next: Special Projects Up: Degree Programs in Computer Previous: Degree Programs in Computer   Contents