# Graduation Requirements, effective Fall 2016

## 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 17 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. CS 100W may not 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. Normally 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 5 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.