# Graduation Requirements, effective Fall 2018

## 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, 157C, 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. 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.
- CS 85C may be used with department approval. At most 3 units of CS 085C and CS 185C may be used.
- 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 two courses should be chosen from the following list of electives: CS 116A, CS 116B, CS 122, CS 123A, CS 123B, CS 130, CS 134, CS 144, CS 153, CS 155, CS 156, CS 157A, CS 157B, CS 157C, CS 158A, CS 158B, CS 159, CS 161, CS 166, CS 167B, CS 167C, CS 172A, CS 174, CS 175
- 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.