Computer Science (CSC)
CSC 101 Introduction to Computing (Units: 3)
A comprehensive introduction to computing and programming. No prior programming experience is required. Explore the use of computing in everyday life and its impact on our society, and apply foundational ideas of computing to frame a problem and devise a solution using Java programming language.
CSC 110 Computational Thinking and Quantitative Reasoning (Units: 3)
Prerequisites: Category I or II placement for QR/Math, or satisfactory completion of ELM requirement, or MATH 70 or ESM 70 with a grade of C or better. Students with Category III or IV placement for QR/Math or students who have not passed MATH 70 or ESM 70 with a C or better must concurrently enroll in MATH 111.
(Note: For this course to satisfy General Education, students must earn a grade of C- or CR or higher.)
Course Attributes:
- B4: Math/QR
CSC 215 Intermediate Computer Programming (Units: 4)
Prerequisite: CSC 101 with a grade of C or better.
CSC 220 Data Structures (Units: 3)
Prerequisite: CSC 210 or CSC 215 with a grade of C or better.
CSC 221 Data Structure Lab (Unit: 1)
Prerequisites: CSC 210 or CSC 215; concurrent enrollment in CSC 220.
CSC 230 Discrete Mathematical Structures for Computer Science (Units: 3)
Prerequisites: CSC 210 or CSC 215, and MATH 227 (may be taken concurrently) with grades of C or better.
CSC 256 Machine Structures (Units: 3)
Prerequisite: CSC 230 with a grade of C or better.
CSC 300GW Ethics, Communication, and Tools for Software Development - GWAR (Units: 3)
Prerequisites: Restricted to upper-division Computer Science majors and minors; GE Area A2; CSC 210 or CSC 215.
Course Attributes:
- Graduation Writing Assessment
CSC 306 An Interdisciplinary Approach to Computer Programming (Units: 3)
Prerequisites: Restricted to Biology, Chemistry, and Biochemistry majors and Certificate in Data Science and Machine Learning for Biotechnology Professionals students; upper-division standing; or permission of the instructor.
CSC 307 An Interdisciplinary Approach to Web Programming (Units: 3)
Prerequisite: Upper-division standing or permission of the instructor.
CSC 309 Computer Programming (Units: 3)
Prerequisite: MATH 226 or permission of the instructor.
CSC 310 Computer Programming Lab (Unit: 1)
Prerequisite: Concurrent enrollment in CSC 309 is recommended.
CSC 311 Data Structures for Data Science Application Development (Units: 3)
Prerequisite: CSC 306* or equivalent.
CSC 317 Introduction to Web Software Development (Units: 3)
Prerequisite: CSC 220 or permission of the instructor.
CSC 340 Programming Methodology (Units: 3)
Prerequisites: CSC 220 and CSC 230 with grades of C or better.
CSC 408 Machine Learning and Data Science for Personalized Medicine (Units: 3)
Prerequisite: CSC 220* or CSC 311* or equivalent; a college-level biology course; or permission of the instructor.
CSC 411 Intermediate Machine Learning for Interdisciplinary Data Scientists (Units: 3)
Prerequisite: CSC 220 or CSC 311 or equivalent; a college-level biology course; or permission of the instructor.
CSC 412 Advanced Software Lab (Unit: 1)
Prerequisites: CSC 220; concurrent enrollment in CSC 340 recommended.
CSC 413 Software Development (Units: 3)
Prerequisites: CSC 220 and CSC 317 with grades of C or better.
CSC 415 Operating System Principles (Units: 3)
Prerequisites: CSC 256, CSC 340*, MATH 324, and PHYS 230 with grades of C or better or graduate standing*.
CSC 509 Data Science and Machine Learning for Medical Image Analysis (Units: 3)
Prerequisite: CSC 411 (may be taken concurrently).
CSC 510 Analysis of Algorithms I (Units: 3)
Prerequisites: CSC 340* and MATH 324* with grades of C or better.
CSC 520 Theory of Computing (Units: 3)
Prerequisites: CSC 220 and CSC 230; MATH 225 or MATH 325 with grades of C or better.
CSC 600 Programming Paradigms and Languages (Units: 3)
Prerequisites: CSC 413* and CSC 510* with grades of C or better or graduate-level standing*.
CSC 601 Data Science and Machine Learning for Biotechnology Seminar Series (Unit: 1)
Featuring scientists in related areas from Genentech or other biotechnology industry or academia, explore a broad view of the topics on Drug design, modeling to predict drug performance, or new drug approval processes. (CR/NC grading only)CSC 602 Interview Preparation for Data Science and Machine Learning for Biotechnology Opportunities (Units: 2)
Preparation for interviews for data science-related internships and full-time positions in industry. Emphasis on oral and written communication common in coding interviews for problem-solving. Development of interview skills such as how to communicate about technical aspects, describe a problem, and articulate issues. Practice of key problem-solving strategies specific to technical/coding interviews in Biotechnology. (CR/NC grading only)CSC 615 UNIX Programming (Units: 3)
Prerequisite: CSC 415* with a grade of C or better or permission of the instructor.
CSC 620 Natural Language Technologies (Units: 3)
Prerequisite for CSC 820: Graduate standing or permission of the instructor.
Prerequisites for CSC 620: Upper-division standing; CSC 413* with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 820/CSC 620 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 621 Biomedical Imaging and Analysis (Units: 3)
Prerequisite for CSC 821: Graduate standing or permission of the instructor.
Prerequisites for CSC 621: Upper-division standing; CSC 510*; MATH 225* or MATH 325* with grades of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 821/CSC 621 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 630 Computer Graphics Systems Design (Units: 3)
Prerequisite for CSC 830: MS in Computer Science students.
Prerequisites for CSC 630: CSC 413* and either MATH 225* or MATH 325* with grades of C or better; a GPA of 3.0 or better; or permission of the instructor.
(CSC 830/CSC 630 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
Course Attributes:
- CSC 630/830
CSC 631 Multiplayer Game Development (Units: 3)
Prerequisite for CSC 831: Graduate standing or permission of the instructor.
Prerequisites for CSC 631: Upper-division standing; CSC 413*; GPA of 3.0 or higher; or permission of the instructor.
(CSC 831/CSC 631 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 641 Computer Performance Evaluation (Units: 3)
Prerequisite for CSC 841: Graduate standing or permission of the instructor.
Prerequisites for CSC 641: Upper-division standing; CSC 415*; GPA of 3.0 or higher; or permission of the instructor.
(CSC 841/CSC 641 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 642 Human-Computer Interaction (Units: 3)
Prerequisite for CSC 842: Graduate standing or permission of the instructor.
Prerequisite for CSC 642: Upper-division standing; CSC 413* with a grade of C or better or permission of the instructor.
(CSC 842/CSC 642 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 645 Computer Networks (Units: 3)
Prerequisites: Upper-division standing; CSC 415* with a grade of C or better; GPA of 3.0 or better; or permission of the instructor.
CSC 647 Introduction to Quantum Computing and Quantum Information Science (Units: 3)
Prerequisite for CSC 747: Graduate standing or permission of the instructor.
Prerequisites for CSC 647: Upper-division standing; CSC 415* and either MATH 225* or MATH 325* with a grade of C or better; CSC 308, CSC 309, and CSC 656 recommended; GPA of 3.0 or higher; or permission of the instructor.
(CSC 647/CSC 747 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 648 Software Engineering (Units: 3)
Prerequisite for CSC 848: Graduate standing or permission of the instructor.
Prerequisites for CSC 648: Upper-division standing; CSC 317* and CSC 413* with grades of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 848/CSC 648 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 649 Search Engines (Units: 3)
Prerequisite for CSC 849: Graduate standing or permission of the instructor.
Prerequisite for CSC 649: Restricted to upper-division standing or CSC 413* with a grade of B or better or permission of the instructor.
(CSC 849/CSC 649 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 651 System Administration (Units: 3)
Prerequisites: CSC 413* and CSC 415* with grades of C or better.
CSC 652 Introduction to Security and Data Privacy (Units: 3)
Prerequisite for CSC 852: Graduate standing or permission of the instructor.
Prerequisite for CSC 652: CSC 415* with a grade of C or better or permission of the instructor.
(CSC 852/CSC 652 [formerly CSC 650] is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 653 Network Security (Units: 3)
Prerequisite for CSC 853: Graduate standing or permission of the instructor.
Prerequisites for CSC 653: Upper-division standing; CSC 415* with a grade of C or better; GPA of 3.0 or better; or permission of the instructor.
(CSC 853/CSC 653 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 656 Computer Organization (Units: 3)
Prerequisite: CSC 415* (may be taken concurrently) or permission of the instructor.
CSC 657 Bioinformatics Computing (Units: 3)
Prerequisite: Upper-division or graduate standing in a science program or permission of the instructor.
(CSC 857/CSC 657 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 658 Programming Cafe (Units: 3)
Prerequisite: CSC 413 with a grade C or better or permission of the instructor.
CSC 664 Multimedia Systems (Units: 3)
Prerequisite for CSC 864: Graduate standing or permission of the instructor.
Prerequisites for CSC 664: Upper-division standing; CSC 413* with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 864/CSC 664 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 665 Artificial Intelligence (Units: 3)
Prerequisite for CSC 865: Graduate standing or permission of the instructor.
Prerequisite for CSC 665: Restricted to upper-division standing or CSC 413* with a grade of C or better or permission of the instructor.
(CSC 665/CSC 865 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 667 Internet Application Design and Development (Units: 3)
Prerequisite for CSC 867: Graduate standing or permission of the instructor.
Prerequisites for CSC 667: Upper-division standing; CSC 413* with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 867/CSC 667 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 668 Advanced Object Oriented Software Design and Development (Units: 3)
Prerequisite for CSC 868: Graduate standing or permission of the instructor.
Prerequisites for CSC 668: Senior standing; CSC 413* with a grade of C or better; GPA of 3.0 or better; or permission of the instructor.
(CSC 868/CSC 668 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 671 Deep Learning (Units: 3)
Prerequisite for CSC 871: Graduate standing or permission of the instructor.
Prerequisites for CSC 671: Upper-division standing; CSC 510*; MATH 225 or MATH 325 with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 871/CSC 671 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 675 Introduction to Database Systems (Units: 3)
Prerequisite for CSC 775: Graduate standing or permission of the instructor.
Prerequisites for CSC 675: Upper-division standing; CSC 413* with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 775/CSC 675 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 676 Soft Computing and Decision Support Systems (Units: 3)
Prerequisite for CSC 876: Graduate standing or permission of the instructor.
Prerequisite for CSC 676: Upper-division standing; GPA of 3.0 or better; or permission of the instructor.
(CSC 876/CSC 676 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 680 Application Development for Mobile Devices (Units: 3)
Prerequisite for CSC 780: Graduate Computer Science students or permission of the instructor.
Prerequisites for CSC 680: Restricted to senior Computer Science majors; CSC 415* with a grade of C or better; 3.0 GPA or higher; or permission of the instructor.
(CSC 780/CSC 680 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 688 AI Entrepreneurship (Units: 3)
Prerequisite: CSC 317 or equivalent.
CSC 690 Interactive Multimedia Application Development (Units: 3)
Prerequisite: CSC 340* with a grade of C or better or permission of the instructor.
CSC 694 Cooperative Education: Computer Science (Units: 1-3)
Prerequisite: Permission of the instructor.
CSC 697 Senior Project in Computer Science (Units: 3)
Prerequisites: CSC 415 and CSC 510, or CSC 648; or permission of the instructor.
CSC 698 Topics in Computing (Units: 3)
Prerequisite: Upper-division standing or permission of the instructor.
Topics:
- Interactive Multimedia Development
- Augmented Reality Software Systems
- Research Topics in Computing Applications
- Advanced Topics in Computing Applications
- Applications of Parallel Computations
- Real-Time Cross-Platform Application Development
- Principles of Information Security and Privacy
- Software Design, Development, and Pedagogy
- Information Visualization: Tools and Techniques
CSC 699 Independent Study (Units: 1-3)
Prerequisites: Permission of the department and instructor. An approved study proposal must be on file by the time of registration.
CSC 720 Advanced Operating Systems (Units: 3)
Prerequisite: Graduate standing or permission of the instructor.
CSC 746 High-Performance Computing (Units: 3)
Prerequisite: Graduate standing or permission of the instructor.
CSC 747 Introduction to Quantum Computing and Quantum Information Science (Units: 3)
Prerequisite for CSC 747: Graduate standing or permission of the instructor.
Prerequisites for CSC 647: Upper-division standing; CSC 415* and either MATH 225* or MATH 325* with a grade of C or better; CSC 308, CSC 309, and CSC 656 recommended; GPA of 3.0 or higher; or permission of the instructor.
(CSC 647/CSC 747 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 775 Introduction to Database Systems (Units: 3)
Prerequisite for CSC 775: Graduate standing or permission of the instructor.
Prerequisites for CSC 675: Upper-division standing; CSC 413* with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 775/CSC 675 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 780 Application Development for Mobile Devices (Units: 3)
Prerequisite for CSC 780: Graduate Computer Science students or permission of the instructor.
Prerequisites for CSC 680: Restricted to senior Computer Science majors; CSC 415* with a grade of C or better; 3.0 GPA or higher; or permission of the instructor.
(CSC 780/CSC 680 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 805 Data Visualization: Concepts, Tools, Techniques, and Paradigms (Units: 3)
Prerequisites: Restricted to graduate Computer Science students. Senior undergraduate Computer Science majors may enroll with the permission of the instructor.
CSC 810 Analysis of Algorithms II (Units: 3)
Prerequisite: Graduate standing or permission of the instructor.
CSC 820 Natural Language Technologies (Units: 3)
Prerequisite for CSC 820: Graduate standing or permission of the instructor.
Prerequisites for CSC 620: Upper-division standing; CSC 413* with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 820/CSC 620 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 821 Biomedical Imaging and Analysis (Units: 3)
Prerequisite for CSC 821: Graduate standing or permission of the instructor.
Prerequisites for CSC 621: Upper-division standing; CSC 510*; MATH 225* or MATH 325* with grades of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 821/CSC 621 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 825 Advanced Automata Theory (Units: 3)
Prerequisite: Graduate standing or permission of the instructor.
CSC 830 Computer Graphics Systems Design (Units: 3)
Prerequisite for CSC 830: MS in Computer Science students.
Prerequisites for CSC 630: CSC 413* and either MATH 225* or MATH 325* with grades of C or better; a GPA of 3.0 or better; or permission of the instructor.
(CSC 830/CSC 630 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
Course Attributes:
- CSC 630/830
CSC 831 Multiplayer Game Development (Units: 3)
Prerequisite for CSC 831: Graduate standing or permission of the instructor.
Prerequisites for CSC 631: Upper-division standing; CSC 413*; GPA of 3.0 or higher; or permission of the instructor.
(CSC 831/CSC 631 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 841 Computer Performance Evaluation (Units: 3)
Prerequisite for CSC 841: Graduate standing or permission of the instructor.
Prerequisites for CSC 641: Upper-division standing; CSC 415*; GPA of 3.0 or higher; or permission of the instructor.
(CSC 841/CSC 641 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 842 Human-Computer Interaction (Units: 3)
Prerequisite for CSC 842: Graduate standing or permission of the instructor.
Prerequisite for CSC 642: Upper-division standing; CSC 413* with a grade of C or better or permission of the instructor.
(CSC 842/CSC 642 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 845 Advanced Computer Networks (Units: 3)
Prerequisite: Graduate standing or permission of the instructor.
CSC 847 Cloud and Distributed Computing: Concepts and Applications (Units: 3)
Prerequisites: Restricted to senior and graduate Computer Science and Data Science and Artificial Intelligence students; permission of the instructor.
CSC 848 Software Engineering (Units: 3)
Prerequisite for CSC 848: Graduate standing or permission of the instructor.
Prerequisites for CSC 648: Upper-division standing; CSC 317* and CSC 413* with grades of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 848/CSC 648 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 849 Search Engines (Units: 3)
Prerequisite for CSC 849: Graduate standing or permission of the instructor.
Prerequisite for CSC 649: Restricted to upper-division standing or CSC 413* with a grade of B or better or permission of the instructor.
(CSC 849/CSC 649 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 852 Introduction to Security and Data Privacy (Units: 3)
Prerequisite for CSC 852: Graduate standing or permission of the instructor.
Prerequisite for CSC 652: CSC 415* with a grade of C or better or permission of the instructor.
(CSC 852/CSC 652 [formerly CSC 650] is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 853 Network Security (Units: 3)
Prerequisite for CSC 853: Graduate standing or permission of the instructor.
Prerequisites for CSC 653: Upper-division standing; CSC 415* with a grade of C or better; GPA of 3.0 or better; or permission of the instructor.
(CSC 853/CSC 653 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 857 Bioinformatics Computing (Units: 3)
Prerequisite: Upper-division or graduate standing in a science program or permission of the instructor.
(CSC 857/CSC 657 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 859 AI Explainability and Ethics (Units: 3)
Prerequisite: Graduate standing or permission of the instructor.
CSC 864 Multimedia Systems (Units: 3)
Prerequisite for CSC 864: Graduate standing or permission of the instructor.
Prerequisites for CSC 664: Upper-division standing; CSC 413* with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 864/CSC 664 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 865 Artificial Intelligence (Units: 3)
Prerequisite for CSC 865: Graduate standing or permission of the instructor.
Prerequisite for CSC 665: Restricted to upper-division standing or CSC 413* with a grade of C or better or permission of the instructor.
(CSC 665/CSC 865 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 867 Internet Application Design and Development (Units: 3)
Prerequisite for CSC 867: Graduate standing or permission of the instructor.
Prerequisites for CSC 667: Upper-division standing; CSC 413* with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 867/CSC 667 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 868 Advanced Object Oriented Software Design and Development (Units: 3)
Prerequisite for CSC 868: Graduate standing or permission of the instructor.
Prerequisites for CSC 668: Senior standing; CSC 413* with a grade of C or better; GPA of 3.0 or better; or permission of the instructor.
(CSC 868/CSC 668 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 869 Data Mining (Units: 3)
Prerequisite: Graduate standing or permission of the instructor.
CSC 871 Deep Learning (Units: 3)
Prerequisite for CSC 871: Graduate standing or permission of the instructor.
Prerequisites for CSC 671: Upper-division standing; CSC 510*; MATH 225 or MATH 325 with a grade of C or better; GPA of 3.0 or higher; or permission of the instructor.
(CSC 871/CSC 671 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 872 Pattern Analysis and Machine Intelligence (Units: 3)
Prerequisite: Graduate standing or permission of the instructor.
CSC 874 Topics in Big Data Analysis (Units: 3)
Prerequisite: Graduate standing or permission of the instructor.
CSC 876 Soft Computing and Decision Support Systems (Units: 3)
Prerequisite for CSC 876: Graduate standing or permission of the instructor.
Prerequisite for CSC 676: Upper-division standing; GPA of 3.0 or better; or permission of the instructor.
(CSC 876/CSC 676 is a paired course offering. Students who complete the course at one level may not repeat the course at the other level.)
CSC 878 Big Data Platforms and Systems (Units: 3)
Prerequisite: Restricted to graduate Computer Science students or permission of the instructor.
CSC 890 Graduate Seminar (Units: 3)
Prerequisite: Permission of the instructor or graduate advisor.
Topics:
- Selected Topics in Computing for Life Science
- Health Informatics
- Advanced Information Security and Privacy
- Advanced Artificial Intelligence
- Data Visualization
- Big Data and Cybersecurity
- Special Topics in Technology and Society
- Software Engineering and Industry Practices
- Quantum Computing
- Technical Entrepreneurship
- Machine Learning for Cybersecurity
CSC 893 Supervised Industrial Research (Unit: 1)
Prerequisite: Permission of the instructor.
CSC 895 Applied Research Project (Units: 3)
Prerequisites: Permission of the instructor and approval of Advancement to Candidacy (ATC) for the MS in CS and Culminating Experience (CE) forms by Graduate Studies. Advancement to candidacy and Proposal for Culminating Experience Requirement forms must be approved by the Graduate Division before registration.
CSC 897 Research (Units: 3-6)
Prerequisite: Permission of the Computer Science Department.
CSC 898 Master's Thesis (Units: 3)
Prerequisites: Permission of the instructor and graduate adviser and approval of Advancement to Candidacy (ATC) for the Master of Science in Computer Science and Culminating Experience (CE) forms by Graduate Studies. Advancement to Candidacy (ATC) and Proposal for Culminating Experience Requirement forms must be approved by the Graduate Division before registration.
CSC 899 Independent Study (Units: 1-3)
Prerequisite: Approval of the department and instructor.