Online Master of Science in Computer Science Curriculum

To stay up-to-date in the constantly evolving computer science field, the master’s in computer science online courses at California State University, Chico are focused on key topics like machine learning, software design, AI, and more. For flexibility while you work, you can complete these asynchronous computer science classes online, whenever works best for your schedule.

Prerequisites

Generally, an undergraduate degree in computer science will waive all prerequisites. Any prerequisite can be waived with appropriate academic or professional experience. Chico State will determine if prerequisites have been met.

  • CINS 370 – Introduction to Databases
  • CSCI 111 – Programming and Algorithms I
  • CSCI 211 – Programming and Algorithms II*
  • CSCI/MATH 217 – Discrete Mathematics
  • CSCI 311 – Algorithms and Data Structures*
  • CSCI 430 – Software Engineering
  • CSCI 440 – Operating Systems

*If the applicant has not already completed this course, it must be completed at Chico State.

Core Courses (3 units each)

CINS 670 – Advanced Database Management Systems

This course covers the SQL programming language including data definition language, data manipulation language, and data control language. The course then focuses on a procedural database programming language including control structures, composite data types, explicit cursors, exception handling, and writing embedded SQL applications.

CSCI 511 – Advanced Object-Oriented Programming

Prerequisite: CSCI 311 with a grade of C or higher.

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.

CSCI 546 – Network Forensics

Prerequisite: CSCI 446 with a grade of C or higher.

This course covers the most critical skills needed for the increased focus on network communications and artifacts in today's investigative work. It will cover the tools, technology, and processes required to integrate network evidence sources into investigations, with a focus on efficiency and effectiveness.

CSCI 611 – Applied Machine Learning - 3 Units

This 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.

CSCI 612 – Applied Computer Vision

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. Applications using multi-core and co-processing parallel computing systems are covered as they relate to scaling of computer vision applications.

CSCI 620 – Web Technology

This course examines frameworks, libraries, languages, and tools for the development of full-stack web applications that are progressive, responsive, and secure. Students propose, design, develop, test, and present a nontrivial full-stack web application.

CSCI 630 – Software Design and Maintenance

This 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. Students will also conduct a study of designing and maintaining complex software.

CSCI 640 – Scalable Software Systems

This course offers a practical exploration of topics in scalable computing. Students gain hands-on experience building things to solve a multitude of topics in scalable computing. Students should 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.

CSCI 650 – Algorithms and Computability

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.

CSCI 693 – Research Methods in Computer Science

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.

Admissions Dates and Deadlines

JUL
5
Priority Application Deadline
Fall 2024 Term
JUL
26
Application Deadline
Fall 2024 Term
AUG
26
Next Start
Fall 2024 Term