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, Hybrid In-person and Synchronous Online, 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: Synchronous Online |
Course Number & Name: 605.207 - Introduction to Programming Using C++ | Course Format: Synchronous Online |
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, Hybrid In-person and 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: 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 |
Course Number & Name: 605.647 - Neural Networks | Course Format: Asynchronous Online, Synchronous Online |
Course Number & Name: 605.649 - Principles and Methods in Machine Learning | Course Format: Asynchronous Online, Synchronous Online |
Course Number & Name: 605.742 - Deep Neural Networks | Course Format: Asynchronous Online |
Course Number & Name: 605.743 - Advanced Artificial Intelligence | 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: 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: Synchronous 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: |
Course Number & Name: 585.771 - Biomedical Data Science | Course Format: Asynchronous Online |
Cybersecurity
Course Number & Name | Course Format |
---|---|
Course Number & Name: 605.636 - Autonomic Computing | Course Format: Hybrid In-person and 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 |
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: Asynchronous Online, 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 |
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, 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 |
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 - Principles and Methods in 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: Hybrid In-person and Synchronous Online, 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 |
Course Number & Name: 605.647 - Neural Networks | Course Format: Asynchronous Online, Synchronous Online |
Course Number & Name: 605.740 - Machine Learning: Deep Learning | Course Format: Asynchronous 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.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: 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 |
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, Hybrid In-person and 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 |
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, Hybrid In-person and Synchronous Online |
Course Number & Name: 605.708 - Tools and Techniques of Software Project Management | Course Format: Asynchronous Online, 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: 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 |
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 |
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: Asynchronous Online, 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: Hybrid In-person and 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: Hybrid In-person and Synchronous Online, 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: |
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 |
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 |
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 |
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: Hybrid In-person and 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: Asynchronous Online |
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.