Computer Science Undergraduate Electives

In addition to the required lower-division and upper-division Computer Science courses, Computer Science majors must take three additional elective courses, totaling at least nine units, chosen from undergraduate Computer Science courses numbered CSC 140 or above (excluding CSC 192CSC 194CSC 195CSC 195A-DCSC 198, and CSC 199). A variety of combinations is acceptable, but it is required that these elective courses be chosen with advisor consultation and approval. With advance written approval from their advisor, the course instructor, and the Department Chair, students with a GPA of 3.0 or better may take graduate courses as electives. In any case students must meet the prerequisite stated in the catalog prior to taking any elective course. (Prerequisites are listed in parentheses.)

Whenever possible, CSC course numbers below link to full course outlines in PDF format. (Although they are the most recent formal descriptions available, they may not reflect the current textbooks being used or the faculty member currently teaching the course. Students should check with the department office if they have questions about textbooks or instructors.)

Courses without full outlines are linked to catalog descriptions.

Units

Course #

Course Title and Prerequisite

3

CSC 140

Advanced Algorithm Design and Analysis (CSC 130)

3

CSC 142

Advanced Computer Organization (CSC 137 or equivalent)

3

CSC 148

Modeling and Experimental Design (MATH 31, STAT 50, and proficiency in a programming language)

3

CSC 151

Compiler Construction (CSC 136; may be taken concurrently)

3

CSC 152

Cryptography (CSC 60, CSC 130STAT 50)

3

CSC 153

Computer Forensics Principles and Practices (CSC 138)

3

CSC 154

Computer Systems Attacks and Countermeasures (CSC 138 or CPE 138)

3

CSC 155

Advanced Computer Graphics (CSC 133)

3

CSC 159

Operating System Pragmatics (CSC 139)

3

CSC 165

Computer Game Architecture and Implementation (CSC 130CSC 133MATH 30PHYS 11A)

3

CSC 170

Software Requirements and Specification (CSC 131)

3

CSC 171

Software Engineering Project Management (CSC 131)

3

CSC 174

Database Management Systems (CSC 131CSC 134)

3

CSC 176

Advanced Database Management Systems (CSC 174)

3

CSC 177

Data Warehousing and Data Mining (CSC 134 and STAT 50)

3

CSC 179

Software Testing and Quality Assurance (CSC 131)

3

CSC 180

Intelligent Systems (CSC 130CSC 132MATH 31STAT 50)

3

CSC 196

Experimental Offerings in Computer Science (prerequisites vary)