Computer Science (CSCI)
See Course Description Symbols and Terms for an explanation of course description terminology and symbols, the course numbering system, and course credit units.
CSCI 101 Introduction to Computer Science 3 Units
Typically Offered: Fall and spring
Students who have had limited experience with computers should take CSCI 101 before CSCI 111. CSCI 101 provides an overview of the fundamentals of computer science. Number systems and data representation are introduced. An overview of hardware, including the control unit, memory, the ALU, and I/O is provided. Software is introduced with an overview of operating systems, programming languages, applications, and software tools. Students are exposed to common operating systems and applications. Student also design and implement several programs. 2 hours activity, 2 hours discussion. (002280)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Lower Division
CSCI 102 Living With Technology 3 Units GE
Typically Offered: Fall and spring
This course explores the impact of technology on our lives. Aspects of our complex technological society are investigated through study of the various forms technology takes, and readings in contemporary literature regarding the impact these technologies have on individuals. Students are encouraged to reflect on technology in their own lives through journaling, and to discourse with their peers on the benefits and harm to individuals, society, and humanity that modern technology presents. 3 hours discussion. (020623)
General Education: Lifelong Learning and Self-Development (E)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Lower Division; Sustainable Course
CSCI 111 Programming and Algorithms I 4 Units
Prerequisite: GE Mathematics/Quantitative Reasoning (B4) requirement, completion of high school precalculus, or meet requirements for enrollment in MATH 120. Recommended Co-enrollment: CSCI 217/MATH 217 (take concurrently).
Typically Offered: Fall and spring
A first-semester programming course, providing an overview of computer systems and an introduction to problem solving and software design using procedural object-oriented programming languages. Coverage includes the software life cycle, as well as algorithms and their role in software design. Students are expected to design, implement, and test a number of programs. 2 hours activity, 3 hours lecture. (002281)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 4 units
Course Attributes: Lower Division; Laptop required
CSCI 198 Special Topics 1-3 Units
Prerequisite: Department permission.
Typically Offered: Fall and spring
This course is for special topics offered for 1.0-3.0 units. Typically the topic is offered on a one-time-only basis and may vary from term to term and be different for different sections. See the Class Schedule for the specific topic being offered. 3 hours supervision. (002307)
Grade Basis: Graded
Repeatability: You may take this course more than once
Course Attributes: Lower Division
CSCI 199 Special Problems 1-3 Units
Prerequisite: Faculty permission.
Typically Offered: Fall and spring
This course is a special topic offered for 1.0-3.0 units. You must register directly with a supervising faculty member. 0 hours supervision. (021848)
Grade Basis: Credit/No Credit
Repeatability: You may take this course for a maximum of 6 units
Course Attributes: Lower Division
CSCI 211 Programming and Algorithms II 4 Units
Prerequisite: GE Mathematics/Quantitative Reasoning (B4) requirement; CSCI 111 with a grade of C or higher. Recommended: CSCI 217 or MATH 217 (may be taken concurrently).
Typically Offered: Fall and spring
A second semester object-oriented programming course in computer science that emphasizes problem solving. This course continues the study of software specification, design, implementation, and debugging techniques while introducing abstract data types, fundamental data structures and associated algorithms. Coverage includes dynamic memory, file I/O, linked lists, stacks, queues, trees, recursion, and an introduction to the complexity of algorithms. Students are expected to design, implement, test, and analyze a number of programs. 2 hours activity, 3 hours lecture. (002282)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 4 units
Course Attributes: Lower Division
CSCI 217 Discrete Mathematics 3 Units
Prerequisite: GE Mathematics/Quantitative Reasoning Ready, CSCI 111 with a grade of C or higher (may be taken concurrently), MATH 119 (or equivalent).
Typically Offered: Fall and spring
Offers an intensive introduction to discrete mathematics as used in computer science. Topics include sets, relations, propositional and predicate logic, basic proof methods including mathematical induction, digital logic circuits, complexity of algorithms, elementary combinatorics, and solving linear recurrence relations. 3 hours discussion. (005550)
Cross listing(s): MATH 217
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Lower Division
CSCI 221 Assembly Language Programming 3 Units
Typically Offered: Inquire at department
Topics include number systems and their rules for arithmetic; basic central processing unit (CPU) organization concepts such as registers, data paths, the arithmetic and logic unit (ALU) and the interface to random access memory (RAM); instruction formats, addressing modes and their uses with a variety of data structures; and parameter passing techniques including the use of a stack frame. The use of good programming methodologies to develop and document algorithms at the assembly language level is emphasized. 2 hours activity, 2 hours lecture. (002290)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Lower Division
CSCI 300 Computer Science Seminar 1 Unit
Prerequisite: CSCI 211 with a grade of C or higher.
Typically Offered: Fall and spring
This course exposes students to computer science topics not normally covered in the computer science curriculum. Guest speakers include faculty (including from other departments), students, alumni, and members of the computing industry. Topics include current computer science research and software development issues. Specific topics may include software development tools, bioinformatics, human computer interaction, security, machine learning, specific corporate approaches to software development, dev-ops, software job interviews, programming languages, simulation, graphics, game development, web and mobile applications, cloud computing, and networks. 1 hour lecture. (021889)
Grade Basis: Credit/No Credit
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 301W Computer's Impact on Society (W) 3 Units W, GW
Prerequisite: GE Written Communication (A2) requirement; Junior standing.
Typically Offered: Fall and spring
Impact of computers and high-tech systems on people, institutions, organizations, and environment. Examines the following: law, medicine, education, government, data banks, privacy, computer security, changing work, automation, robots, expert systems, AI, social responsibility, ethics, war, conflict resolution. Includes weekly reading, midterm, and final writing projects. Weekly lectures, discussions, films, and writing. No programming. 3 hours discussion. (002309)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Writing Course; Graduation Writing Assessment
CSCI 310 Programming Foundations 6 Units
Prerequisite: Graduate Standing.
Typically Offered: Fall only
An accelerated object-oriented programming course that prepares students without sufficient undergraduate preparation for the graduate program in computer science. Coverage includes software specification, design, implementation, debugging techniques, dynamic memory, I/O, linked lists, stacks, queues, recursion, trees, search structures, hashing, heaps, sorting algorithms, graph algorithms, and an introduction to the complexity of algorithms. Foundational data structures and algorithms are studied and analyzed using both mathematical and empirical measurements. The course includes a number of large programming assignments focusing on object-oriented software engineering and algorithm development. 2 hours activity, 5 hours discussion. (022021)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 6 units
Course Attributes: Upper Division
CSCI 311 Algorithms and Data Structures 4 Units
Prerequisite: CSCI 211 with a grade of C or higher; CSCI 217 or MATH 217 with a grade of C or higher.
Typically Offered: Fall and spring
This course focuses on object-oriented methodologies in designing and implementing a variety of data structures and algorithms. Coverage includes recursion, trees, search structures, hashing, heaps, sorting algorithms, and graph algorithms. Data structure and algorithm combinations will be studied and analyzed along with their relative merits using both mathematical and empirical measurements. The course includes a number of large programming assignments focusing on object-oriented software engineering and algorithm development. Students will be required to design, implement, test, and analyze their programs in at least one object-oriented language. 2 hours activity, 3 hours lecture. (002325)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 4 units
Course Attributes: Upper Division
CSCI 315 Programming Languages 3 Units
Prerequisite: CSCI 311 with a grade of C or higher.
Typically Offered: Spring only
An investigation into the structure and syntax of current programming languages, including binding, scoping, data types, transfer-of-control structures, subprograms, abstract data types, object-oriented programming, and logical and functional programming. 3 hours discussion. (002323)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 344 Shell Programming 3 Units
Prerequisite: CSCI 211 with a grade of C or higher; CSCI 217 or MATH 217 with a grade of C or higher.
Typically Offered: Spring only
This course examines the tools that allow software engineers to automate frequently performed operations and workflows, manipulate text and data, and develop software more quickly and easily than compiled languages. Shell programming in BASH or a similar shell, text processing languages such as sed and awk, and a scripting language such as Python or Ruby are covered. This course is recommended for students pursing careers in software development and/or information systems. 2 hours activity, 2 hours discussion. (002330)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 345 Linux System Administration 3 Units
Prerequisite: CSCI 211 with a grade of C or higher; CSCI 217 or MATH 217 with a grade of C or higher.
Typically Offered: Fall only
This course guides students through the fundamentals of Linux system administration. Topics include an exploration of the Linux Standard Base, user account and file system management, process and service management, operating system installation and configuration, and virtual and cloud environments. 2 hours activity, 2 hours discussion. (002372)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 385 Introduction to Data Science 3 Units
Typically Offered: Fall only
Data Science is the science of learning from data in order to gain useful predictions and insights. The course provides an overview of the wide area of data science, with a particular focus on the tools required to store, clean, manipulate, visualize, model, and ultimately extract information from various sources of data. Topics include the analytics life cycle, data integration and modeling in R/Python, relational databases and SQL, text processing and sentiment analysis, and data visualization. Emphasis is placed on reproducible research, code sharing, version control, and communicating results to a non-technical audience. 3 hours discussion. (021756)
Cross listing(s): MATH 385
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 389 Industry Internship 1-3 Units
Prerequisite: Department permission.
Typically Offered: Fall and spring
This internship is offered for 1.0-3.0 units. Students must register directly with a supervising faculty member. 3 hours supervision. (002342)
Grade Basis: Credit/No Credit
Repeatability: You may take this course for a maximum of 15 units
Course Attributes: Upper Division
CSCI 398 Special Topics 1-3 Units
Prerequisite: Department permission.
Typically Offered: Fall and spring
This course is for special topics offered for 1.0-3.0 units. Typically the topic is offered on a one-time-only basis and may vary from term to term and be different for different sections. See the Class Schedule for the specific topic being offered. 3 hours lecture. (002350)
Grade Basis: Graded
Repeatability: You may take this course more than once
Course Attributes: Upper Division
CSCI 399 Special Problems 1-3 Units
Prerequisite: Faculty permission.
Typically Offered: Fall and spring
This course is a special topic offered for 1.0-3.0 units. You must register directly with a supervising faculty member. Independent study and investigation of special problems in student's area of concentration. Both registration and study plan must have approval of the instructor and the department chair. 9 hours supervision. (002351)
Grade Basis: Credit/No Credit
Repeatability: You may take this course for a maximum of 6 units
Course Attributes: Upper Division
CSCI 411 Advanced Algorithms 3 Units
Prerequisite: CSCI 311 with a grade of C or higher or Classified Computer Science Graduate Standing.
Typically Offered: Fall and spring
Students design, implement, and analyze algorithms for solving problems. Topics include greedy algorithms, dynamic programming, graphs (topological sort, strongly connected components), shortest paths (Bellman-Ford, Floyd-Warshall), minimum spanning trees (Kruskal's), flow network (max flow, min cut, maximum bipartite matching), string search (suffix tree, suffix array, Burrows-Wheeler's Transform, longest common prefix array), and advanced topics. This course integrates knowledge of data structures, algorithms, and programming. 3 hours lecture. (002371)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Laptop required
CSCI 415 Theory of Computation 3 Units
Prerequisite: CSCI 311 with a grade of C or higher.
Typically Offered: Fall and spring
An introduction to formal languages, grammars, and automata theory. Topics include finite automata, regular expressions, context-free grammars, Turing machines, computability, and complexity including P and NP classes, NP complete classes and problems, and undecidable problems. 3 hours lecture. (022576)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Laptop required
CSCI 417 Applied Linear Algebra for Computer Science 3 Units
Prerequisite: CAGD 280, CSCI 211, or MECH 208 each with a grade of C or higher; or classified graduate standing.
Typically Offered: Spring only
In this course, linear algebra is studied from a computer science (CS) and algorithmic perspective, emphasizing its critical role in various CS domains. The course is centered around real-world CS applications and hands-on programming exercises. Students not only master the core concepts of vectors and matrices but also recognize their practical utility in contemporary computational challenges in CS. Throughout the course, students are exposed to a programming language of the instructor's choosing and use it to delve into an array of CS applications such as combinatorial optimization, image compression via principal component analysis (PCA), computer graphics, page rank algorithm, machine learning, and scientific visualization. 3 hours lecture. (022545)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Laptop required
CSCI 430 Software Engineering 3 Units
Prerequisite: CSCI 311 with a grade of C or higher.
Typically Offered: Fall and spring
An overview of software engineering principles, practice, and tools. Topics include: agile software engineering methodologies, requirements engineering, test-driven development, software design patterns, MVC architecture, version control, software metrics, and static analysis. Students work in groups to design and implement a semester-long open source software project. 2 hours activity, 2 hours discussion. (002310)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 431W Usability Engineering (W) 3 Units GE, W
Prerequisite: GE Oral Communication (A1); GE Written Communication (A2); GE Critical Thinking (A3); GE Mathematics/Quantitative Reasoning (B4) requirements, or consent of the instructor.
Typically Offered: Fall and spring
Usability Engineering is the craft of designing and evaluating how people interact with products and technology. In this course, students learn qualitative and quantitative methods for conducting behavioral research to investigate human-computer interaction (HCI) and to iteratively improve user experience (UX) design of digital interfaces. Students engage in team projects and conduct user research to design, evaluate and revise interactive prototypes following the user-centered design process. 2 hours activity, 2 hours discussion. (020615)
General Education: Upper-Division Social Sciences (UDD); Innovation, Design, and the Arts Pathway
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Laptop required; Writing Course
CSCI 440 Operating Systems 4 Units
Typically Offered: Fall and spring
Operating system fundamentals, including history, process and thread management, concurrency with semaphores and monitors, deadlocks, storage management, file systems, I/O, and distributed systems. 2 hours activity, 3 hours discussion. (002328)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 4 units
Course Attributes: Upper Division
CSCI 446 Introduction to Computer Networks and Network Management 3 Units
Typically Offered: Fall and spring
This course is an introduction to basic networking technologies and network management concepts, including major network operating systems, communication architecture focusing on ISO and Internet models with discussion of current standards and protocols, and applications of probability and statistics in computer networking. Significant laboratory work using current networking equipment reinforces lectures and provides fundamental experience with router and switch management. 3 hours laboratory, 2 hours lecture. (002340)
Cross listing(s): EECE 446
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 485 Advanced Topics in Data Science 3 Units
Typically Offered: Spring only
Getting connected to current events in Data Science and building an online presence. Ethics of predictive analytics and privacy and open data. Reporting and dissemination of research using interactive dashboards and web-publishing. Introduction to current scalable technologies to handle Big Data. Introduction to advanced statistical analysis and machine learning techniques for Data Science. 3 hours lecture. (021890)
Cross listing(s): MATH 485
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 490 Computer Science Capstone 3 Units
Typically Offered: Fall and spring
This capstone course provides a culminating activity in computer science. Students will work independently to specify, design, develop, test, and document a complete software application under faculty supervision. Students present status reports at weekly meetings, and present their finished project at the end of the semester. 9 hours supervision. (002343)
Grade Basis: Report in Progress: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 498 Topics in Computer Science 1-3 Units
Typically Offered: Inquire at department
This course is a special topic offered for 1.0-3.0 units. Exploration of selected topics in Computer Science. Consult semester schedules for specific listings. Standard letter grading only. 3 hours discussion. (002389)
Grade Basis: Graded
Repeatability: You may take this course more than once
Course Attributes: Upper Division
CSCI 499 Special Problems 1-3 Units
Prerequisite: Faculty permission.
Typically Offered: Fall and spring
This course is an independent study of special problems offered for 1.0-3.0 units. You must register directly with a supervising faculty member. 3 hours supervision. (002390)
Grade Basis: Credit/No Credit
Repeatability: You may take this course for a maximum of 6 units
Course Attributes: Upper Division
CSCI 499H Honors Research Project/Thesis 3 Units
Prerequisite: Acceptance into Honors in the Major program.
Typically Offered: Fall and spring
Open by invitation to computer science majors with a GPA of 3.5 or higher in the major. This Honors in the Major course focuses on the development of a creative research project in computer science, its presentation, discussion of relevant research materials, and the reporting of findings. 9 hours supervision. (002391)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 511 Advanced Object-Oriented Programming 3 Units
Prerequisite: CSCI 311 with a grade of C or higher.
Typically Offered: Fall only
This course is dedicated to the analysis, design, and implementation of programming problems using an object-oriented approach. Modern object-oriented languages are utilized. Topics include inheritance, the underlying implementation of polymorphism, exception handling, extending existing system libraries, and approaching algorithm development from an object-oriented perspective. 3 hours lecture. (002356)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 511H Object-Oriented Programming - Honors 3 Units
Prerequisite: CSCI 311 with a grade of C or higher; acceptance into Honors in the Major program.
Typically Offered: Fall only
Honors version of CSCI 511. In addition to completing all course requirements for CSCI 511, the student is required to research a topic related to Object-Oriented Programming, and propose an independent study to be completed during the following semester. A written research report and proposal is required. A grade of B or higher in this course is necessary in order to use it to earn the Honors in the Major distinction. 3 hours discussion. (020790)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 515 Compiler Design 3 Units
Prerequisite: CSCI 311 with a grade of C or higher.
Typically Offered: Fall and spring
The elements of lexical, syntactical, and semantic analysis including finite and push-down automata, top-down and bottom-up parsing, error detection and recovery, semantic actions and code generation. 3 hours discussion. (002369)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 515H Compiler Design - Honors 3 Units
Prerequisite: CSCI 311 with a grade of C or higher, acceptance into Honors in the Major Program.
Typically Offered: Fall and spring
The elements of lexical, syntactical, and semantic analysis including finite and push-down automata, top-down and bottom-up parsing, error detection and recovery, semantic actions, and code generation. Honors students enrolled in this course are required to implement a significant additional feature in the semester project and to develop an approved proposal in the area of languages/compilers for their Honors Research Project/Thesis. 3 hours discussion. (020185)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 520 Applied Quantum Computing for Computer Scientists 3 Units
Prerequisite: CSCI 311 with a grade of C or higher; MATH 109, MATH 120, or MATH 315; or Classified Computer Science Graduate Standing.
Typically Offered: Spring only
This course introduces the practice of quantum computation and algorithms in computer science. Topics covered include the mathematics to understand the relationship between physical systems and quantum computation. Algorithms to be implemented include Deutsch's mapped function algorithm, Grover's search algorithm, Simon's periodicity algorithm, and Shor's prime factorization algorithm. Other concepts include quantum error correction, and quantum cryptography. Students will develop their code on a quantum computer. 2 hours activity, 2 hours lecture. (022275)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Laptop required
CSCI 540 Systems Programming 3 Units
Prerequisite: CSCI 440 with a grade of C or higher.
Typically Offered: Fall only
A hands-on project course that examines the development of systems software. It provides an introduction to writing low level programs in the UNIX/Linux environment. Topics include using system calls, processes, threads, concurrency, process/thread synchronization, signals, and interprocess communication. The course includes several large programming projects which provide students solid experience in lower level programming. 3 hours discussion. (002378)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 546 Network Forensics 3 Units
Typically Offered: Spring only
This course provides an in-depth understanding of the principles and techniques used in network forensic, including the collection, preservation, analysis, and presentation of digital evidence from network-based incidents. The course covers the role of network forensic in incident response and cybercrime investigations. Students learn about the various tools and techniques used in network forensic including network capture, traffic analysis, and log analysis. Students gain hands-on experiences using these tools through various labs and case studies. 3 hours laboratory, 2 hours lecture. (002382)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Laptop required
CSCI 551 Numerical Methods and Parallel Programming 4 Units
Prerequisite: CSCI 440 with a grade of C or higher; MATH 109 or MATH 120; or Classified Computer Science Graduate Standing.
Typically Offered: Fall and spring
Surveys numerical methods and parallel programming. Parallel architectures and algorithms for scientific programming applications, solution of simultaneous linear and non-linear equations, iterative techniques, matrix methods, and error analysis. Development of parallel algorithms, with a focus on efficient implementation and performance. 2 hours activity, 3 hours lecture. (002332)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 4 units
Course Attributes: Upper Division; Laptop required
CSCI 565 Advanced Web and Mobile App Development 3 Units
Prerequisite: CINS 467 with a grade C or higher.
Typically Offered: Spring only
A hands-on project course that examines languages, tools, protocols, and techniques for developing robust server-side interfaces and how to integrate them into cross-platform apps. Topics include the model-view-controller pattern, server-side scripting, using a server-side database, REST, the gRPC remote procedure call framework, web applications security, and hosting robustness. The course includes several projects using a web programming framework and integration into cross-platform client-side apps. 3 hours lecture. (022409)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Laptop required
CSCI 566 Computer Graphics Programming 3 Units
Prerequisite: CSCI 311 with a grade of C or higher.
Typically Offered: Fall only
This course covers algorithms and data structures in computer graphics. Topics include output primitives and their attributes, 2-D and 3-D geometric transformations and viewing, 3-D object modeling, parallel and perspective projections, visible surface detection, illumination models, and rendering algorithms. 3 hours discussion. (002363)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 580 Artificial Intelligence 3 Units
Prerequisite: CSCI 311 with a grade of C or higher.
Typically Offered: Fall and spring
This course introduces the basic principles, techniques, and applications of artificial intelligence. This course is organized in three sections: search, logic, and learning. Topics include but are not limited to problem-solving, heuristic search, genetic algorithm, game-playing, constraint-satisfaction problems, propositional and predicate logic, knowledge representation, feed-forward neural networks, and decision trees. Students implement and analyze artificial intelligence algorithms. 3 hours discussion. (002360)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 580H Artificial Intelligence - Honors 3 Units
Prerequisite: CSCI 311 with a grade of C or higher, acceptance into Honors in the Major program.
Typically Offered: Fall and spring
An introduction to the basic principles, techniques, and applications of Artificial Intelligence. Coverage includes knowledge representation, logic, inference, problem solving, search algorithms, game theory, perception, learning, planning, and agent design. Students program with AI language tools. Additional areas may include expert systems, machine learning, natural language processing, and computer vision. Honors students enrolled in this course are held to more rigorous standards and expectations in both assignments, participation, and examination than students in CSCI 580. They are also expected to perform preliminary work for the follow-up course, typically in the form of a literature review and proposal. 3 hours discussion. (021882)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 581 Machine Learning 3 Units
Prerequisite: CSCI 311 with a grade of C or higher; MATH 109 or MATH 120; or Classified Computer Science Graduate Standing.
Typically Offered: Fall and spring
This course introduces students to the concepts, theories, and experimental methods of machine learning. This course develops a broad understanding of the issues in implementing machine learning algorithms and systems, especially as they relate to modern data-intensive problems. Topics include but are not limited to experimental design, supervised learning (linear and non-linear regression, parametric and nonparametric learning, support vector machines, Bayesian networks, Hidden Markov Models, and advanced neural networks), unsupervised learning (clustering, dimensionality reduction, and kernel methods), ensemble approaches, learning theory, and reinforcement learning. Students implement and analyze machine learning algorithms. 3 hours discussion. (022009)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Laptop required
CSCI 581H Machine Learning- Honors 3 Units
Prerequisite: CSCI 311 with a grade of C or higher.
Typically Offered: Fall and spring
This course introduces students to the concepts, theories, and experimental methods of machine learning. This course develops a broad understanding of the issues in implementing machine learning algorithms and systems, especially as they relate to modern data-intensive problems. Topics include but are not limited to experimental design, supervised learning (linear and non-linear regression, parametric and nonparametric learning, support vector machines, Bayesian networks, Hidden Markov Models, and advanced neural networks), unsupervised learning (clustering, dimensionality reduction, and kernel methods), ensemble approaches, learning theory, and reinforcement learning. Students implement and analyze machine learning algorithms. Honor students enrolled in this course are held to more rigorous standards and expectations in assignments, participation, and examinations than students in CSCI 581. Students are also expected to perform preliminary work for the follow-up course, typically in the form of a literature review and proposal. 3 hours discussion. (022108)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 582 Bioinformatics 3 Units
Prerequisite: CSCI 311 with a grade of C or higher; MATH 105, MATH 314, or MATH 350 (may be taken concurrently).
Typically Offered: Spring only
An introduction to computational methods for Next Generation Sequencing data analysis. Topics include mapping sequenced reads back to a reference genome; approximate string matching; intro to biostatistics; probability distribution, hypothesis testing; identification of SNPs (single polymorphisms); analysis of RNA-seq data; mapping RNA-seq reads, identification of splice-junctions, analysis of gene expression; genome-wide associative analysis of methylation and gene expression. 3 hours discussion. (021619)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division
CSCI 585 Robotics and Machine Intelligence 3 Units
Prerequisite: CSCI 211, EECE 237 both with a grade of C or higher; MATH 109 or MATH 120; or Classified Computer Science Graduate Standing.
Typically Offered: Spring only
This course introduces students to the field of robotics by emphasizing the use of software to model, task, localize, navigate, and control mobile and manipulator robot systems. Topics include various case studies of robot architectures and algorithms that facilitate teleoperation, automation, and levels of autonomous tasking and intelligent operation (e.g., sensor fusion, perception, reactive reasoning, intelligent navigation, vision, machine learning, etc.). Students develop and/or configure software for a robot system by researching and experimenting with hardware, robot operating systems and simulation tools. ECC compliant laptop required. 2 hours activity, 2 hours lecture. (002361)
Grade Basis: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Upper Division; Laptop required
CSCI 598 Adv Topic in Computer Science 1-4 Units
Typically Offered: Inquire at department
This course is a special topic offered for 1.0-4.0 units. Exploration of selected topics in Computer Science. Consult semester schedules for specific listings. Standard letter grading only. 0 hours discussion. (020184)
Grade Basis: Graded
Repeatability: You may take this course more than once
Course Attributes: Upper Division
CSCI 605 Data Structures and Algorithms for Data Science 3 Units
Prerequisite: Basic Python programming knowledge; admission to the master's program in Data Science and Analytics, or faculty permission.
Typically Offered: Fall and spring
This course focuses on object-oriented methodologies in designing and implementing a variety of data structures and algorithms using the Python programming language. Coverage includes recursion, trees, search structures, hashing, heaps, sorting algorithms, and graph algorithms. Particular attention will be given to studying the relative merits of these data structures under different conditions both mathematically and through empirical measurement as they are used in the field of data science. 3 hours discussion. (022532)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division; Laptop required
CSCI 608 Data Science for Graduate Studies 3 Units
Prerequisite: Basic programming knowledge, admission to the master's program in Data Science and Analytics or Computer Science, or faculty permission.
Typically Offered: Fall only
This course covers foundational practices of data science emphasizing reproducibility and ethical practices at all stages of the data science lifecycle. Recent advances and seminal works in data science and related fields will be discussed and scientific communication best practices will be addressed. Topics include version control, scientific thinking, web scraping, intermediate data wrangling, data visualization, modeling, prediction, classification, and text analysis in either R or Python. 3 hours discussion. (022535)
Cross listing(s): MATH 608
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division; Laptop required
CSCI 611 Applied Machine Learning 3 Units
Prerequisite: CSCI 311 and classified graduate standing.
Typically Offered: Spring only
The course offers a practical exploration into machine learning and cutting-edge topics in neural networks, including modern techniques for deep learning. Students build deep learning models using sophisticated machine learning frameworks and scientific libraries. 3 hours lecture. (002395)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division
CSCI 612 Applied Computer Vision 3 Units
Prerequisite: CSCI 311 or equivalent with C or higher.
Typically Offered: Spring only
Applied computer vision used in automation, robotics, physical security, surveillance, and inspection applications and systems. Topics covered include theory of computer vision and related algorithms for image capture and processing, filtering, thresholds, edge detection, shape analysis, shape detection, salient object detection, pattern matching, digital image enhancement, stereo ranging, and methods of sensor and information fusion. Focus is on real-time continuous image processing from cameras and video. Application using multi-core and co-processing parallel computing systems are covered as they relate to scaling of computer vision applications. 2 hours activity, 2 hours discussion. (022279)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division; Laptop required
CSCI 620 Web Technology 3 Units
Prerequisite: CINS 467 with a grade of C or higher, or web programming experience, and classified graduate standing.
Typically Offered: Fall only
This course examines frameworks, libraries, languages, and tools for the development of full stack web applications that are progressive, responsive, and secure. Student propose, design, develop, test, and present a nontrivial full stack web application. 3 hours seminar. (002436)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division; Laptop required
CSCI 630 Software Design and Maintenance 3 Units
Prerequisite: Classified Computer Science Graduate Standing.
Typically Offered: Spring only
Students conduct a study of designing and maintaining complex software. The course builds upon fundamental software engineering skills with an emphasis on: object-oriented software design patterns, anti-patterns, code review and refactoring, and tools for evaluating code quality. Students practice maintaining software by collaborating on a large-scale open source project using automated development operation (DevOps) tools. 3 hours discussion. (002394)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division; Laptop required
CSCI 640 Scalable Software Systems 3 Units
Typically Offered: Fall only
This course offers a practical exploration of topics in scalable computing. Students gain hand-on experience building things to solve a multitude of topics in scalable computing. Students learn how to solve computationally complex problems involving big data. Topics include but are not limited to single-node and multi-node parallelism, threading, and coprocessor programming. 3 hours seminar. (002430)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division; Laptop required
CSCI 644 DevOps Engineering 3 Units
Typically Offered: Fall and spring
This course introduces students to distributed system administration skills, setting up distributed computation environments, version control, build systems, dependency management, continuous integration, testing, cloud virtualization technologies, and setting up mobile, web, machine learning, artificial intelligence, and data science pipelines. 3 hours discussion. (022536)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division; Laptop required
CSCI 650 Algorithms and Computability 3 Units
Prerequisite: CSCI 311 and classified graduate standing.
Typically Offered: Spring only
This course presents algorithm design techniques (such as divide-and-conquer, greedy algorithms, dynamic programming, and others), mathematical and empirical analysis of algorithms , computability, Rice's theorem, P and NP classes, NP-completeness, and recent advances in algorithms. 3 hours seminar. (002417)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division
CSCI 651 Applied Graph Theory 3 Units
Prerequisite: CSCI 311 and classified graduate standing.
Typically Offered: Fall only
This course covers foundational aspects of network science, the study of graph representations and the patterns they contain, along with tools and techniques for analyzing network data. Topics include random graph models, measures of structural importance, information spread in data networks, and methods for embedding graphs in real space. This is a project-based course. Students implement and apply graph algorithms on real-world network data. 3 hours lecture. (022206)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division
CSCI 682 Topics in Artificial Intelligence 3 Units
Prerequisite: Classified graduate standing.
Typically Offered: Inquire at department
Further study of selected advanced topics in artificial intelligence as presented in recently published journals; possible emphasis on research interests and/or projects of faculty in the department. Consult the Graduate Coordinator to determine how many units may be counted toward your major. 3 hours lecture. (002402)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 12 units
Course Attributes: Graduate Division
CSCI 689 Internship 1-3 Units
Typically Offered: Fall and spring
0 hours supervision. (020142)
Grade Basis: Report in Progress: CR/NC
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division
CSCI 693 Research Methods in Computer Science 3 Units
Prerequisite: Candidate status.
Typically Offered: Fall and spring
This course interweaves three distinct themes (investigation, experimentation, and technical writing), that culminate in a comprehensive research project, written report, presentation, and oral defense. First, the students are immersed into the research process within Computer Science. This includes an understanding of the role, ethics, and responsibility of researchers in Computer Science. The second focus is on rigorous design of experiments for the purpose of testing research hypotheses, simulations, and models, and interpreting the results of those experiments. Finally, proficiency in communication of scientific ideas and findings will be addressed, from intensive reading, critiques, technical writing and oral presentations. 9 hours supervision. (020616)
Grade Basis: Report in Progress: Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division; Laptop required
CSCI 697 Independent Study 1-6 Units
Prerequisite: Classified graduate standing, faculty permission.
Typically Offered: Fall and spring
This course is an independent study offered for 1.0-6.0 units. You must register directly with a supervising faculty member. Independent study and investigation of special problems in student's area of concentration. Both registration and study plan must have approval of the instructor and the student's graduate advisory committee chair. 9 hours supervision. (002451)
Grade Basis: Credit/No Credit
Repeatability: You may take this course for a maximum of 6 units
Course Attributes: Graduate Division
CSCI 698 Seminar in Advanced Topics 3 Units
Typically Offered: Inquire at department
This course is a seminar offered for 1.0-3.0 units. Typical subjects in past semesters have included microprogramming theory, operating system development, software engineering principles, data communications, analysis of algorithms, and program optimization. Consult the Class Schedule for listing and prerequisites. 2 hours activity, 2 hours discussion. (002446)
Grade Basis: Graduate Graded
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division
CSCI 699P Master's Project 3 Units
Prerequisite: Candidate status.
Typically Offered: Fall and spring
You must register directly with a supervising faculty member. Independent study and investigation of special problems in student's area of concentration. Both registration and study plan must have approval of the instructor and the student's graduate advisory committee chair. Master's Project courses earn a Credit grade upon completion. 9 hours supervision. (002461)
Grade Basis: Report in Progress: CR/NC
Repeatability: You may take this course for a maximum of 3 units
Course Attributes: Graduate Division
CSCI 699T Master's Thesis 1-6 Units
Prerequisite: Candidate status.
Typically Offered: Fall and spring
This course is offered for 1.0-6.0 units. You must register directly with a supervising faculty member. Independent study and investigation of special problems in student's area of concentration. Both registration and study plan must have approval of the instructor and the student's graduate advisory committee chair. Master's Thesis courses earn a Credit grade upon completion. 9 hours supervision. (002453)
Grade Basis: Report in Progress: CR/NC
Repeatability: You may take this course for a maximum of 6 units
Course Attributes: Graduate Division