CSC 1000 
		Computing Majors Orientation 
		(1 unit)
	
Term Typically Offered: F
Introduction to the computing majors. Community building, mentoring, personal well-being skills, academic success skills, and department, school, college, and university support resources. Importance of justice, equity, diversity, and inclusivity in computing. Societal responsibilities of computing practitioners. 1 lecture. Crosslisted as CPE/
CSC 1000. Formerly CPE 100.
	
		CSC 1001 
		Fundamentals of Computer Science 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: Appropriate Math Placement; or one of the following: MATH 117, MATH 118, MATH 1004, or MATH 1006 with a grade of C- or better. Concurrent: CSC 1001L. Principles of algorithmic problem solving and programming. Data, types, functions, control structures, and input/output. Introduction to the software development process: design, implementation, testing, and documentation. Syntax and semantics of a modern programming language. 3 lectures. Formerly CPE/CSC 101.
	
		CSC 1001L 
		Fundamentals of Computer Science Laboratory 
		(1 unit)
	
Term Typically Offered: F, SPPrerequisite: Appropriate Math Placement; or one of the following: MATH 117, MATH 118, MATH 1004, or MATH 1006 with a grade of C- or better. Concurrent: CSC 1001. Laboratory exercises on principles of algorithmic problem solving and programming. Programming tools. Data, types, functions, control structures, and input/output. Introduction to the software development process: design, implementation, testing, and documentation. 1 laboratory.
	
		CSC 1024 
		Introduction to Computing 
		(2 units)
	
Term Typically Offered: F
Introduction to computing through hands-on activities. Highly supportive environment exploring authentic problems in computing topics developing skills and creating community. No programming experience required. The Class Schedule will list subtitle selected. Not open to students with credit in CPE/CSC 202 or 
CSC 2001. 1 lecture, 1 activity. Crosslisted as CPE/
CSC 1024. Formerly CPE/CSC 123.
	
		CSC 1031 
		Programming for Engineers 
		(2 units)
	
Term Typically Offered: SPPrerequisite: One of the following: MATH 121, MATH 141, MATH 1261, or DATA/MATH 1264; and PHYS 141 or PHYS 1141. Programming techniques and procedures with applications to engineering problems. Introduction to numerical methods and simulation. Not open to Computer Engineering, Computer Science, or Software Engineering majors. Course may be offered in classroom-based or online format. 2 activities. Formerly CSC 231.
	
		CSC 1032 
		Programming for Scientists and Engineers 
		(3 units)
	
Term Typically Offered: SPPrerequisite: Appropriate Math Placement; or one of the following: MATH 117, MATH 118, MATH 1004, or MATH 1006 with a grade of C- or better. Principles of algorithmic problem solving and programming for scientists and engineers. Data, functions, control structures, and input/output. Not open to Computer Engineering, Computer Science, or Software Engineering majors. 2 lectures, 1 activity. Formerly CSC 232.
	
		CSC 2001 
		Data Structures 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 101 or CSC 1001 with a grade of C- or better. Concurrent: CSC 2001L. Introduction to data structures and analysis of algorithms. Algebraic data definitions, structural and generative recursion, theoretical and empirical analysis of basic data structure algorithms. Mutable and immutable data. Objects. Design recipe, including testing. 3 lectures. Formerly CPE/CSC 202.
	
		CSC 2001L 
		Data Structures Laboratory 
		(1 unit)
	
Term Typically Offered: F, SPConcurrent: CSC 2001. Laboratory exercises on algebraic data definitions, structural and generative recursion, theoretical and empirical analysis of basic data structure algorithms. Mutable and immutable data. Objects. Design recipe, including testing. 1 laboratory.
	
		CSC 2050 
		System Software Mechanics 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001 with a grade of C- or better. Systems-level considerations for software development. Tools for task automation, debugging, and program analysis. Introductory shell scripting. Explicit memory management and tracking errors. Programmatically interfacing with the operating system. Introductory process management. 2 lectures, 1 activity. Crosslisted as CPE/
CSC 2050. Replaced CPE/CSC 357.
	
		CSC 2200 
		Special Problems for Undergraduates 
		(1-2 units)
	
Term Typically Offered: TBD
Prerequisite: Consent of instructor.
Individual investigation, research, studies, or surveys of selected problems. Repeatable up to 4 units. Formerly CSC 200.
	
		CSC 2270 
		Special Topics 
		(1-4 units)
	
Term Typically Offered: TBD
Prerequisite: Consent of instructor.
Directed group study of special topics. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 lectures. Formerly CSC 290.
	
		CSC 2600 
		Computing with Data 
		(4 units)
	
Term Typically Offered: TBDPrerequisite: One of the following: CPE/CSC 101, CSC 232, CSC 1001, or CSC 1032. Introduction to data-centric computing. Data representation and structures in programming languages. Arrays, lists, dictionaries, hash tables, trees. Tabular data and data frames. Relational data model and relational databases. Database connectivity, Structured Query Language. Non-relational Database Management Systems and their use. Not open to Computer Engineering, Computer Science, or Software Engineering majors. Not open to students with credit in 
CSC 2001 or CSC 2001L. 3 lectures, 1 laboratory.
	
		CSC 3000 
		Transfer Student Orientation and Workshop 
		(3 units)
	
Term Typically Offered: FPrerequisite: CPE/CSC 202 or CSC 2001. Community building, personal well-being skills, academic success skills, and department, school, college, and university support resources. Curriculum and career paths. Review of topics from CSC 1001L and CSC 2001L. Dynamic support for concurrent coursework. 3 lectures.
	
		CSC 3001 
		Modern Application Development 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001. Application development utilizing multiple interacting systems to manage, transfer, and present data. Building from networking principles, through distributed and parallel computing, to web and cloud services. Reliability, communication, coordination, task and data decomposition, data management, and design and implementation challenges. 3 lectures, 1 laboratory. Formerly CSC 364.
	
		CSC 3100 
		Software Engineering 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001. Software process models. Principles for engineering requirements, analysis, and design of large software systems. Methods and tools for implementation, continuous integration, testing, project planning, and quality assurance. Analysis of engineering tradeoffs and cost estimation. 3 lectures, 1 laboratory. Formerly CSC 308.
	
		CSC 3104 
		Software Engineering without Programming 
		(3 units)
	
Term Typically Offered: TBD
Prerequisite: Junior standing and completion of GE Area 2 with a grade of C- or better (GE Area B4 for the 2020-26 catalogs).
Introduction to software engineering for students pursuing non-computing degree objectives. Software development lifecycles. Stakeholders and roles in the software lifecycle. Product vision, user personas, and user stories. Software requirements. User interface prototyping. Data description for applications. Software architectures. Software testing. Not open to Computer Engineering, Computer Science, or Software Engineering majors. 2 lectures, 1 activity. Formerly CSC 304.
	
		CSC 3111 
		Computational Thinking for Educators 
		(3 units)
	
Term Typically Offered: SU
Prerequisite: Completion of GE Area 3B (GE Area C2 for the 2020-26 catalogs); and completion of GE Area 2 with a grade of C- or better (GE Area B4 for the 2020-26 catalogs).
Fundamentals of computational thinking in the context of K-12 Education. Ethical and social considerations of computing. Data gathering and representation. Logic and computational reasoning. Data and procedural abstraction. Problem decomposition. Code patterns for algorithmic problem-solving. Course may be offered in classroom-based, online, or hybrid format. 2 lectures, 1 activity. Formerly CSC 312.
	
		CSC 3112 
		Software Design and Data Structures for Educators 
		(3 units)
	
Term Typically Offered: SUPrerequisite: CSC 312 or CSC 3111. A programming-based introduction to software design techniques, data structures, and algorithms, appropriate for K-12 computer science teachers. Satisfies a requirement for the computer science specific supplementary authorization for teaching K-12 computer science in California. Course offered online only. 2 lectures, 1 activity. Formerly CSC 314.
	
		CSC 3113 
		Teaching Computing 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: One of the following: CPE/CSC 202, CSC 314, CSC 2001, or CSC 3112 with a grade of C- or better. An introduction to pedagogical methods and practical techniques for computer science education: selecting appropriate content, designing assignments and activities, evaluating student learning, and evaluating teaching efficacy. Hands-on guided curricular design activities and real-world practice. 2 lectures, 1 activity. Formerly CSC 313.
	
		CSC 3200 
		Practical Computer Security for Everyone 
		(3 units)
	
Term Typically Offered: F, SP
2026-28 or later: Upper-Div GE Area 2/5
2020-26 catalogs: Upper-Div GE Area B
Prerequisite: Junior standing; completion of GE Area 1 with grades of C- or better (GE Area A for the 2020-26 catalogs); and completion of GE Area 2 with a grade of C- or better (GE Area B4 for the 2020-26 catalogs).
Exploration of practical computer security in everyday life for non-majors. Covering privacy and anonymity, web and data security, cryptography, malware, authentication and access control. Course may be offered in classroom-based or online format. 2 lectures, 1 activity. Fulfills GE Areas Upper-Division 2 or Upper-Division 5 (GE Area Upper-Division B for students on the 2020-26 catalogs). Formerly CSC 320.
	
		CSC 3201 
		Introduction to Computer Security 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050. Survey of computer security, including protection, access control, applied cryptography, network security, secure coding practices, secure machine learning, privacy, and case studies from real-world systems. Course may be offered in classroom-based or online format. 3 lectures. Crosslisted as CPE/
CSC 3201. Formerly CPE/CSC 321.
	
		CSC 3203 
		Cryptography Engineering and Applications 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 364 or CSC 3001. An introduction to the theory and practice of building secure, cryptographic systems. Core cryptographic primitives. Design, implementation, evaluation and subversion of widely deployed cryptographic applications and protocols. 3 lectures, 1 laboratory. Formerly CSC 323.
	
		CSC 3250 
		Introduction to Privacy: Policy and Technology 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001; and PHIL 323 or PHIL 3323. Introduction to policies and technologies related to data privacy. Legal decisions and policies, domestic and global cultural expectations and practice, privacy-preserving technologies, and privacy-related technologies including applications to surveillance, big data, websites, smart devices, and privacy by design. Course may be offered in classroom-based or online format. 2 lectures, 1 activity. Formerly CSC 325.
	
		CSC 3300 
		Programming Languages 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 349 or CSC 3449. Programming language theory implementation fundamentals. Functional Languages. Expressions, functions, environments, closures, mutation, objects, type systems, and syntactic abstraction. Syntactic, semantic, and static analysis properties. 2 lectures, 1 activity. Formerly CSC 430.
	
		CSC 3445 
		Theory of Computation 
		(3 units)
	
Term Typically Offered: SPPrerequisite: MATH 248 or MATH 2031. Theory of regular languages and context-free languages. The Church-Turing Thesis. 3 lectures. Formerly CSC 445.
	
		CSC 3449 
		Algorithms and Complexity 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: MATH 248 or MATH 2031; and CPE/CSC 202 or CSC 2001. Introduction to and analysis of intermediate and advanced algorithms. Divide and conquer, graph, greedy, and dynamic programming algorithms. Complexity analysis and problem reductions. 4 lectures. Formerly CSC 349.
	
		CSC 3660 
		Introduction to Databases 
		(2 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001; and MATH 248 or MATH 2031. Basic principles of data management. Relational database model. Key constraints. Overview of Structured Query Language (SQL). Relational algebra and querying databases in SQL. Database connectivity and use of databases in modern application development contexts. Half-semester course. 2 units.
	
		CSC 3662 
		Introduction to Non-Relational Database Systems 
		(2 units)
	
Non-Relational Database Management Systems. The CAP theorem. Available Partition-tolerant database systems and their applications. Consistent Partition-tolerant database systems and their applications. Querying non-relational databases. Half-semester course. 2 units.
	
		CSC 3665 
		Introduction to Database Management Systems 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001; and MATH 248 or MATH 2031. Principles of database management systems (DBMS). DBMS architecture, Entity-Relationship modeling. Relational database model, the Structured Query Language (SQL), database design, database connectivity and application development tools. Functional Dependencies and Normal forms. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Formerly CSC 365.
	
		CSC 3710 
		Game Design and Development 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001. Game design including rules, interaction, and storytelling. Incorporating sound, art, and game controls in creating meaningful play. Develop complete games using standard industry processes. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Formerly CSC 371.
	
		CSC 3760 
		Introduction to Mixed Reality 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 371 or CSC 3710. Project-based study and application of Mixed Reality (MR) including integrated mixed reality development environments, Human-Computer Interaction (HCI) peripherals, 3D environment scanning, physics interaction, diminished reality, motion capture, facial recognition, and visualization hardware. Course may be offered in classroom-based or online format. 2 lectures, 1 laboratory. Formerly CSC 377.
	
		CSC 3780 
		Game Engineering and Critical Analysis 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001. Project-based study, development, and analysis of digital games and game design. Discussion and evaluation of influential games. Interactive storytelling, game physics, game AI, character development, animation, quality assurance, and packaging. Requires significant programming. 3 lectures, 1 laboratory. Formerly CSC 378.
	
		CSC 4036 
		Mobile Application Development 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357, CSC 364, or CSC 3001. Project-based study of native mobile application development. User interface design, concurrency, data persistence, authentication, and testing of mobile applications. 2 lectures, 1 activity. Formerly CSC 436.
	
		CSC 4037 
		Web Development 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 364 or CSC 3001. Project-based study of dynamic web development. Client-side and server-side programming, database management, and security and testing. 2 lectures, 1 activity. Formerly CSC 437.
	
		CSC 4091 
		Seminars in Computer Science 
		(1 unit)
	
Term Typically Offered: F, SPCR/NCPrerequisite: Senior standing. Recommended: CSC 364 or CSC 3001. Discussions of technical, societal, and ethical aspects of modern computer science theory and practice, concentrating on topics not covered in other courses. Repeatable up to 4 units. Credit/No Credit grading only. Course may be offered in classroom-based or online format. 1 seminar.
	
		CSC 4092 
		Research Experience in Computer Science 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 308 or CSC 3100; and PHIL 323 or PHIL 3323. Collaborative research activity under faculty supervision on a defined problem. Literature review, prototype development, analysis, documentation. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4093 
		Projects in Computer Science 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 308 or CSC 3100; and PHIL 323 or PHIL 3323. Instructor-guided design and implementation of advanced projects in computer science. Projects selected from real-world computing problems. Focus on implementation, testing, and analysis of team-based projects. Each offering will select a different project. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4100 
		Software Evaluation 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 349 or CSC 3449. Theory and practice of enterprise software system evaluation. Designing experiments for measuring software performance, measuring software output quality, analytical modeling for capacity planning, workload characterization and benchmarking, selection of appropriate software evaluation metrics. 3 lectures, 1 laboratory. Formerly CSC 410.
	
		CSC 4160 
		Software Engineering Capstone I 
		(4 units)
	
Term Typically Offered: FPrerequisite: CSC 308 or CSC 3100. Software requirements elicitation, analysis, and documentation. Team process and resource estimation to achieve software quality. Design, construction and management of sizeable software products. Software development process, quality assurance, testing, tools and integration. 3 lectures, 1 laboratory. Formerly CSC 402.
	
		CSC 4161 
		Senior Project - Software Engineering Capstone II 
		(4 units)
	
Term Typically Offered: SPPrerequisite: Senior standing; CSC 364 or CSC 3001; and CSC 402 or CSC 4160. Software development, deployment, maintenance and management of a sizeable software product by a student team. Quality assurance, functional, integration, acceptance testing and tools. Deployment, maintenance, version control, defect tracking, and technical support. 3 lectures, 1 laboratory. Formerly CSC 406.
	
		CSC 4170 
		Special Advanced Topics in Software Engineering 
		(1-4 units)
	
Term Typically Offered: TBDPrerequisite: CSC 308 or CSC 3100; and consent of instructor. Special topics in software engineering. Topics may include program generation, quality assurance, formal methods, software metrics, design methods, testing, or software development processes. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 lectures. Formerly CSC 409.
	
		CSC 4184 
		User-Centered UI/UX Design 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 364 or CSC 3001. An overview of the principles, tools, and techniques of UI/UX design for software development. Introduction to the design and prototyping of interfaces for web and mobile applications emphasizing the importance of user-centered design for delivering positive user experiences. 2 lectures, 1 activity. Formerly CSC 484.
	
		CSC 4186 
		Human-Computer Interaction 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 308 or CSC 3100. Introduction to fundamentals of Human-Computer Interaction. Discussion of human cognitive and affective factors and computer capabilities and constraints. Development of interactive systems. Emerging concepts in social, affective, and ubiquitous computing. 2 lectures, 1 activity. Formerly CSC 486.
	
		CSC 4191 
		Seminars in Software Engineering 
		(1 unit)
	
Term Typically Offered: F, SPCR/NCPrerequisite: CSC 308 or CSC 3100. Discussions of technical, societal, and ethical aspects of modern software engineering theory and practice, concentrating on topics not covered in other courses. Repeatable up to 4 units. Credit/No Credit grading only. Course may be offered in classroom-based or online format. 1 seminar.
	
		CSC 4192 
		Research Experience in Software Engineering 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 308 or CSC 3100; and PHIL 323 or PHIL 3323. Collaborative research activity under faculty supervision on a defined problem. Literature review, prototype development, analysis, documentation. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4193 
		Projects in Software Engineering 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 308 or CSC 3100; and PHIL 323 or PHIL 3323. Instructor-guided design and implementation of advanced projects in software engineering. Projects selected from real-world computing problems. Focus on implementation, testing, and analysis of team-based projects. Each offering will select a different project. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4210 
		Software Security 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 308 or CSC 3100; and CPE/CSC 321 or CPE/CSC 3201. Principles behind secure software design including threat models, trust management, common vulnerabilities and mitigation techniques, robust software development, isolation of untrusted code, auditability, and testing. 2 lectures, 1 activity. Formerly CSC 424.
	
		CSC 4212 
		Malware Design and Analysis 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 321 or CPE/CSC 3201; and PHIL 323 or PHIL 3323. Introduction to the theory and practice of malware design and analysis with a focus on static and dynamic analysis of live samples. Ethical consideration, environment preparation, static analysis, dynamic analysis, and payload engineering. 2 lectures, 1 activity.
	
		CSC 4214 
		Binary Exploitation: Tools and Techniques 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: CPE/CSC 321 or CPE/CSC 3201. Corequisite: PHIL 323 or PHIL 3323. Introduction to the theory and practice of finding vulnerabilities in production systems with a focus on the evolution of vulnerabilities over time. Emphasis on buffer overflows, return-oriented-programming attacks, return to libc attacks, heap attacks, and common binary exploitation tools. 2 lectures, 1 activity. Formerly CSC 421.
	
		CSC 4230 
		Web and Cloud Security 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 321 or CPE/CSC 3201. Survey of web and cloud security, including browser, cloud, and container vulnerabilities and their prevention. Various web-related attacks and their defenses. Case studies on real-world incidents; legal and ethical implications; and emerging web and cloud security threats. 2 lectures, 1 activity.
	
		CSC 4260 
		Interdisciplinary Privacy and Security Capstone I 
		(3 units)
	
Term Typically Offered: FPrerequisite: Senior standing; one of the following: CSC 320, CPE/CSC 321, CPE/CSC 3201, or CSC 3200; and PHIL 323 or PHIL 3323. Interdisciplinary security and privacy engineering with a customer. Design and implementation of a penetration testing plan with consideration of ethics, usability, and cost. Documentation, presentation, and communications to customers. Focus on managing security teams. 2 lectures, 1 laboratory. Crosslisted as CPE/
CSC 4260.
	
		CSC 4261 
		Senior Project - Privacy and Security Capstone II 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 4260. Interdisciplinary testing, analysis, and construction of a secure solution including analysis of the ethical, policy, and usability implications. Focus on effective documentation and communication with various customers and stakeholders. 2 lectures, 1 laboratory. Crosslisted as CPE/
CSC 4261.
	
		CSC 4270 
		Special Advanced Topics in Computer Security 
		(1-4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 321 or CPE/CSC 3201 and consent of instructor. Special topics in emerging areas of computer security. Potential topics include: network and web security, critical infrastructure protection, embedded systems security, malware analysis, mobile security, and digital forensics, among others. The Class Schedule will list topic selected. Repeatable up to 8 units. Course may be offered in classroom-based, online, or hybrid format. 1 to 4 lectures. Formerly CSC 429.
	
		CSC 4291 
		Seminars in Privacy and Security 
		(1 unit)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 321 or CPE/CSC 3201; and PHIL 323 or PHIL 3323. Faculty supervised readings and discussion on a defined area in privacy and/or security. Literature review, paper critique, searching academic databases, and preparing an annotated bibliography. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 seminar.
	
		CSC 4292 
		Research Experience in Privacy and Security 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 321 or CPE/CSC 3201; and PHIL 323 or PHIL 3323. Collaborative research activity under faculty supervision on a defined problem in privacy and/or security. Literature review, prototype development, analysis, documentation. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4293 
		Projects in Privacy and Security 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 321 or CPE/CSC 3201. Instructor guided investigation into advanced design and applications of privacy and computer security. Projects selected from real-world privacy and security problems. Focus on testing, analysis, implementation, and team-based projects. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4310 
		Compiler Construction 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; and CPE/CSC 225, CPE/EE 233, or CPE 2300. Design and construction of compilers. Concepts include syntactic analysis, semantics, code generation, and code transformations. Examine problems in processing languages. A complete compiler for a small language will be implemented. 2 lectures, 1 activity. Crosslisted as CPE/
CSC 4310. Formerly CPE/CSC 431.
	
		CSC 4400 
		Special Problems 
		(1-4 units)
	
Term Typically Offered: F, SP
Prerequisite: Consent of instructor.
Individual investigation, research, studies or surveys of special problems. Repeatable up to 4 units. Formerly CSC 400.
	
		CSC 4431 
		Computing for Interactive Arts Capstone I 
		(3 units)
	
Interactive art theory for developing innovative projects, applications, and installations. Definition and specification of a team-based creative collaboration on a digital interactive art project (animation, video game, interactive media display, etc.). Project planning, design, and prototype creation. Course may be offered in classroom-based or online format. 1 lecture, 2 activities. Crosslisted as ART/
CSC 4431. Formerly ART/CSC 350.
	
		CSC 4432 
		Computing for Interactive Arts Capstone II 
		(3 units)
	
Term Typically Offered: SPPrerequisite: ART/CSC 350 or ART/CSC 4431. Team-based design, construction, and deployment of a collaborative interactive computational art project typically found in the fields of animation, game design, and interactive media. Management of interdisciplinary teams, documentation, creative development, testing, and assessment. Ethical considerations in interactive art. Course may be offered in classroom-based or online format. 1 lecture, 2 activities. Crosslisted as ART/
CSC 4432. Formerly ART/CSC 450.
	
		CSC 4448 
		Bioinformatics Algorithms 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CSC 349 or CSC 3449. Introduction to the use of computers to solve problems in molecular biology. The algorithms, languages, and databases important in determining and analyzing nucleic and protein sequences and their structure. 4 lectures. Formerly CSC 448.
	
		CSC 4460 
		Senior Project 
		(2 units)
	
Term Typically Offered: F, SPPrerequisite: Senior standing; CSC 308 or CSC 3100; PHIL 323 or PHIL 3323; and consent of instructor. Selection and completion of a project under faculty supervision. Projects typical of problems that graduates must solve in their fields of employment. Project may include students from other disciplines. Project results are presented in a formal report. Formerly CSC 491.
	
		CSC 4461 
		Senior Project - Research 
		(2 units)
	
Term Typically Offered: F, SPPrerequisite: Senior standing; CSC 308 or CSC 3100; PHIL 323 or PHIL 3323; and consent of instructor. Individual research activity under faculty supervision. Problem statement, literature review, prototype development, analysis, documentation. Intended for those planning to pursue graduate studies or research-oriented employment. Formerly CSC 497.
	
		CSC 4470 
		Special Advanced Topics 
		(1-4 units)
	
Term Typically Offered: F, SP
Prerequisite: Consent of instructor.
Directed group study of special topics for advanced students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 lectures. Formerly CSC 490.
	
		CSC 4471 
		Special Advanced Laboratory 
		(1-2 units)
	
Term Typically Offered: F, SP
Prerequisite: Consent of instructor.
Directed group laboratory study of special topics for advanced students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 2 laboratories. Formerly CSC 496.
	
		CSC 4472 
		Special Advanced Activity 
		(1-2 units)
	
Term Typically Offered: F, SP
Prerequisite: Consent of instructor.
Directed group activity study of special topics for advanced students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 2 activities.
	
		CSC 4495 
		Cooperative Education Experience 
		(1-2 units)
	
Term Typically Offered: F, SP, SU
CR/NC
Prerequisite: Consent of instructor.
Work experience in an area related to computing. Positions are typically paid and usually require relocation and registration in course for one term. Registration in course is required at start of work experience. Formal evaluation by work supervisor required. Repeatable up to 4 units. Credit/No Credit grading only. Formerly CSC 493.
	
		CSC 4553 
		Introduction to Operating Systems 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; and CPE/CSC 225, CPE/EE 233, or CPE 2300. Recommended: CSC 308 or CSC 3001; and CPE 316 or CPE 3160. Sequential and multiprogramming operating systems; system calls, scheduling, synchronization, files and storage systems, virtual memory, security. Course may be offered in classroom-based or online format. 2 lectures, 1 activity. Crosslisted as CPE/
CSC 4553. Formerly CPE/CSC 453.
	
		CSC 4554 
		Implementation of Operating Systems 
		(4 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 453 or CPE/CSC 4553. Design and implementation of multiprogramming kernels, systems programming methodology, interprocess communications, synchronization, and device drivers. 4 lectures. Formerly CPE/CSC 454.
	
		CSC 4570 
		Special Advanced Topics in Computer Systems 
		(1-4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; and consent of instructor. Special aspects of design, implementation, and analysis of networks, advanced operating, and distributed systems. Topics may include process management, virtual memory, process communication, context switching, file system designs, persistent objects, process and data migration, load balancing, security, and networks. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 lectures. Crosslisted as CPE/
CSC 4570. Formerly CPE/CSC 458.
	
		CSC 4610 
		Fundamentals of Machine Learning 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: DATA 301 or DATA 3301; and MATH 253 or MATH 2621; or graduate standing in Statistics. Theory and practice of Machine Learning, with focus on optimization-based methods and procedures. Likelihood and least-squares estimation. Linear, nonlinear, and penalized regression. Classification by linear separators. Gradient descent and boosting. Unsupervised and semi-supervised learning. Not open to students with credit in CSC 487 or 
CSC 4667. 3 lectures, 1 laboratory. Crosslisted as CSC/
DATA 4610.
	
		CSC 4620 
		Foundations and Applications of Deep Learning 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: DATA 4610. Overview of modern machine learning techniques that relate to deep learning. Perceptrons, Feed-Forward Neural Networks, Convolutional Neural Networks, Recurrent Neural Networks, Autoencoders and Decoders, Generative Adversarial Networks, and Transformers. Not open to students with credit in CSC 487 or 
CSC 4667. 3 lectures, 1 laboratory. Crosslisted as CSC/
DATA 4620.
	
		CSC 4665 
		Database Management Systems Organization 
		(4 units)
	
Architecture of the internals of a modern Database Management System (DBMS). Physical data layout, query execution and optimization, transaction management, logging and recovery, data replication and scalability, and an introduction to distributed DBMSs. 3 lectures, 1 laboratory. Formerly CSC 468.
	
		CSC 4667 
		Deep Learning 
		(4 units)
	
Theory and practice of Deep Learning (DL) paradigms. Gradient Descent, Batch Normalization, Convolutional Neural Networks (NN), Recurrent NN, Dropout, Transformers, and new developments. Emphasis on using DL to solve a real-world application of significant scope. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Formerly CSC 487.
	
		CSC 4669 
		Distributed Systems 
		(4 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050. Foundations in distributed computing. Distributed programming languages. Distributed algorithms. Leader election consensus protocols. Failure detection with gossip protocol. Fault tolerance and replication. Consistency protocols. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Crosslisted as CPE/
CSC 4669. Formerly CPE/CSC 469.
	
		CSC 4691 
		Seminars in Data Engineering 
		(1 unit)
	
Discussions of technical, societal, and ethical aspects of modern data engineering theory and practice, concentrating on topics not covered in other courses. Repeatable up to 4 units. Credit/No Credit grading only. Course may be offered in classroom-based or online format. 1 seminar.
	
		CSC 4692 
		Research Experience in Data Engineering 
		(1-2 units)
	
Collaborative research activity under faculty supervision on a defined problem. Literature review, prototype development, analysis, documentation. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4693 
		Projects in Data Engineering 
		(1-2 units)
	
Instructor-guided design and implementation of advanced projects in data engineering. Projects selected from real-world computing problems. Focus on implementation, testing, and analysis of team-based projects. Each offering will select a different project. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4710 
		Introduction to Computer Graphics 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050. Graphics software development and use of application programming interfaces for 3D graphics. The graphics pipeline, modeling, geometric and viewing transforms, lighting and shading, rendering, interaction techniques and graphics hardware. 2 lectures, 1 laboratory. Formerly CPE/CSC 471.
	
		CSC 4730 
		Advanced Rendering Techniques 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 471 or CSC 4710. Computer graphics rendering algorithms. Ray tracing, geometry, tessellation, acceleration structures, sampling, filtering, shading models, and advanced concepts such as global illumination and programmable graphics hardware. 2 lectures, 1 activity. Formerly CSC 473.
	
		CSC 4740 
		Computer Animation 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 471 or CSC 4710. Basic and advanced algorithms for generating sequences of synthetic images. Interpolation in time and space, procedural and keyframe animation, particle systems, dynamics and inverse kinematics, morphing and video. Course may be offered in classroom-based or online format. 2 lectures, 1 laboratory. Formerly CSC 474.
	
		CSC 4760 
		Real-Time 3D Computer Graphics Software 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 471 or CSC 4710. Advanced algorithms for real-time, interactive, 3D graphics. Modeling using polygon meshes, height fields, and scene graphs. Real-time rendering and shading, visibility processing, level-of-detail, texture and light maps. Collision detection, bounding volumes, and complexity management. Interactive controls, multi-player game technology, and game engine architecture. 2 lectures, 1 laboratory. Formerly CPE/CSC 476.
	
		CSC 4770 
		Special Advanced Topics in Computer Graphics 
		(1-4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 471 or CSC 4710; and consent of instructor. Special aspects of the design, implementation, and analysis of computer graphics. Topics may include rendering, modeling, visualization, animation, virtual reality, computer vision, multimedia, and perception issues. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 lectures. Formerly CSC 478.
	
		CSC 4791 
		Seminars in Graphics 
		(1 unit)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 471 or CSC 4710. Discussions of technical, societal, and ethical aspects of modern computer graphics theory and practice, concentrating on topics not covered in other courses. Repeatable up to 4 units. Credit/No Credit grading only. Course may be offered in classroom-based or online format. 1 seminar.
	
		CSC 4792 
		Research Experience in Graphics 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 471 or CSC 4710; and PHIL 323 or PHIL 3323. Collaborative research activity under faculty supervision on a defined problem. Literature review, prototype development, analysis, documentation. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4793 
		Projects in Graphics 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 471 or CSC 4710; and PHIL 323 or PHIL 3323. Instructor-guided design and implementation of advanced projects in computer graphics. Projects selected from real-world computing problems. Focus on implementation, testing, and analysis of team-based projects. Each offering will select a different project. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4820 
		Natural Language Processing 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: One of the following: CSC 480, CSC 4880, DATA 301, or DATA 3301; or graduate standing and consent of instructor. Recommended: CSC 349 or CSC 3449. Introduction to natural language processing theory; speech processing; review of recent advancements. Concepts include: tokenization, part-of-speech tagging, word-sense disambiguation, natural language understanding, natural language generation, data mining, voice processing, semantic networks, intelligent assistants, computational linguistics, stylistics, language models. 3 lectures, 1 laboratory. Formerly CSC 482.
	
		CSC 4880 
		Artificial Intelligence 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001. Programs and techniques that characterize artificial intelligence. Problem solving, knowledge, reasoning, planning, reasoning under uncertainty, machine learning, ethics. Programming in a high level language. 3 lectures, 1 laboratory. Formerly CSC 480.
	
		CSC 4881 
		Semantic Computing 
		(4 units)
	
Term Typically Offered: SPPrerequisite: CSC 480 or CSC 4880. Definition and reasoning with different types of logics and languages for describing knowledge and querying knowledgebases. Algorithms for creating semantic knowledge and creating word embeddings and topic extraction from natural text. 3 lectures, 1 laboratory.
	
		CSC 4888 
		Computer Vision 
		(4 units)
	
Introduction to fundamentals of computer vision. Subjects include image formation and geometric transformations, filtering, feature detection, pattern recognition, stereo vision, structure-from-motion, and convolutional neural networks. Ethical considerations. 3 lectures, 1 laboratory.
	
		CSC 4891 
		Seminars in Artificial Intelligence and Machine Learning 
		(1 unit)
	
Discussions of technical, societal, and ethical aspects of modern artificial intelligence and/or machine learning theory and practice, concentrating on topics not covered in other courses. Repeatable up to 4 units. Credit/No Credit grading only. Course may be offered in classroom-based or online format. 1 seminar.
	
		CSC 4892 
		Research Experience in Artificial Intelligence and Machine Learning 
		(1-2 units)
	
Collaborative research activity under faculty supervision on a defined problem. Literature review, prototype development, analysis, documentation. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4893 
		Projects in Artificial Intelligence and Machine Learning 
		(1-2 units)
	
Instructor-guided design and implementation of advanced projects in artificial intelligence and machine learning. Projects selected from real-world computing problems. Focus on implementation, testing, and analysis of team-based projects. Each offering will select a different project. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4991 
		Seminars in Game Development 
		(1 unit)
	
Term Typically Offered: F, SPPrerequisite: One of the following: CPE/CSC 371, CSC 378, CSC 3710, or CSC 3780. Discussions of technical, societal, and ethical aspects of game development theory and practice, concentrating on topics not covered in other courses. Repeatable up to 4 units. Credit/No Credit grading only. Course may be offered in classroom-based or online format. 1 seminar.
	
		CSC 4992 
		Research Experience in Game Development 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: One of the following: CPE/CSC 371, CSC 378, CSC 3710, or CSC 3780; and PHIL 323 or PHIL 3323. Collaborative research activity under faculty supervision on a defined problem. Literature review, prototype development, analysis, documentation. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 4993 
		Projects in Game Development 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: One of the following: CPE/CSC 371, CSC 378, CSC 3710, or CSC 3780; and PHIL 323 or PHIL 3323. Instructor-guided design and implementation of advanced projects in game development. Projects selected from real-world computing problems. Focus on implementation, testing, and analysis of team-based projects. Each offering will select a different project. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CSC 5100 
		Modern Software Engineering 
		(3 units)
	
Term Typically Offered: FPrerequisite: Senior standing and CSC 308 or CSC 3100; or graduate standing. Agile software development. Requirements elicitation, specification, and management. Component-based software design. Micro-services, containerization, and cloud-based software. Reliable programming. Test-driven development and code review. DevOps and software product management. Engineering tradeoffs and cost estimation. 3 lectures. Formerly CSC 508.
	
		CSC 5113 
		Computing Education Research and Practice 
		(3 units)
	
Term Typically Offered: F
Prerequisite: Senior standing or graduate standing.
Overview of the current landscape of computing education research and practice, covering key research findings about how people learn computing, issues of diversity and inclusion in computer science, and a discussion of how and why we should teach everyone computing. 3 lectures. Formerly CSC 513.
	
		CSC 5170 
		Special Advanced Topics in Software Engineering 
		(1-4 units)
	
Term Typically Offered: SPPrerequisite: Graduate standing, CSC 308, or CSC 3100; and consent of instructor. Directed group study of special topics in Software Engineering for graduate students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 seminars.
	
		CSC 5201 
		Computer Security and Privacy 
		(3 units)
	
Term Typically Offered: FPrerequisite: Senior standing and CPE/CSC 321 or CPE/CSC 3201; or graduate standing and consent of instructor. Exploration of advanced subjects in computer security and privacy with an emphasis on research. 3 lectures. Formerly CSC 521.
	
		CSC 5210 
		Software Security 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CSC 308 or CSC 3100 and CPE/CSC 321 or CPE/CSC 3201; or graduate standing and consent of instructor. Recommended: One of the following: CSC 421, CSC 424, CSC 4210, CSC 4212, or CSC 4214. Emerging concepts in secure software design, malware analysis, and vulnerability development. Concepts may include threat models, trust management, common vulnerabilities and mitigation techniques, robust software development, isolation of untrusted code, auditability, testing, threat detection, malware analysis, and vulnerability development. Course may be offered in classroom-based or online format. 3 lectures.
	
		CSC 5220 
		Advanced Network Security and Privacy 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 321 or CPE/CSC 3201 and CPE 464 or CPE 4464; or graduate standing. Exploration of network security and design. Particular emphasis will be placed on threat modeling and security mechanisms design. Project exploration of network security through possible theoretical and experimental experience in system design. 3 lectures. Formerly CSC 522.
	
		CSC 5270 
		Special Advanced Topics in Computer Security 
		(1-4 units)
	
Term Typically Offered: FPrerequisite: Graduate standing, CPE/CSC 321, or CPE/CSC 3201; and consent of instructor. Directed group study of special topics in Computer Security for graduate students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 seminars.
	
		CSC 5281 
		System Security 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CSC 364 or CSC 3001 and CPE/CSC 321 or CPE/CSC 3201; or graduate standing. Exploration of system security and design. Vulnerabilities and defenses in components, component interaction, sourcing, and system design. Exploration of system security through a hands-on experience in system design. 2 lectures, 1 laboratory. Formerly CSC 524.
	
		CSC 5370 
		Special Advanced Topics in Programming Languages 
		(1-4 units)
	
Term Typically Offered: FPrerequisite: Graduate standing, CSC 430, or CSC 3300; and consent of instructor. Directed group study of special topics in Programming Languages for graduate students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 seminars.
	
		CSC 5445 
		Advanced Theory of Decidability and Reducibility 
		(2 units)
	
Term Typically Offered: TBDPrerequisite: CSC 445, CSC 3445, or graduate standing. Theory of languages. Theory of decidability and reducibility. 2 lectures. Formerly CSC 540.
	
		CSC 5447 
		Advanced Algorithmic Graph Theory 
		(2 units)
	
Term Typically Offered: FPrerequisite: CSC 349, CSC 3449, or graduate standing. Advanced study of algorithmic graph theory concepts including Eulerian and Hamiltonian graphs; graph colorings, packings, and coverings; matchings; small worlds networks; epidemiological networks; and community structure in networks. 2 seminars.
	
		CSC 5449 
		Advanced Algorithm Design and Analysis 
		(4 units)
	
Term Typically Offered: FPrerequisite: CSC 349 or CSC 3449; or graduate standing and consent of instructor. Advanced study of algorithmic concepts including dynamic programming, network flows, and linear programming. Complexity classes and reductions. NP-complete problems, with the introduction of approximation algorithms. 4 lectures. Formerly CSC 549.
	
		CSC 5500 
		Directed Study 
		(1-4 units)
	
Term Typically Offered: F, SP
CR/NC
Prerequisite: Graduate standing and consent of instructor.
Individual directed study of advanced concepts. Repeatable up to 4 units. Credit/No Credit grading only. Formerly CSC 500.
	
		CSC 5550 
		Research in Operating Systems 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 453 or CPE/CSC 4553; or graduate standing and consent of instructor. Exploration of advanced concepts in emerging operating systems technologies; focus on leading edge operating systems research. 3 lectures. Formerly CSC 550.
	
		CSC 5570 
		Special Advanced Topics 
		(1-4 units)
	
Term Typically Offered: TBD
Prerequisite: Graduate standing, satisfactory preparation in computer science, and consent of instructor.
Directed group study of special topics for graduate students. Topics will consist of those not specific to 
CSC 5170, 
CSC 5270, 
CSC 5370, 
CSC 5666, 
CSC 5670, 
CSC 5770, and 
CSC 5870. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 seminars. Formerly CSC 570.
	
		CSC 5571 
		Special Advanced Laboratory 
		(1-2 units)
	
Term Typically Offered: TBD
Prerequisite: Graduate standing and consent of instructor.
Directed group laboratory study of special topics for graduate students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 2 laboratories.
	
		CSC 5572 
		Special Advanced Activity 
		(1-2 units)
	
Term Typically Offered: TBD
Prerequisite: Consent of instructor.
Directed group activity study of special topics for graduate students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 2 activities.
	
		CSC 5590 
		Thesis Preparation 
		(3 units)
	
Term Typically Offered: F, SP
Prerequisite: Graduate standing.
Preparation for conducting independent research in the field of computer science, through discussions, selected readings, and student presentations. 3 lectures. Formerly CSC 590.
	
		CSC 5591 
		Research in Computer Science 
		(2 units)
	
Term Typically Offered: F, SP
Prerequisite: Consent of instructor.
Individual research or activity under faculty supervision, work in preparation for the master's thesis. Formerly CSC 596.
	
		CSC 5595 
		Cooperative Education Experience 
		(1-2 units)
	
Term Typically Offered: F, SP, SU
CR/NC
Prerequisite: Graduate standing and consent of instructor.
Advanced study analysis and full-time work experience in student's career field; innovations, practices, and problems in computing. Must have demonstrated ability to do independent work and research in career field. A fully-developed formal report and evaluation by work supervisor required. Repeatable up to 4 units. Credit/No Credit grading only. Formerly CSC 595.
	
		CSC 5599 
		Thesis 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: One of the following: CSC 461, CSC 596, CSC 4461, or CSC 5591; and CSC 590 or CSC 5590; and consent of instructor. Individual research or activity under faculty supervision leading to an acceptable Master's thesis. Formerly CSC 599.
	
		CSC 5660 
		Advanced Database Management Systems 
		(4 units)
	
Term Typically Offered: FPrerequisite: Graduate standing, CSC 365, or CSC 3665. Current concepts in centralized and distributed database management systems. Covers aspects of both secondary-storage and main-memory databases, with emphasis on implementation details, such as physical database design, query optimization and execution, concurrency control, and logging and recovery. 4 lectures. Formerly CSC 560.
	
		CSC 5666 
		Advanced Machine Learning 
		(4 units)
	
Advanced concepts in the areas of machine learning, information retrieval and intelligent analysis of information. Repeatable up to 8 units. 4 lectures. Formerly CSC 566.
	
		CSC 5669 
		Distributed Computing 
		(4 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; or graduate standing and consent of instructor. Principles and practices in distributed computing. Distributed algorithms. Leader Election consensus protocols. Failure Detection with Gossip Protocol. Fault tolerance and replication. Consistency protocols. Distributed File Systems. Distributed Systems for Scientific Applications. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Crosslisted as CPE/
CSC 5669. Formerly CPE/CSC 569.
	
		CSC 5670 
		Special Advanced Topics in Computer Systems 
		(1-4 units)
	
Term Typically Offered: TBDPrerequisite: Graduate standing, CPE/CSC 453, or CPE/CSC 4553; and consent of instructor. Directed group study of special topics in Computer Systems for graduate students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 seminars.
	
		CSC 5710 
		Computer Graphics 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 471 or CSC 4710; or graduate standing and consent of instructor. Advanced concepts in computer graphics with emphasis on leading edge computer graphics technologies and advanced topics in graphics fundamentals. Course may be offered in classroom-based or online format. 2 lectures, 1 laboratory. Formerly CSC 572.
	
		CSC 5740 
		Advanced Compute Shaders in Computer Graphics 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 471, CSC 4710, or graduate standing. Advanced methods and techniques that utilize general-purpose computing on modern graphics processing units (GPUs) to achieve state-of-the-art effects with physics, animation and lighting. Parallel processing paradigms on the GPU with compute shaders. Course may be offered in classroom-based or online format. 2 lectures, 1 laboratory. Formerly CSC 574.
	
		CSC 5770 
		Special Advanced Topics in Computer Graphics 
		(1-4 units)
	
Term Typically Offered: TBDPrerequisite: Graduate standing, CPE/CSC 471, or CSC 4710; and consent of instructor. Directed group study of special topics in Computer Graphics for graduate students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 seminars.
	
		CSC 5820 
		Computational Linguistics 
		(4 units)
	
Term Typically Offered: SPPrerequisite: CSC 482 or CSC 4820. Research-based review of recent advancements in computational linguistics and natural language processing. Concepts selected from: language morphology, natural language generation, feature extraction and unification, meaning representations, stylistics, discourse analysis, voice analysis and machine learning methods. 3 lectures, 1 laboratory. Formerly CSC 582.
	
		CSC 5870 
		Special Advanced Topics in Artificial Intelligence 
		(1-4 units)
	
Term Typically Offered: TBDPrerequisite: Graduate standing, CSC 480, or CSC 4880; and consent of instructor. Directed group study of special topics in Artificial Intelligence for graduate students. The Class Schedule will list topic selected. Repeatable up to 8 units. 1 to 4 seminars.
	
		CSC 5880 
		Artificial Intelligence 
		(4 units)
	
Term Typically Offered: SPPrerequisite: Senior standing and CSC 480 or CSC 4880; or graduate standing and consent of instructor. Current research in the field of artificial intelligence with emphasis on cooperative agents, distributed agents, and decision making in complex, concurrent environments. AI programming in a distributed environment. 3 lectures, 1 laboratory. Formerly CSC 580.
	
		CSC 5887 
		Advanced Deep Learning 
		(4 units)
	
Term Typically Offered: SPPrerequisite: One of the following: CSC 487, CSC 4667, DATA/CSC 4610, or graduate standing. Current research in the field of deep learning. Subjects such as supervised, unsupervised, and semi-supervised learning; representation learning; probabilistic and generative models; reinforcement learning; transformer models; uncertainty; application domains, including image, audio, and natural language processing; ethical concerns and fairness. 4 lectures. Formerly CSC 587.