The list of all Computer Science courses appears here. Of these, courses with numbers above 4000 are considered *graduate courses *by the Computer Science department (*Note*: The one exception to the rule is "CS:5110 Introduction to Informatics," which does not carry graduate credit for CS students).

To help graduate students plan their course work, we provide below a thematic organization of our Computer Science graduate courses. Most of the courses that our graduate students take, fall in the "electives" category and so our students have a lot of choice with regards to courses they can take. Some of our MCS students take all four of our Software Engineering courses and complete the software engineering subtrack. More recently, some of our MCS students have focused on "Big Data" and have selected most of their electives from the "AI, Data Mining, and Data Analytics" group. MCS students with an interest in getting a PhD have selected electives from the "Theory and Algorithms" group or from the "Formal Methods and Programming Languages" group. It is helpful for MCS students to have a discussion (in their first semester) with their faculty advisor about elective course choices.

**AI, Data Mining, and Data Analytics**

- CS:4400 Database Systems
- CS:4420 Artificial Intelligence
- CS:4440 Web Mining
- CS:4470 Health Data Analytics
- CS:4480 Knowledge Discovery
- CS:4740 Large Data Analysis
- CS:5430 Machine Learning

**Algorithms and Theory**

- CS:4330 Theory of Computation
- CS:4350 Logic in Computer Science
- CS:5340 Limits of Computation (Formerly CS:4340)
- CS:5350 Design and Analysis of Algorithms
- CS:5360 Randomized Algorithms
- CS:5370 Computational Geometry

**Formal Methods and Programming Languages**

- CS:4350 Logic in Computer Science
- CS:5810 Formal Methods in Software Engineering
- CS:5850 Programming Language Foundations
- CS:5860 Lambda Calculus and Applications

**Human Computer Interaction and Virtual Environments**

- CS:4500 Research Methods in HCI

**Networks, Parallel, and Distributed Systems**

- CS:4630 Mobile Computing
- CS:4700 High Performance and Parallel Computing
- CS:5620 Distributed Systems and Algorithms
- CS:5630 Cloud Computing Technology

**Numerical and Parallel Computing**

- CS:4700 High Performance and Parallel Computing
- CS:4720 Optimization Techniques
- CS:4740 Large Data Analysis
- CS:5430 Machine Learning
- CS:5710 Numerical Analysis Nonlinear Equation Approximation Theory
- CS:5720 Numerical Analysis: Differential Equations and Linear Algebra

**Systems**

- CS:4630 Mobile Computing
- CS:4640 Computer Security
- CS:5610 High Performance Computer Architecture
- CS:5620 Distributed Systems and Algorithms
- CS:5630 Cloud Computing Technology

**Software Engineering**

- CS:5800 Fundamentals of Software Engineering
- CS:5810 Formal Methods in Software Engineering
- CS:5820 Software Engineering Languages and Tools
- CS:5830 Software Engineering Project

In addition to these courses with permanent numbers, our faculty offer many one-off courses (usually 3-4 per semester) with the number/title "CS: 4980 Topics in Computer Science II." These courses expand our graduate course offerings significantly; here is a list of CS: 4980 courses offered over the last few years:

- Accessible Computing
- Advances in Model Driven Development
- Automated Reasoning
- Big Data Technology (now CS: 5630)
- Compiler Construction
- Computational Epidemiology
- Computational Geometry (now CS: 5370)
- Computer Graphics/Vision
- Foundations of Embedded Systems
- Health Data Analytics (now CS: 4460)
- Healthcare Information Systems
- Information Visualization
- Internet Analytics
- iOS Application Development
- Lambda Calculus and Applications (now CS: 5860)
- Machine Learning (now CS: 5420)
- Model Driven and Agile Development
- Peer-to-Peer and Social Networks
- Perfomance Analysis
- Randomized Algorithms (now CS: 5360)
- Retrocomputing
- Sensor Networks (now CS: 4630)
- Software Estimation Techniques
- Virtual Reality