Please refer to the Schedule Planning Information page for a general idea when these courses are offered. For exact dates, times, locations, fees, and instructors, please refer to the course finder.

Provisional Courses

Course Number & Name Course Format
Course Number & Name: 625.108 - Calculus I and Course Format: Online - Asynchronous
Course Number & Name: 625.109 - Calculus II or Course Format: Online - Asynchronous
Course Number & Name: 605.156 - Calculus for Engineers Course Format: In-person
Course Number & Name: 605.201 - Introduction to Programming Using Java or Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.207 - Introduction to Programming Using C++ Course Format: Online - Synchronous
Course Number & Name: 605.202 - Data Structures Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.203 - Discrete Mathematics or Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 625.252 - Linear Algebra and Its Applications or Course Format: Online - Asynchronous
Course Number & Name: 625.251 - Introduction to Ordinary and Partial Differential Equations Course Format: Online - Asynchronous
Course Number & Name: 605.204 - Computer Organization Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.205 - Molecular Biology for Computer Scientists Course Format: Online - Synchronous

Core Courses

Students working toward a master's degree in Computer Science are required to take the following three courses before taking any other courses.

Course Number & Name Course Format
Course Number & Name: 605.601 - Foundations of Software Engineering Course Format: In-person, Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.611 - Foundations of Computer Architecture Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.621 - Foundations of Algorithms Course Format: Online - Asynchronous, Online - Synchronous

Focus Areas and Concentrations

Artificial Intelligence
Bioinformatics
Cybersecurity
Data Communications and Networking
Data Science and Cloud Computing
Database Systems and Knowledge Management
Enterprise and Web Computing
Human–Computer Interaction and Visualization
Research
Software Engineering
Systems
Theory
Communications and Networking Concentration

Courses by Focus Area

The focus areas offered represent related groups of courses that are relevant for students with interests in the selected areas. Students are required to choose a focus area to follow and to take at least three courses from the selected focus area, including at least one 700-level course. The focus areas are presented as an aid to students in planning their course selections and are only applicable to students seeking a master’s degree. They do not appear as official designations on a student’s transcript or diploma.

Artificial Intelligence

Course Number & Name Course Format
Course Number & Name: 605.613 - Introduction to Robotics Course Format: Online - Synchronous
Course Number & Name: 605.645 - Artificial Intelligence Course Format: Online - Asynchronous
Course Number & Name: 605.646 - Natural Language Processing Course Format: Online - Asynchronous
Course Number & Name: 605.647 - Neural Networks Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.649 - Principles and Methods in Machine Learning Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.740 - Machine Learning: Deep Learning Course Format: Online - Asynchronous
Course Number & Name: 605.742 - Deep Neural Networks Course Format: Online - Asynchronous
Course Number & Name: 605.743 - Advanced Artificial Intelligence Course Format: Online - Asynchronous
Course Number & Name: 605.745 - Reasoning Under Uncertainty Course Format: Online - Asynchronous
Course Number & Name: 605.746 - Advanced Machine Learning Course Format: Online - Asynchronous
Course Number & Name: 605.747 - Evolutionary and Swarm Intelligence Course Format: Online - Asynchronous
Course Number & Name: 635.603 - AI/ML Ops Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 635.782 - Ethics in Intelligent Systems Course Format: Online - Synchronous
Course Number & Name: 695.637 - Introduction to Assured AI and Autonomy Course Format: Online - Asynchronous
Course Number & Name: 705.603 - Creating AI-Enabled Systems * Course Format: Online - Asynchronous
Course Number & Name: 705.615 - Artificial Intelligence for Leaders Course Format: Online - Asynchronous
Course Number & Name: 525.670 - Machine Learning for Signal Processing Course Format: Online - Asynchronous
Course Number & Name: 525.733 - Deep Learning for Computer Vision Course Format: Online - Synchronous
Course Number & Name: 525.786 - Human Robotics Interaction Course Format: In-person

Bioinformatics

Course Number & Name Course Format
Course Number & Name: 605.631 - Statistical Methods for Computer Science Course Format: Online - Asynchronous
Course Number & Name: 605.643 - Linked Data and the Semantic Web Course Format: Online - Asynchronous
Course Number & Name: 605.651 - Principles of Bioinformatics Course Format: Online - Asynchronous
Course Number & Name: 605.652 - Biological Databases and Database Tools Course Format: Online - Asynchronous
Course Number & Name: 605.653 - Computational Genomics Course Format: Online - Asynchronous
Course Number & Name: 605.656 - Computational Drug Discovery,Dev Course Format: Online - Synchronous
Course Number & Name: 605.657 - Statistics for Bioinformatics Course Format: Online - Asynchronous
Course Number & Name: 605.716 - Modeling and Simulation of Complex Systems Course Format: Online - Synchronous
Course Number & Name: 605.751 - Algorithms for Structural Bioinformatics Course Format: Online - Asynchronous
Course Number & Name: 605.755 - Systems Biology Course Format: Online - Asynchronous
Course Number & Name: 605.759 - Independent Project in Bioinformatics Course Format: Online - Asynchronous
Course Number & Name: 705.618 - Neuromarketing AI Course Format: Online - Synchronous
Course Number & Name: 585.771 - Biomedical Data Science Course Format: Online - Asynchronous

Cybersecurity

Course Number & Name Course Format
Course Number & Name: 605.609 - DevOps and Secure Software Development Course Format: Online - Asynchronous
Course Number & Name: 605.636 - Autonomic Computing Course Format: In-person, Online - Synchronous
Course Number & Name: 605.731 - Survey of Cloud Computing Security Course Format: Online - Asynchronous
Course Number & Name: 635.611 - Principles of Network Engineering Course Format: Online - Asynchronous
Course Number & Name: 635.673 - Protecting Critical Infrastructure Against Cyber Attacks Course Format: Online - Asynchronous
Course Number & Name: 635.676 - Cybersecurity in Information Systems Course Format: Online - Asynchronous
Course Number & Name: 635.711 - Advanced Topics in Network Engineering Course Format: Online - Asynchronous
Course Number & Name: 635.775 - Cyber Operations, Risk, and Compliance Course Format: Online - Asynchronous
Course Number & Name: 695.601 - Foundations of Information Assurance Course Format: Online - Asynchronous
Course Number & Name: 695.611 - Embedded Computer Systems-Vulnerabilities, Intrusions, and Protection Mechanisms Course Format: Online - Asynchronous
Course Number & Name: 695.612 - Operating Systems Security Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 695.615 - Cyber Physical Systems Security Course Format: Online - Asynchronous
Course Number & Name: 695.622 - Web Security Course Format: Online - Asynchronous
Course Number & Name: 695.624 - Introduction to Internet of Things Security and Privacy Course Format: Online - Synchronous
Course Number & Name: 695.641 - Cryptology Course Format: Online - Asynchronous
Course Number & Name: 695.642 - Intrusion Detection Course Format: Online - Asynchronous
Course Number & Name: 695.643 - Introduction to Ethical Hacking Course Format: Online - Asynchronous
Course Number & Name: 695.711 - Java Security Course Format: Online - Asynchronous
Course Number & Name: 695.721 - Network Security Course Format: In-person, Online - Asynchronous, Online - Synchronous
Course Number & Name: 695.723 - Advanced Web Security Course Format: Online - Asynchronous
Course Number & Name: 695.742 - Digital Forensics Technologies and Techniques Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 695.744 - Reverse Engineering and Vulnerability Analysis Course Format: Online - Asynchronous

Data Communications and Networking

Course Number & Name Course Format
Course Number & Name: 605.671 - Principles of Data Communications Networks Course Format: Online - Asynchronous
Course Number & Name: 605.674 - Network Programming Course Format: Online - Asynchronous
Course Number & Name: 605.675 - Protocol Design Course Format: Online - Asynchronous
Course Number & Name: 605.677 - Internetworking with TCP/IP I Course Format: Online - Asynchronous
Course Number & Name: 605.771 - Wired and Wireless Local and Metropolitan Area Networks Course Format: Online - Asynchronous
Course Number & Name: 605.777 - Internetworking with TCP/IP II Course Format: Online - Asynchronous
Course Number & Name: 605.779 - Network Design and Performance Analysis Course Format: Online - Asynchronous
Course Number & Name: 635.611 - Principles of Network Engineering Course Format: Online - Asynchronous
Course Number & Name: 635.711 - Advanced Topics in Network Engineering Course Format: Online - Asynchronous
Course Number & Name: 525.678 - Next Generation Mobile Networks and Security with 5G Course Format: Online - Synchronous
Course Number & Name: 525.768 - Wireless Networks Course Format: In-person

Data Science and Cloud Computing

Course Number & Name Course Format
Course Number & Name: 605.631 - Statistical Methods for Computer Science Course Format: Online - Asynchronous
Course Number & Name: 605.632 - Graph Analytics Course Format: Online - Asynchronous
Course Number & Name: 605.633 - Social Media Analytics Course Format: Online - Asynchronous
Course Number & Name: 605.634 - Crowdsourcing and Human Computation Course Format: Online - Asynchronous
Course Number & Name: 605.635 - Cloud Computing Course Format: Online - Asynchronous
Course Number & Name: 605.649 - Principles and Methods in Machine Learning Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.662 - Data Visualization Course Format: Online - Asynchronous
Course Number & Name: 605.724 - Applied Game Theory Course Format: Online - Asynchronous
Course Number & Name: 605.731 - Survey of Cloud Computing Security Course Format: Online - Asynchronous
Course Number & Name: 605.741 - Large-Scale Database Systems Course Format: Online - Asynchronous
Course Number & Name: 605.744 - Information Retrieval Course Format: Online - Asynchronous
Course Number & Name: 605.746 - Advanced Machine Learning Course Format: Online - Asynchronous
Course Number & Name: 605.788 - Big Data Processing Using Hadoop Course Format: Online - Asynchronous
Course Number & Name: 685.648 - Data Science * Course Format: Online - Asynchronous
Course Number & Name: 625.734 - Queuing Theory Course Format: In-person, Online - Synchronous
Course Number & Name: 625.741 - Game Theory Course Format: Online - Asynchronous

Database Systems and Knowledge Management

Course Number & Name Course Format
Course Number & Name: 605.624 - Logic: Systems, Semantics, and Models Course Format: Online - Asynchronous
Course Number & Name: 605.641 - Principles of Database Systems Course Format: Online - Asynchronous
Course Number & Name: 605.643 - Linked Data and the Semantic Web Course Format: Online - Asynchronous
Course Number & Name: 605.644 - XML Design Paradigms Course Format: Online - Asynchronous
Course Number & Name: 605.645 - Artificial Intelligence Course Format: Online - Asynchronous
Course Number & Name: 605.647 - Neural Networks Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.740 - Machine Learning: Deep Learning Course Format: Online - Asynchronous
Course Number & Name: 605.741 - Large-Scale Database Systems Course Format: Online - Asynchronous
Course Number & Name: 605.742 - Deep Neural Networks Course Format: Online - Asynchronous
Course Number & Name: 605.744 - Information Retrieval Course Format: Online - Asynchronous
Course Number & Name: 605.745 - Reasoning Under Uncertainty Course Format: Online - Asynchronous
Course Number & Name: 635.632 - Engineering Data Intensive Systems Course Format: Online - Asynchronous
Course Number & Name: 685.648 - Data Science * Course Format: Online - Asynchronous
Course Number & Name: 525.733 - Deep Learning for Computer Vision Course Format: Online - Synchronous

Enterprise and Web Computing

Course Number & Name Course Format
Course Number & Name: 605.681 - Principles of Enterprise Web Development Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.682 - Web Application Development with Java Course Format: Online - Asynchronous
Course Number & Name: 605.683 - Java Enterprise Development: Processes, Tools and Infrastructure Course Format: Online - Asynchronous
Course Number & Name: 605.686 - Mobile Application Development for the Android Platform Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.687 - Mobile Application Development for the iOS Platform Course Format: Online - Asynchronous
Course Number & Name: 605.691 - Entrepreneurship for Computer Scientists Course Format: Online - Synchronous
Course Number & Name: 605.784 - Enterprise Computing with Java Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.786 - Enterprise System Design and Implementation Course Format: Online - Asynchronous
Course Number & Name: 605.787 - Front End Web App Development Course Format: Online - Asynchronous
Course Number & Name: 605.788 - Big Data Processing Using Hadoop Course Format: Online - Asynchronous
Course Number & Name: 605.789 - Service API Design and Development Course Format: Online - Asynchronous
Course Number & Name: 635.683 - E-Business: Models, Architecture, Technologies, and Infrastructure Course Format: Online - Synchronous
Course Number & Name: 635.792 - Entrepreneurship, Innovation, and Corporate Success Course Format: Online - Synchronous

Human–Computer Interaction and Visualization

Course Number & Name Course Format
Course Number & Name: 605.633 - Social Media Analytics Course Format: Online - Asynchronous
Course Number & Name: 605.634 - Crowdsourcing and Human Computation Course Format: Online - Asynchronous
Course Number & Name: 605.661 - Computer Vision Course Format: Online - Asynchronous
Course Number & Name: 605.662 - Data Visualization Course Format: Online - Asynchronous
Course Number & Name: 605.667 - Computer Graphics Course Format: Online - Asynchronous
Course Number & Name: 605.668 - Computer Gaming Engines Course Format: Online - Synchronous
Course Number & Name: 605.767 - Applied Computer Graphics Course Format: In-person
Course Number & Name: 605.768 - Advanced Game Design and Development Engines Course Format: Online - Synchronous
Course Number & Name: 635.661 - Principles of Human Computer Interaction Course Format: Online - Asynchronous

Research

Course Number & Name Course Format
Course Number & Name: 605.646 - Natural Language Processing Course Format: Online - Asynchronous
Course Number & Name: 605.728 - Quantum Computation Course Format: Online - Asynchronous
Course Number & Name: 605.746 - Advanced Machine Learning Course Format: Online - Asynchronous
Course Number & Name: 605.747 - Evolutionary and Swarm Intelligence Course Format: Online - Asynchronous
Course Number & Name: 605.795 - Capstone Project in Computer Science Course Format: Online - Asynchronous
Course Number & Name: 605.801 - Independent Study in Computer Science I Course Format: Online - Asynchronous
Course Number & Name: 605.802 - Independent Study in Computer Science II Course Format: Online - Asynchronous
Course Number & Name: 635.673 - Protecting Critical Infrastructure Against Cyber Attacks Course Format: Online - Asynchronous
Course Number & Name: 695.722 - Covert Channels Course Format: Online - Asynchronous

Software Engineering

Course Number & Name Course Format
Course Number & Name: 605.601 - Foundations of Software Engineering Course Format: In-person, Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.603 - Object-Oriented and Functional Programming in Kotlin Course Format: Online - Synchronous
Course Number & Name: 605.604 - Object-Oriented Programming with C++ Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.606 - Programming with Domain-Specific Languages Course Format: In-person
Course Number & Name: 605.607 - Agile Software Development Methods Course Format: Online - Asynchronous
Course Number & Name: 605.608 - Software Project Management Course Format: Online - Asynchronous
Course Number & Name: 605.609 - DevOps and Secure Software Development Course Format: Online - Asynchronous
Course Number & Name: 605.629 - Programming Languages Course Format: Online - Asynchronous
Course Number & Name: 605.701 - Software Systems Engineering Course Format: In-person, Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.702 - Cloud-native Architecture and Microservices Course Format: Online - Asynchronous
Course Number & Name: 605.704 - Object-Oriented Analysis and Design Course Format: Online - Asynchronous
Course Number & Name: 605.705 - Software Safety Course Format: Online - Asynchronous
Course Number & Name: 605.707 - Software Patterns Course Format: In-person, Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.708 - Tools and Techniques of Software Project Management Course Format: Online - Asynchronous, Online - Synchronous

Systems

Course Number & Name Course Format
Course Number & Name: 605.611 - Foundations of Computer Architecture Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.612 - Operating Systems Course Format: Online - Asynchronous
Course Number & Name: 605.613 - Introduction to Robotics Course Format: Online - Synchronous
Course Number & Name: 605.614 - System Development in the UNIX Environment Course Format: In-person, Online - Asynchronous
Course Number & Name: 605.615 - Compiler Design with LLVM Course Format: Online - Synchronous
Course Number & Name: 605.616 - Multiprocessor Architecture & Programming Course Format: Online - Asynchronous
Course Number & Name: 605.617 - Introduction to GPU Programming Course Format: Online - Asynchronous
Course Number & Name: 605.618 - Introduction to High Performance Computing Course Format: Online - Synchronous
Course Number & Name: 605.715 - Software Development for Real-Time Embedded Systems Course Format: Online - Asynchronous
Course Number & Name: 605.716 - Modeling and Simulation of Complex Systems Course Format: Online - Synchronous

Theory

Course Number & Name Course Format
Course Number & Name: 605.620 - Algorithms for Bioinformatics Course Format: Online - Asynchronous
Course Number & Name: 605.621 - Foundations of Algorithms Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.622 - Computational Signal Processing Course Format: In-person, Online - Synchronous
Course Number & Name: 605.624 - Logic: Systems, Semantics, and Models Course Format: Online - Asynchronous
Course Number & Name: 605.626 - Image Processing Course Format: Online - Asynchronous
Course Number & Name: 605.629 - Programming Languages Course Format: Online - Asynchronous
Course Number & Name: 605.630 - Theory of Computation Course Format: Online - Asynchronous
Course Number & Name: 605.721 - Design and Analysis of Algorithms Course Format: In-person
Course Number & Name: 605.724 - Applied Game Theory Course Format: Online - Asynchronous
Course Number & Name: 605.727 - Computational Geometry Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.728 - Quantum Computation Course Format: Online - Asynchronous
Course Number & Name: 605.729 - Formal Methods Course Format: Online - Synchronous
Course Number & Name: 625.617 - Intro to Enumerative Combinatorics Course Format: Online - Asynchronous
Course Number & Name: 625.687 - Applied Topology Course Format: In-person, Online - Synchronous
Course Number & Name: 625.690 - Computational Complexity and Approximation Course Format: Online - Asynchronous
Course Number & Name: 625.692 - Probabilistic Graphical Models Course Format: Online - Asynchronous
Course Number & Name: 625.734 - Queuing Theory Course Format: In-person, Online - Synchronous
Course Number & Name: 625.741 - Game Theory Course Format: Online - Asynchronous

Independent Study and Capstone Project

Course Number & Name Course Format
Course Number & Name: 605.795 - Capstone Project in Computer Science Course Format: Online - Asynchronous
Course Number & Name: 605.801 - Independent Study in Computer Science I Course Format: Online - Asynchronous
Course Number & Name: 605.802 - Independent Study in Computer Science II Course Format: Online - Asynchronous

COURSES BY CONCENTRATION

Communications and Networking Concentration Provisional Courses

Course Number & Name Course Format
Course Number & Name: 525.202 - Signals and Systems Course Format: Online - Asynchronous

Communications and Networking Concentration Foundational Courses

Course Number & Name Course Format
Course Number & Name: 605.601 - Foundations of Software Engineering Course Format: In-person, Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.611 - Foundations of Computer Architecture Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 605.621 - Foundations of Algorithms Course Format: Online - Asynchronous, Online - Synchronous

Communications and Networking Concentration Electives

Select seven; no more than three courses may come from electrical and computer engineering 525.XXX

Course Number & Name Course Format
Course Number & Name: 605.671 - Principles of Data Communications Networks Course Format: Online - Asynchronous
Course Number & Name: 605.674 - Network Programming Course Format: Online - Asynchronous
Course Number & Name: 605.675 - Protocol Design Course Format: Online - Asynchronous
Course Number & Name: 605.677 - Internetworking with TCP/IP I Course Format: Online - Asynchronous
Course Number & Name: 605.771 - Wired and Wireless Local and Metropolitan Area Networks Course Format: Online - Asynchronous
Course Number & Name: 605.777 - Internetworking with TCP/IP II Course Format: Online - Asynchronous
Course Number & Name: 695.601 - Foundations of Information Assurance Course Format: Online - Asynchronous
Course Number & Name: 695.622 - Web Security Course Format: Online - Asynchronous
Course Number & Name: 695.721 - Network Security Course Format: In-person, Online - Asynchronous, Online - Synchronous
Course Number & Name: 525.608 - Next Generation Telecommunications Course Format: In-person, Online - Synchronous
Course Number & Name: 525.614 - Probability & Stochastic Processes for Engineers Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 525.616 - Communication Systems Engineering Course Format: Online - Asynchronous, Online - Synchronous
Course Number & Name: 525.618 - Antenna Systems Course Format: Online - Asynchronous
Course Number & Name: 525.620 - Electromagnetic Transmission Systems Course Format: Online - Synchronous
Course Number & Name: 525.638 - Introduction to Modern Wireless and Optical Communication Systems Course Format: Online - Asynchronous
Course Number & Name: 525.640 - Satellite Communications Systems Course Format: Online - Asynchronous
Course Number & Name: 525.641 - Computer and Data Communication Networks I Course Format: Online - Synchronous
Course Number & Name: 525.678 - Next Generation Mobile Networks and Security with 5G Course Format: Online - Synchronous
Course Number & Name: 525.707 - Error Control Coding Course Format: Online - Synchronous
Course Number & Name: 525.708 - Iterative Methods in Communications Systems Course Format: Online - Synchronous
Course Number & Name: 525.722 - Wireless and Mobile Cellular Communications Course Format: Online - Asynchronous
Course Number & Name: 525.735 - MIMO Wireless Communications Course Format: Online - Asynchronous
Course Number & Name: 525.738 - Advanced Antenna Systems Course Format: Online - Asynchronous
Course Number & Name: 525.747 - Speech Processing Course Format: In-person, Online - Synchronous
Course Number & Name: 525.751 - Software Radio for Wireless Communications Course Format: Online - Asynchronous
Course Number & Name: 525.754 - Wireless Communication Circuits Course Format: Online - Asynchronous
Course Number & Name: 525.759 - Image Compression, Packet Video, and Video Processing Course Format: Online - Asynchronous
Course Number & Name: 525.761 - Wireless and Wireline Network Integration Course Format: Online - Synchronous
Course Number & Name: 525.768 - Wireless Networks Course Format: In-person
Course Number & Name: 525.771 - Propagation of Radio Waves in the Atmosphere Course Format: In-person, Online - Synchronous
Course Number & Name: 525.772 - Fiber-Optic Communication Systems Course Format: Online - Synchronous
Course Number & Name: 525.776 - Information Theory Course Format: Online - Asynchronous
Course Number & Name: 525.783 - Spread Spectrum Communications Course Format: Online - Asynchronous
Course Number & Name: 525.789 - Advanced Satellite Communications Course Format: Online - Synchronous
Course Number & Name: 525.791 - Microwave Communications Laboratory Course Format: In-person, Online - Synchronous
Course Number & Name: 525.793 - Advanced Communication Systems Course Format: Online - Asynchronous

Apply Today

Complement your knowledge with principles that can be applied to almost every discipline of science, engineering, industry, and technology—from defense technology and business to public policy and biomedicine.