Computer Science
College of Science and Engineering
Dean: Dr. Carmen Domingo
Department of Computer Science
TH 906
Phone: (415) 338-1008
Email: csgrad@sfsu.edu
Website: http://cs.sfsu.edu
Chair: Arno Puder
Graduate Coordinator: Yang
Graduate Admissions: Okada
Undergraduate Advisors: AlJarrah, Dujmovic, Fazli, Humayoun, Kulkarni, Singh, Song, Yue
Program Scope
The primary mission of the Department of Computer Science is to prepare students for careers as software professionals and graduate studies in computer science and related fields. The department offers a broad curriculum covering the major areas of the computing discipline, integrated with soft skills such as teamwork and written/oral communication; students also gain experience working on group projects. Students are exposed to the fundamentals of computing architecture and computing theory, and focus their studies on the areas of software and systems development. Faculty work directly with students to help them develop the skills and knowledge of computing professionals.
Department faculty are committed to teaching excellence. They remain current in the rapidly changing field of computing technology through continuing research and publications, direct consultation with local industries, and seminar programs that bring top researchers and industry leaders to campus to speak on current developments in the field. The Supervised Industrial Research Program, Practicum option, and other mechanisms provide opportunities for graduate students to complement their academic learning with real-world experience.
The department has an additional commitment to sharing its knowledge and skills with the rest of the University community, with local schools, and with community-based organizations in the Bay Area.
The Bachelor of Science program stresses a basic foundation in mathematics and physics, and a thorough study of the fundamentals of the discipline: software development, computer architecture, operating systems, programming languages, algorithms, and the theoretical foundations of computer science. A wide variety of elective courses such as mobile development, web/internet applications, bioinformatics, database systems, artificial intelligence, computer graphics, game development, and software engineering allow students to specialize in selected areas. Ethical and social issues of computing are discussed throughout the curriculum. Senior courses include group projects to better prepare students for future job markets. Courses are updated or added regularly to provide necessary training in the latest software technologies.
The Master of Science in Computer Science prepares students for a wide variety of careers in computing or related industries as well as for advanced study toward Ph.D. degrees. Our program combines a solid and practical curriculum with high-quality research and project-based activities. In addition to a general core covering the breadth of the computing discipline, students may focus on software engineering in globally distributed environments, computing applications for biotechnology and the life sciences, data mining/big data, and business applications.
Our faculty maintain active publication records, with significant funding from government agencies (NSF, NIH, Department of Labor, etc.) and industry (Genentech, Microsoft, IBM, Arista Networks, Mozilla, etc.). Students actively engage in research projects, write papers, attend conferences, and participate in funding proposals. SF State’s Center for Computing for Life Sciences (http://cs.sfsu.edu/ccls/index.html) and several specialized laboratories provide research and project focus, as well as opportunities to collaborate with faculty and students from other SF State departments and industry. A new Entrepreneurship Program and Developers Prize supports the development of student projects into business or non-profit ventures.
Computing Facilities
Central Facilities
- A network of Mac, Linux, and PC servers supported by SF State Information Technology Services
- A Linux server (unixlab) supported by SF State Information Technology Services, used for Computer Science courses
- Workstation labs in the SF State J. Paul Leonard Library and around campus
General Undergraduate Computing Facilities
- Intel servers (Windows and Linux)
- Workstation laboratories with Mac, Windows, and Linux desktops
Specialized Centers, Laboratories, and Computing Resources
- Center for Computing for Life Sciences (including Amazon cloud servers and 40-node DELL cluster)
- Multimedia and Visualization Laboratory
- Biocomputing and Media Research Group
- Biomedical Image and Data Analysis Lab
- Virtual Computing: VMware GSX Server, Microsoft VirtualPC Server
- High-Performance Computing server with NVIDIA Tesla and Titan GPUs
Career Alternatives
- Mobile application developer
- Web and internet application developer
- Game developer
- Bioinformatics Developer
- Data science/data mining developer
- Software Engineer
- Quality assurance engineer
- Manager of software development teams
- Systems programmer/administrator
- Computer network specialist
- System security and/or performance manager
- Application software designer
- Database designer/programmer/administrator
- Programmer in scientific or business applications
Professor
JOZO J. DUJMOVIC (1994), Professor of Computer Science; B.S. (1964), M.S. (1973), Ph.D. (1976), University of Belgrade, Yugoslavia.
WILLIAM TSUN-YUK HSU (1992), Professor of Computer Science; B.S. (1983), M.S. (1985), Purdue University; Ph.D. (1992), University of Illinois.
KAZUNORI OKADA (2006), Professor of Computer Science; B.E. (1992), Nagoya University, Japan; M.S. (1996), Ph.D. (2001), University Southern California.
DRAGUTIN PETKOVIC (2003), Professor of Computer Science; B.S. (1976), M.S. (1979), University of Belgrade, Yugoslavia; Ph.D. (1983), University of California, Irvine.
ARNO PUDER (2008), Professor of Computer Science; Diploma (1993), University of Kaiserslautern, Germany; Ph.D. (1997), University of Frankfurt, Germany
RAHUL SINGH (2004), Professor of Computer Science; M.S.E., Moscow Power Engineering Institute; M.S., Ph.D. (1999), University of Minnesota.
C. S. (JAMES) WONG (1990), Professor of Computer Science; B.S. (1984), University of Toronto; M.S. (1986), Southwest Texas State University; Ph.D. (1990), The University of Texas, Dallas.
ILMI YOON (2000), Professor of Computer Science; B.S. (1992), Yonsei University (Korea); M.S. (1966), Ph.D., (2000), University of Southern California.
Associate Professor
ANAGHA K. KULKARNI (2013), Associate Professor of Computer Science; B.E. (2001), University of Pune, India; M.S. (2006), University of Minnesota; Ph.D. (2013), Carnegie Mellon University.
HUI YANG (2006), Associate Professor of Computer Science; B.S. (1993), Huazhong University, China; M.S. (2002), Ph.D. (2006), Ohio State University.
HAO YUE (2015), Associate Professor of Computer Science; B.Engr. (2009), Xidian University (China); Ph.D. (2015), University of Florida.
Assistant Professor
ABEER ALJARRAH (2018), Assistant Professor of Computer Science; B.Sc. (2005) Jordan University of Science and Technology, M.Sc. (2010), Yarmouk University; Ph.D. (2018), University of North Carolina at Charlotte.
POOYAN FAZLI (2018), Assistant Professor of Computer Science; B.Sc. (2003), M.Sc. (2006), Amirkabir University of Technology; Ph.D. (2013), Postdoctoral Fellow (2013-2014), University of British Columbia; Postdoctoral Research Fellow (2014-2015), Carnegie Mellon University.
SHAHRUKH HUMAYOUN (2019), Assistant Professor of Computer Science; B.Sc. (2001), University of the Punjab; M.Sc. (2004), University of York; Ph.D. (2011), Sapienza University of Rome.
TIMOTHY SUN (2020), Assistant Professor of Computer Science; B.S. (2013), Ph.D. (2019), Columbia University.
JINGYI WANG (2019), Assistant Professor of Computer Science; B.S. (2012), Nankai University; M.S. (2015), Auburn University; Ph.D. (2019), University of Houston.
Lecturers
Bhaskar, Erwin, Esselmann, Gibson, Hasan, Jones, Kalinin, Kang, Kriese, Mehta, Mogos, Ortiz-Costa, Parra, Phyo, Pico, Pinera, Roberts, Scott, Sikder, Souza, Ta, Tomasevich, Tuttle, Wall
CSC 101 Computers for Everyone (Units: 3)
Comprehensive and basic overview of computers and their use for everyday tasks such as information retrieval, internet, writing, presentations, communication, web publishing, e-commerce, entertainment, computation. No prior knowledge required.
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 112.
(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 203 JAVA Programming (Units: 3)
Prerequisite: CSC 210 or consent of the instructor.
CSC 206 Python Programming (Units: 3)
Prerequisite: CSC 210 or consent of the instructor.
CSC 208 C++ for Java Programmers (Unit: 1)
Prerequisites: Java programming courses or consent of the instructor.
CSC 210 Introduction to Computer Programming (Units: 3)
Prerequisite: Concurrent enrollment in CSC 211 required for Computer Science majors and recommended for non-majors.
CSC 211 Introduction to Software Lab (Unit: 1)
Prerequisite: Concurrent enrollment in CSC 210.
CSC 219 Data Structures for Data Science Application Development (Units: 3)
Prerequisite: CSC 210 or equivalent.
CSC 220 Data Structures (Units: 3)
Prerequisite: CSC 210 or CSC 306 or CSC 309 with a grade of C or better.
CSC 221 Data Structure Lab (Unit: 1)
Prerequisites: CSC 210 and CSC 211; concurrent enrollment in CSC 220.
CSC 230 Discrete Mathematical Structures for Computer Science (Units: 3)
Prerequisites: CSC 210 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.
Course Attributes:
- Graduation Writing Assessment
CSC 306 An Interdisciplinary Approach to Computer Programming (Units: 3)
Prerequisites: Restricted to Biology, Chemistry, and Biochemistry majors and pre-majors; upper-division standing; or consent of the instructor.
CSC 307 An Interdisciplinary Approach to Web Programming (Units: 3)
Prerequisite: Upper-division standing or consent of the instructor.
CSC 308 Introduction to Machine Learning for Interdisciplinary Data Scientists (Units: 3)
Prerequisite: CSC 219.
CSC 309 Computer Programming (Units: 3)
Prerequisite: MATH 226 or consent of the instructor.
CSC 310 Computer Programming Lab (Unit: 1)
Prerequisite: Concurrent enrollment in CSC 309 is recommended.
CSC 317 Introduction to Web Software Development (Units: 3)
Prerequisite: CSC 220 or consent of the instructor.
CSC 340 Programming Methodology (Units: 3)
Prerequisites: CSC 220, CSC 230, and MATH 227 with grades of C or better.
CSC 412 Advanced Software Lab (Unit: 1)
Prerequisites: CSC 220; concurrent enrollment in CSC 340 recommended.
CSC 413 Software Development (Units: 3)
Prerequisite: CSC 220 with grade 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 508 Machine Learning and Data Science for Personalized Medicine (Units: 3)
Prerequisite: CSC 308.
CSC 509 Data Science and Machine Learning for Medical Image Analysis (Units: 3)
Prerequisite: CSC 308.
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, CSC 230, and 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 615 UNIX Programming (Units: 3)
Prerequisite: CSC 415 with a grade of C or better or consent of the instructor.
CSC 620 Natural Language Technologies (Units: 3)
Prerequisite for CSC 820: Graduate standing or consent 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 consent 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)
Prerequisites for CSC 821: Graduate standing or consent of the instructor.
Prerequisites for CSC 621: Upper-division standing; CSC 510 and MATH 325 with grades of C or better; GPA of 3.0 or higher; or consent 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)
Prerequisites: CSC 340 and MATH 325 with grades of C or better.
CSC 631 Multiplayer Game Development (Units: 3)
Prerequisite for CSC 831: Graduate standing or consent of the instructor.
Prerequisites for CSC 631: Upper-division standing; CSC 413; GPA of 3.0 or higher; or consent 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 637 Software Techniques for Computer Music (Units: 3)
Prerequisite: CSC 413 with a grade of C or better or consent of the instructor.
CSC 641 Computer Performance Evaluation (Units: 3)
Prerequisite for CSC 841: Graduate standing or consent of the instructor.
Prerequisites for CSC 641: Upper-division standing; CSC 415; GPA of 3.0 or higher; or consent 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 consent of the instructor.
Prerequisite for CSC 642: Upper-division standing; CSC 413 with a grade of C or better or consent 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 644 Computer Measurements (Units: 3)
Software measurement and experimentation tools. Data collection and analysis. Web measurements. Benchmarking and design of benchmarks. Use of software monitors. Extra fee required. (Plus-minus letter grade only)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 consent of the instructor.
CSC 648 Software Engineering (Units: 3)
Prerequisite for CSC 848: Graduate standing or consent 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 consent 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 consent of the instructor.
Prerequisite for CSC 649: Upper-division standing or CSC 413 with a grade of B or better or consent 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 consent of the instructor.
Prerequisite for CSC 652: CSC 415 with a grade of C or better or consent 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 656 Computer Organization (Units: 3)
Prerequisite: CSC 415 (may be taken concurrently) or consent of the instructor.
CSC 657 Bioinformatics Computing (Units: 3)
Prerequisite: Upper-division or graduate standing in a science program or consent 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 consent of the instructor.
CSC 664 Multimedia Systems (Units: 3)
Prerequisite for CSC 864: Graduate standing or consent 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 consent 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 consent of the instructor.
Prerequisite for CSC 665: Upper-division standing or CSC 413 with a grade of C or better or consent 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 consent 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 consent 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 consent 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 consent 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 Neural Networks (Units: 3)
Prerequisite for CSC 871: Graduate standing or consent of the instructor.
Prerequisites for CSC 671: Upper-division standing; CSC 510 with a grade of C or better; GPA of 3.0 or higher; or consent 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 consent 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 consent 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 consent of the instructor.
Prerequisite for CSC 676: Upper-division standing; GPA of 3.0 or better; or consent 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 consent of the instructor.
Prerequisites for CSC 680: Restricted to senior Computer Science majors; CSC 415 with a grade of B or better; or consent 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 690 Interactive Multimedia Application Development (Units: 3)
Prerequisite: CSC 340 with a grade of C or better or consent of the instructor.
CSC 693 Cooperative Education Program (Units: 6-12)
Prerequisite: Upper-division standing or consent of the instructor.
CSC 694 Cooperative Education: Computer Science (Units: 1-3)
Prerequisite: Consent of the instructor.
CSC 695 Computing in the Community (Units: 2)
Prerequisites: Upper-division standing; computer experience; consent of the instructor.
CSC 697 Senior Project in Computer Science (Units: 3)
Prerequisites: CSC 415 and CSC 510, or CSC 648; or consent of the instructor.
CSC 698 Topics in Computing (Units: 3)
Prerequisite: Upper-division standing or consent of the instructor.
CSC 699 Independent Study (Units: 1-3)
Prerequisites: Consent 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)
Prerequisites: Written English Proficiency Level I or concurrent enrollment in SCI 614; CSC 415 with a grade of B or better; or consent of the instructor.
CSC 730 Advanced Database Systems (Units: 3)
Prerequisites: CSC 413 and CSC 675 with grades of C or better.
CSC 746 High-Performance Computing (Units: 3)
Prerequisite: CSC 656 with a grade of B or better or consent of the instructor.
CSC 775 Introduction to Database Systems (Units: 3)
Prerequisite for CSC 775: Graduate standing or consent 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 consent 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 consent of the instructor.
Prerequisites for CSC 680: Restricted to senior Computer Science majors; CSC 415 with a grade of B or better; or consent 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 810 Analysis of Algorithms II (Units: 3)
Prerequisite: Graduate standing or consent of the instructor.
CSC 820 Natural Language Technologies (Units: 3)
Prerequisite for CSC 820: Graduate standing or consent 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 consent 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)
Prerequisites for CSC 821: Graduate standing or consent of the instructor.
Prerequisites for CSC 621: Upper-division standing; CSC 510 and MATH 325 with grades of C or better; GPA of 3.0 or higher; or consent 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: CSC 520 or equivalent.
CSC 830 Advanced Computer Graphics (Units: 3)
Prerequisite: CSC 630 or consent of the instructor.
CSC 831 Multiplayer Game Development (Units: 3)
Prerequisite for CSC 831: Graduate standing or consent of the instructor.
Prerequisites for CSC 631: Upper-division standing; CSC 413; GPA of 3.0 or higher; or consent 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 835 Distributed Systems (Units: 3)
Prerequisite: CSC 415 with a grade of B or better or consent of the instructor.
CSC 837 Advanced Sound Synthesis (Units: 3)
Prerequisite: CSC 637 with a grade of B or better or consent of the instructor.
CSC 840 Software Metrics and Quality Assurance (Units: 3)
Prerequisite: CSC 648 or consent of the instructor.
CSC 841 Computer Performance Evaluation (Units: 3)
Prerequisite for CSC 841: Graduate standing or consent of the instructor.
Prerequisites for CSC 641: Upper-division standing; CSC 415; GPA of 3.0 or higher; or consent 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 consent of the instructor.
Prerequisite for CSC 642: Upper-division standing; CSC 413 with a grade of C or better or consent 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)
Prerequisites: CSC 415 and CSC 645; or consent of the instructor.
CSC 846 Systems Architecture (Units: 3)
Prerequisite: CSC 656 with a grade of B or better or consent of the instructor.
CSC 847 Cloud and Distributed Computing: Concepts and Applications (Units: 3)
Prerequisites: Restricted to senior and graduate Computer Science students; consent of the instructor.
CSC 848 Software Engineering (Units: 3)
Prerequisite for CSC 848: Graduate standing or consent 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 consent 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 consent of the instructor.
Prerequisite for CSC 649: Upper-division standing or CSC 413 with a grade of B or better or consent 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 850 Compiler Design (Units: 3)
Prerequisites: CSC 413 with a grade of B or better; consent of the instructor.
CSC 852 Introduction to Security and Data Privacy (Units: 3)
Prerequisite for CSC 852: Graduate standing or consent of the instructor.
Prerequisite for CSC 652: CSC 415 with a grade of C or better or consent 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 856 Advanced Computer Architecture (Units: 3)
Prerequisites: Written English Proficiency Level I or concurrent enrollment in SCI 614; CSC 656 with a grade of B or better; or consent of the instructor.
CSC 857 Bioinformatics Computing (Units: 3)
Prerequisite: Upper-division or graduate standing in a science program or consent 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 858 Foundations of Biotechnology and Life Sciences (Units: 3)
Prerequisite: Graduate standing in a science program; a background in life sciences or biology is not required.
CSC 859 AI Explainability and Ethics (Units: 3)
Prerequisite: CSC 865* or CSC 869* or CSC 872* or CSC 876* or consent of the instructor.
CSC 864 Multimedia Systems (Units: 3)
Prerequisite for CSC 864: Graduate standing or consent 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 consent 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 consent of the instructor.
Prerequisite for CSC 665: Upper-division standing or CSC 413 with a grade of C or better or consent 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 consent 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 consent 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 consent 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 consent 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 consent of the instructor.
CSC 870 Computational Discrete Geometry (Units: 3)
Prerequisites: CSC 210, CSC 230, and MATH 325, or consent of instructor.
(This course is offered as MATH 870 and CSC 870. Students may not repeat the course under an alternate prefix.)
CSC 871 Neural Networks (Units: 3)
Prerequisite for CSC 871: Graduate standing or consent of the instructor.
Prerequisites for CSC 671: Upper-division standing; CSC 510 with a grade of C or better; GPA of 3.0 or higher; or consent 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 consent of the instructor.
CSC 874 Topics in Big Data Analysis (Units: 3)
Prerequisite: Graduate standing or consent of the instructor.
CSC 875 Advanced Topics in Database Systems (Units: 3)
Prerequisite: Graduate standing or consent of the instructor.
CSC 876 Soft Computing and Decision Support Systems (Units: 3)
Prerequisite for CSC 876: Graduate standing or consent of the instructor.
Prerequisite for CSC 676: Upper-division standing; GPA of 3.0 or better; or consent 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 890 Graduate Seminar (Units: 3)
Prerequisite: Consent of the instructor or graduate advisor.
CSC 893 Supervised Industrial Research (Unit: 1)
Prerequisite: Consent of the instructor.
CSC 895 Applied Research Project (Units: 3)
Prerequisites: Consent 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: Consent of the Computer Science Department.
CSC 898 Master's Thesis (Units: 3)
Prerequisites: Consent 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.