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.
Explore Our Comprehensive Curriculum
“We’ve come up with a cohesive set of classes that will give you a body of knowledge needed to be relevant as a software engineer in today’s climate.”
— Prof. Jules White, Associate Dean for Strategic Learning Programs
Gain fundamental computer science knowledge and the critical thinking skills needed to become an innovative problem solver in today’s tech industry. The online master of science in computer science offers a flexible curriculum designed by expert Vanderbilt faculty, exposure to world-renowned research and entrepreneurship and connections to a motivated community. You will develop meaningful relationships with peers, professors and researchers through live, face-to-face experiences that will equip you with the necessary skills and insights to excel in today's technological industry.
Online Computer Science Master’s — Curriculum & Courses
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, granting students flexibility to customize their personal, professional and academic schedules as needed, preparing you with skills applicable to creative tech careers through a curriculum focused as much on essential computer science knowledge as interdisciplinary and emerging practices.
The program curriculum focuses on the following key subject areas:
|
|
Develop Cross-Disciplinary Skills
As you develop your computer science knowledge and skills, you will also have opportunities to push your ideas in new directions through interdisciplinary exploration. Our program allows you to engage with faculty, work closely with other students and conduct your own research across topics.
Related subjects you may explore include:
|
|
By exploring areas where computer science intersects with related subjects like health care and medicine, energy and natural resources, security and entertainment, you will be able to apply the skills you gain to tech positions in your own community.
Faculty incorporate hands-on exercises into the program, ensuring that you can apply knowledge gained in classes to real-world practice with high-demand, web-based technologies.
As a student, you’ll engage in exercises with native applications on various platforms; languages like Java, Python and JavaScript; and cloud computing and security.
Portfolio
By completing these course exercises and projects, you’ll develop solutions to real-world problems through hands-on assignments that will enhance your professional portfolio. This comprehensive portfolio will consist of exercises and projects on which you have worked, as well as any research you conducted. Upon graduation, you’ll be able to use your portfolio to showcase your abilities to employers.
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, granting students flexibility to customize their personal, professional and academic schedules as needed. Learn more about the courses you will take as a student in the program in the descriptions below.
Course Descriptions
-
-
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.
-
Principles and programming techniques of artificial intelligence. Strategies for searching, representation of knowledge and automatic deduction, learning and adaptive systems. Survey of applications.
-
Machine learning, especially deep learning, is the key innovation in data science, computer science and statistics. This class is a graduate course in machine learning, addressing both the practice of and the theories underlying machine learning. The class will briefly cover topics including the practice of machine learning, regression, classification, tree-based methods, feature engineering, mixture models and introduce theoretical foundations of neural networks and deep learning.
-
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.
-
Students work in teams to specify, design, implement, document and test a nontrivial software project. The use of CASE (Computer Assisted Software Engineering) tools is stressed.
-
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.
-
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.
-
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.
-
Systems verification and validation, industrial case studies, propositional and predicate logic, syntax and semantics of computational tree and linear time logics, binary decision diagrams, timed automata model and real-time verification, hands-on experience with model checking using the SMV, SPIN and UPPAAL tools and state reduction techniques.
-
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.
-
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.
-
Topics may include empirical software engineering and open-source software engineering.
-
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.
-
This course is a thorough exploration of the science of digital forensics. This course will include topics in OS forensics, mobile forensics, network forensics, forensic science theory, legal issues, etc. Standards and best practices in forensic science, such as NIST standards, will be covered. Numerous hands-on labs will be included that require application of theory, development of forensic arguments and production of forensic papers.
-
Coverage of software techniques, methods, and tools used to develop large-scale mobile cloud computing systems and applications, including topics on API design, scalability, concurrency, parallelism, persistence, microservices, resilience, quality assurance and deployment.
-
This course is an introduction to quantum computing. Fundamental concepts including quantum hardware, logical qubits, quantum algorithms and quantum programming will be covered. While prior course work in linear algebra and physics would help a student, they are not required.
-
Term 1 (6 units)
Term 2 (6 units)
Computer Networks (CS 5283) (3 Units)
Term 3 (6 units)
Web-Based System Architecture (CS 5288) (3 Units)
Term 4 (6 units)
Distributed Systems Principles (CS 6381) (3 Units)
Advanced Software Engineering (CS 6385) (3 Units)
Term 5 (6 units)
Model-Integrated Computing (CS 6388) (3 Units)
Principles of Cloud Computing (CS 5287) (3 Units)
-
Term 1 (9 Units)
Term 2 (12 Units)
Computer Networks (CS 5283) (3 Units)
Web-Based System Architecture (CS 5288) (3 Units)
Distributed Systems Principles (CS 6381) (3 Units)
Term 3 (9 Units)
Advanced Software Engineering (CS 6385) (3 Units)
Model-Integrated Computing (CS 6388) (3 Units)
Principles of Cloud Computing (CS 5287) (3 Units)
-
CS 5253: Parallel Functional Programming (3 Units)
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 5254: Concurrent Object-Oriented Programming (3 Units)
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 5260: Artificial Intelligence (3 Units)
Principles and programming techniques of artificial intelligence. Strategies for searching, representation of knowledge and automatic deduction, learning, and adaptive systems. Survey of applications.
CS 5262: Foundations of Machine Learning (3 Units)
Machine learning, especially deep learning, is the key innovation in data science, computer science, and statistics. This class is a graduate course in machine learning, addressing both the practice of and the theories underlying machine learning. The class will briefly cover topics including the practice of machine learning, regression, classification, tree-based methods, feature engineering, mixture models, and introduce theoretical foundations of neural networks and deep learning.
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.
CS 5279: Software Engineering Projects (3 Units)
Students work in teams to specify, design, implement, document, and test a nontrivial software project. The use of CASE (Computer Assisted Software Engineering) tools is stressed.
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.
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.
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 6315: Automated Verification (3 Units)
Systems verification and validation, industrial case studies, propositional and predicate logic, syntax and semantics of computational tree and linear time logics, binary decision diagrams, timed automata model and real-time verification, hands-on experience with model checking using the SMV, SPIN and UPPAAL tools, and state reduction techniques.
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 6387: Topics in Software Engineering: Security (3 Units)
Topics may include empirical software engineering and open-source software engineering.
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 8395: Special Topics: Digital Forensics (3 Units)
This course is a thorough exploration of the science of digital forensics. This course will include topics in OS forensics, mobile forensics, network forensics, forensic science theory, legal issues, etc. Standards and best practices in forensic science, such as NIST standards, will be covered. Numerous hands-on labs will be included that require application of theory, development of forensic arguments, and production of forensic papers.
CS 8395: Special Topics: Microservices (3 Units)
Coverage of software techniques, methods, and tools used to develop large-scale mobile cloud computing systems and applications, including topics on API design, scalability, concurrency, parallelism, persistence, microservices, resilience, quality assurance, and deployment.
CS 8395: Special Topics: Quantum Computing (3 Units)
This course is an introduction to quantum computing. Fundamental concepts including quantum hardware, logical qubits, quantum algorithms, and quantum programming will be covered. While prior course work in linear algebra and physics would help a student, they are not required.
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, domestic students 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.
-
Term 1 (6 units)
Principles of Software Engineering (CS 5278) (3 Units)
Concurrent Object-Oriented Programming (CS 5254) (3 Units)
Term 2 (6 units)
Topics in Software Engineering: Security (CS 6387) (3 Units)
Computer Networks (CS 5283) (3 Units)
Term 3 (6 units)
Parallel Functional Programming (CS 5253) (3 Units)
Web-Based System Architecture (CS 5288) (3 Units)
Term 4 (6 units)
Distributed Systems Principles (CS 6381) (3 Units)
Advanced Software Engineering (CS 6385) (3 Units)
Term 5 (6 units)
Model-Integrated Computing (CS 6388) (3 Units)
Principles of Cloud Computing (CS 5287) (3 Units)
-
Term 1 (9 Units)
Principles of Software Engineering (CS 5278) (3 Units)
Concurrent Object-Oriented Programming (CS 5254) (3 Units)
Topics in Software Engineering: Security (CS 6387) (3 Units)
Term 2 (12 Units)
Computer Networks (CS 5283) (3 Units)
Parallel Functional Programming (CS 5253) (3 Units)
Web-Based System Architecture (CS 5288) (3 Units)
Distributed Systems Principles (CS 6381) (3 Units)
Term 3 (9 Units)
Advanced Software Engineering (CS 6385) (3 Units)
Model-Integrated Computing (CS 6388) (3 Units)
Principles of Cloud Computing (CS 5287) (3 Units)
![VU-ENG_010_DanielDubois_Campus-1 VU-ENG_010_DanielDubois_Campus-1](https://info.engineering.vanderbilt.edu/hubfs/VU-ENG_010_DanielDubois_Campus-1.jpg)
The Campus Convening
The on-campus convening is a three-day weekend event each Fall that brings online students and program faculty together at Vanderbilt University in Nashville, Tennessee. It is strongly recommended that all students attend one convening on Vanderbilt's campus during the fall semester of their first year in the program. This integral enrichment experience will serve as an introduction to Vanderbilt University student life and create opportunities for students to immerse themselves into Vanderbilt’s historic campus and everything it has to offer. Newly admitted cohorts will have the opportunity to meet classmates, hear from industry experts and interact with faculty on a personal level.