# Graduation Requirements

## B.S. Computer Science Program Requirements

## Required Support CoursesMath 30 and 31 |

## Required Computer Science CoursesCS 46A...........................Intro to Programming CS 46B.......................Intro to Data Structures CS 47.......................Intro to Computer Systems CS 146...................Data Structures & Algorithms CS 147..........................Computer Architecture CS 149..............................Operating Systems CS 151.........................Object-Oriented Design CS 152..........................Programming Paradigms CS 154...............Formal Languages & Computability CS 160...........................Software Engineering CS 116B, 123B, 153, 157B, 158B, 161, 167B, or 167C |

## Elective Computer Science Courses(courses totaling 16 units to be selected from the following list -- see notes 1 and 9) CS 49C.................Programming in C (see note 10) |

### Notes

- 37 units of upper division mathematics and computer science courses must be included among the courses used to satisfy these program requirements. Neither CS 100W nor CS 110L may count among these 37 units.
- Transfer students should see an advisor to determine course equivalencies for courses being transferred.
- To enroll in a math or computer science course, a student must have obtained a C- or better in each of its prerequisite courses. A grade of C- or better is required in all courses counted toward the major.
- Math 30P may be used instead of Math 30. For information on enrollment in Math 30
or Math 30P, see http://www.math.sjsu.edu/~calculus.

If Math 142 or Math 161A is used to satisfy the Math 32/142/161A requirement, it may not also count as an elective course. - Electives must be chosen so that 14 units of science course work is taken. Courses

used for GE Areas B1, B2, B3, and R will count toward these 14 units. At least 5 units of these 14 units must count toward a science or engineering major. More information is available on the department web site. - A course used to meet this requirement cannot also be counted as a CS elective. However if two or more courses from this list are completed successfully, all but one may count as a CS elective.
- Most combinations of 3 units of CS 85 and CS 185 may be used as an elective course. Only one elective course may be replaced in this way.
- Math 30 satisfies the Area B4 requirement for General Education. CS 100W satisfies the Area Z requirement, and Phil 134 the Area V requirement, for SJSU Studies.
- At least 4 units of electives must have CS 46A as a required direct or indirect prerequisite.
- CS 49C and CS 49J require department approval to count as BSCS electives. CS 49C approval will be granted to any student who is not also getting credit for a lower-division course taught in C or C++. CS 49J approval will be granted to any incoming transfer student who is satisfying both the 46A and the 46B requirements with courses that don't use Java.