The major consists of a number of required courses, plus other elective courses that may be chosen to fit the student's needs. Computer science majors may complete the following 80-unit program or may elect to complete either of the two 88-unit options in Networking or Software Engineering, see section on "Options under the Computer Science Major".
The major has several courses in mathematics. Several of the upper division C.S. courses entail large programming projects and require considerable time and effort. You should choose a computer science major only if you (a) like mathematics, and (b) have the time and energy to commit to a demanding sequence of courses.
A C.S. major must complete the following five categories:
There are six required mathematics courses. They are mainly lower division courses which are also prerequisite to many computer science courses. For this reason, they should be taken during the first two years (except the Statistics courses, which may be taken later if desired). The lower division courses may be taken at a community college. Notice that the sequence begins with a calculus course; some students may need to begin with college algebra or trigonometry/analytic geometry courses for preparation.
These courses are the foundation for the upper division courses, and must all be completed with a grade of C or better.
Three courses are required, with a grade of C or better:
Although CS 1160 is the required introductory course for Computer Science majors, it may be difficult for students with no experience using computers. Students who do not know how to use a word processor or who have no knowledge of computer files and operating systems may find the first weeks of CS 1160 filled with unfamiliar material. Such students should take CS 1020 (Introduction to Computers) before taking CS 1160.
Also, students who have completed a multi-quarter course in C, C++, or Java at another college should also consult the department; they may be eligible to receive credit for both CS 1160 and CS 2360.
Four upper division courses are required in this category. These courses are fundamental to the understanding of all computer science students. Students who complete the lower division requirements should take the courses CS 3120, CS 3240, and CS 3430 as soon as is practical. These must be completed with a grade of C or better. The required courses are:
Another four courses must be chosen from the following list for a concentration.
The selection of all elective courses (in concentration and general electives) is important in giving the major a coherence, with depth in key areas. These electives must be chosen with the assistance and approval of a faculty advisor. They should be chosen to complement the student's area of interest.
Finally, the major requires twelve units of electives, including at least four units with a CS prefix. Many courses can be used here including all upper division C.S. courses not used in a previous category, almost all graduate C.S. courses, any upper division mathematics or statistics course applicable to the B.S. in mathematics, and certain courses offered by other departments.
The courses that may be used here are: