The master of science in computer science online program consists of 30 credits that can be completed over the course of three to five terms. The program can be completed in approximately 12 months depending on students’ course schedules. Learn more about the courses you will take as a student in the program in the descriptions below.
Sample Course Sequences
The Accelerated Track can be completed in as little as 12 months over three terms. The Standard Track can be completed in as few as 20 months over five terms.
When choosing the Standard or Accelerated Track, you should also assess whether your course load will be considered full-time or part-time for financial aid purposes. More information can be found on the Financial Aid FAQs.
CS 5278: Principles of Software Engineering (3 Units)
The nature of software. The object-oriented paradigm. Software life-cycle models. Requirements, specification, design, implementation, documentation, and testing of software. Object-oriented analysis and design. Software maintenance.
Provides students with a deep understanding of conceptual and practical aspects of designing, implementing, and debugging concurrent software apps using patterns and frameworks related to Java and Android.
CS 6387: Topics in Software Engineering: Security (3 Units)
Topics may include empirical software engineering and open-source software engineering.
CS 5283: Computer Networks (3 Units)
Computer communications. Network (Internet) architecture. Algorithms and protocol design at each layer of the network stack. Cross-layer interactions and performance analysis. Network simulation tools. Lab and programming assignments.
Teaches students how reusable parallel programs can be designed, implemented, optimized, validated, maintained, and enhanced by applying effective functional and object-oriented development practices, patterns, and frameworks.
CS 5288: Web-Based System Architecture (3 Units)
Web-based System Architecture. Core concepts necessary to architect, build, test, and deploy complex web-based systems; analysis of key domain requirements in security, robustness, performance, and scalability.
CS 6381: Distributed Systems Principles (3 Units)
Techniques and mechanisms in distributed system design, such as logical clocks, distributed consensus, distributed mutual exclusion, consistency models, fault tolerance and paradigms of communication. Contemporary distributed system case studies and open challenges.
CS 6385: Advanced Software Engineering (3 Units)
An intensive study of selected areas of software engineering. Topics may include CASE tools, formal methods, generative techniques, aspect-oriented programming, metrics, modeling, reuse, and software architecture.
CS 6388: Model-Integrated Computing (3 Units)
Model-Integrated Computing. Problems of designing, creating, and evolving information systems by providing rich, domain-specific modeling environments including model analysis and model-based program synthesis tools. Students are required to give a class presentation and prepare a project.
CS 5287: Principles of Cloud Computing (3 Units)
Principles of Cloud Computing. Fundamental concepts of cloud computing, different service models, techniques for resource virtualization, programming models, management, mobile cloud computing, recent advances, and hands-on experimentation.