Diversity Courses
The courses that are currently approved to fulfill the diversity requirement of both the Ph.D. and the Masters degree are shown below.
There are three Diversity areas: Theory, Systems, and Applications, with at least four threads in each area.
Ph.D. students must take 5 diversity courses from the 3 areas. These are to be listed on the Research Qualification form (PDF). The courses taken must fall within the following rules:
- Two courses from one area, two courses from a second area, and 1 course from a third area.
- Within the areas where 2 courses are taken, they must be from different threads. The threads are numbered below.
- It is permitted to take as many diversity courses as you need for your research with the approval of your supervising professor, but only the courses that follow these rules may be counted towards the degree plan.
Masters students must take at least one Diversity course from each of the three areas. Additional Diversity courses may be taken as part of the coursework for the Masters degree.
Theory
- CS 388G Algorithms: Techniques & Theory; CS 388R* Randomized Algorithms
- CS 388T Theory of Computation;
CS 388C Combinatorics & Graph Theory; CS 388M* Communication Complexity
- CS 388P* Parallel Algorithms; CS 388H Cryptography
- CS 388L Introduction to Mathematical Logic; CS 389R Recursion & Induction I;
CS 388S Formal Semantics & Verification
Systems
- CS 380L Advanced Operating Systems; CS 380N Systems Modeling
- CS 380D Distributed Computing I; CS 386C Dependable Computing Systems; CS 380P* Parallel Systems
- CS 386M Communication Networks; CS 396M Advanced Networking Protocols;
CS 386W* Wireless Networking
- CS 386L Programming Languages; CS 380C Compilers
- CS 380S* Theory and Practice of Secure Systems;
CS 386S Network Protocol Security
- CS 382M Advanced Computer Architecture
Applications
- CS 386D Database Systems (This course takes the place of courses CS 386 and CS 387H which will no longer be taught. Students who have taken these courses may still apply them toward their degree; however they cannot also get credit for CS 386D).
- CS 383C Numerical Anaylsis: Linear Algebra; CS 383D Numerical Analysis: Interpolation, Approximation, Quadrature,and Differential Equations; CS
- 384G Computer Graphics; CS 384R* Geometric Modeling & Visualization; CS
- 391L Machine Learning;
CS 394N Neural Networks; CS 394R* Reinforcement Learning: Theory and Practice; C S 391D* Data Mining: A Mathematical Perspective
- CS 381K Artificial Intelligence; CS 388* Natural Language Processing: CS 393R* Autonomous Robots; CS 393C* Agent-Based Electronic Commerce; CS 394F Knowledge Representation & Reasoning
- CS 394P Automatic Programming; CS 392F* Feature Oriented Programming
- CS 394C Algorithms for Computational Biology (Originally named Computational Biology)
*These courses were originally taught as topic courses (CS 395T). Students should be aware that they will not receive dual credit for retaking the course under the new course number.
- CS 380P Parallel Systems
- CS 380S Theory & Practice of Secure Systems
- CS 384R Geometric Modeling & Visualization
- CS 386C Dependable Computing Systems
- CS 386S Network Protocol Security
- CS 388 Natural Language Processing
- CS 386W Wireless Networking
- CS 388H Cryptography
- CS 388M Communication Complexity
- CS 388P Parallel Algorithms
- CS 388R Randomized Algorithms
- CS 391D Data Mining: A Mathematical Perspective (originally A Statistical Learning Perspective)
- CS 394R Reinforcement Learning: Theory & Practice (originally Reinforcement Learning)
- CS 393R Autonomous Robots
- CS 393C Agent-BAsed Electronic Commerce
- CS 392F Feature Oriented Programming
- CS 394C Algorithms for Computational Biology