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.

Undergraduate Courses

Course Number & Name Course Format
Course Number & Name: 625.108 - Calculus I Course Format: Asynchronous Online
Course Number & Name: 625.109 - Calculus II Course Format: Asynchronous Online
Course Number & Name: 605.201 - Introduction to Programming Using Java Course Format: Asynchronous Online, Synchronous Online
Course Number & Name: 605.202 - Data Structures Course Format: Asynchronous Online, Synchronous Online
Course Number & Name: 605.203 - Discrete Mathematics Course Format: Asynchronous Online, In-person, Synchronous Online
Course Number & Name: 605.204 - Computer Organization Course Format: Asynchronous Online, Synchronous Online
Course Number & Name: 605.205 - Molecular Biology for Computer Scientists * Course Format: Asynchronous Online
Course Number & Name: 605.207 - Introduction to Programming Using C++ Course Format:

Foundation Courses

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

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

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: Asynchronous Online, Synchronous Online
Course Number & Name: 605.624 - Logic: Systems, Semantics, and Models Course Format: Asynchronous Online
Course Number & Name: 605.645 - Artificial Intelligence Course Format: Asynchronous Online
Course Number & Name: 605.646 - Natural Language Processing Course Format: Asynchronous Online, In-person
Course Number & Name: 605.647 - Neural Networks Course Format: Asynchronous Online, Synchronous Online
Course Number & Name: 605.649 - Introduction to Machine Learning Course Format: Asynchronous Online, Synchronous Online
Course Number & Name: 605.743 - Advanced Artificial Intelligence Course Format: Asynchronous Online, Synchronous Online
Course Number & Name: 605.745 - Reasoning Under Uncertainty Course Format: Asynchronous Online
Course Number & Name: 605.746 - Advanced Machine Learning Course Format: Asynchronous Online
Course Number & Name: 605.747 - Evolutionary and Swarm Intelligence Course Format: Asynchronous Online
Course Number & Name: 695.637 - Introduction to Assured AI and Autonomy Course Format: Asynchronous Online
Course Number & Name: 705.603 - Creating AI-Enabled Systems * Course Format: Asynchronous Online
Course Number & Name: 525.670 - Machine Learning for Signal Processing Course Format: Asynchronous Online
Course Number & Name: 525.733 - Deep Learning for Computer Vision Course Format: Synchronous Online
Course Number & Name: 525.786 - Human Robotics Interaction Course Format: In-person

Bioinformatics

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

Cybersecurity

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

Data Communications and Networking

Course Number & Name Course Format
Course Number & Name: 605.671 - Principles of Data Communications Networks Course Format: Asynchronous Online, In-person
Course Number & Name: 605.674 - Network Programming Course Format: Asynchronous Online
Course Number & Name: 605.675 - Protocol Design Course Format: Asynchronous Online
Course Number & Name: 605.677 - Internetworking with TCP/IP I Course Format: Asynchronous Online
Course Number & Name: 605.771 - Wired and Wireless Local and Metropolitan Area Networks Course Format: Asynchronous Online
Course Number & Name: 605.776 - Fourth Generation Wireless Communications: WiMAX and LTE Course Format: Hybrid In-person and Synchronous Online, In-person
Course Number & Name: 605.777 - Internetworking with TCP/IP II Course Format: Asynchronous Online
Course Number & Name: 605.779 - Network Design and Performance Analysis Course Format: Asynchronous Online
Course Number & Name: 525.678 - Next Generation Mobile Networks and Security with 5G Course Format: Synchronous Online
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: Asynchronous Online
Course Number & Name: 605.632 - Graph Analytics Course Format: Asynchronous Online
Course Number & Name: 605.633 - Social Media Analytics Course Format: Asynchronous Online
Course Number & Name: 605.634 - Crowdsourcing and Human Computation Course Format: Asynchronous Online
Course Number & Name: 605.635 - Cloud Computing Course Format: Asynchronous Online
Course Number & Name: 605.649 - Introduction to Machine Learning Course Format: Asynchronous Online, Synchronous Online
Course Number & Name: 605.662 - Data Visualization Course Format: Asynchronous Online
Course Number & Name: 605.724 - Applied Game Theory Course Format: Asynchronous Online
Course Number & Name: 605.731 - Survey of Cloud Computing Security Course Format: Asynchronous Online
Course Number & Name: 605.741 - Large-Scale Database Systems Course Format: Asynchronous Online
Course Number & Name: 605.744 - Information Retrieval Course Format: Asynchronous Online
Course Number & Name: 605.746 - Advanced Machine Learning Course Format: Asynchronous Online
Course Number & Name: 605.788 - Big Data Processing Using Hadoop Course Format: Asynchronous Online
Course Number & Name: 625.734 - Queuing Theory with Applications to Computer Science Course Format: In-person, Synchronous Online
Course Number & Name: 625.741 - Game Theory Course Format: Asynchronous Online
Course Number & Name: 685.648 - Data Science * Course Format: Asynchronous Online

Database Systems and Knowledge Management

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

Enterprise and Web Computing

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

Human-computer Interaction and Visualization

Course Number & Name Course Format
Course Number & Name: 605.634 - Crowdsourcing and Human Computation Course Format: Asynchronous Online
Course Number & Name: 605.661 - Computer Vision Course Format: Asynchronous Online
Course Number & Name: 605.662 - Data Visualization Course Format: Asynchronous Online
Course Number & Name: 605.667 - Computer Graphics Course Format: Asynchronous Online
Course Number & Name: 605.668 - Computer Gaming Engines Course Format: Synchronous Online
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: Synchronous Online
Course Number & Name: 635.661 - Principles of Human Computer Interaction Course Format: Asynchronous Online

Research

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

Software Engineering

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

Systems

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

Theory

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

Independent Study and Capstone Project

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

COURSES BY CONCENTRATION

Communications and Networking Concentration Prerequisite

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

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

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.