Graduate Coursework

Contents

  1. Registration and Coursework Policies
    1. Satisfactory progress
    2. Registration and Minimum course load per semester
    3. Taking Courses in Other Departments
    4. Pre-Candidacy Research Credits
    5. PhD Coursework Waiver Policy
  2. Course Listing
    1. Areas and Courses
    2. 898/899/799/798 Section Numbers
    3. Special Topics Courses

1. Registration and Coursework Policies

Satisfactory Progress

You are expected to make satisfactory progress toward your degree, commensurate with your other responsibilities. You must maintain continuous registration either via coursework or research credits. You must maintain an overall B average in your coursework exclusive of CMSC 799 (Thesis Research) and CMSC 899 (Dissertation Research).  Otherwise, your graduate admission may be terminated.

If you receive a grade of I (incomplete) in any course, you must have this grade removed before you can be granted your degree. If you receive a grade of D or F in a graduate course, you may not complete your degree unless you raise your grade for that course to a C or higher by repeating the course.

You are responsible for being aware of and meeting all deadlines and requirements relevant to your progress through graduate school. Exact dates of examinations and application deadlines are posted by the Graduate School each academic year, and by the department each semester. The department will notify you of any changes in departmental policies either by sending you mail or by posting an announcement to gradlist [-at-] cs [dot] umd [dot] edu.

You are responsible for notifying the Computer Science Graduate Office in writing of any circumstances that would prevent you from maintaining graduate standing or fulfilling the requirements for your degree.

Registration and Minimum course load per semester

All Computer Science graduate students must register using Testudo (http://www.testudo.umd.edu). Each semester, your advisor must approve your registration as well as changes to it. The Computer Science Graduate Office helps students obtain permission to take restricted courses. Due to heavy demand for Computer Science courses, we strongly advise you to register early.

Minimum course load

Course load is measured in units, which are defined as follows:

Course Load Unit Table

Courses numbered 000-399

2 units/credit hour

Courses numbered 400-499

4 units/credit hour
Courses numbered 500-599 5 units/credit hour
Courses numbered 600-897 6 units/credit hour
Research courses 799 12 units/credit hour
Pre-Candidacy Research 898 18 units/credit hour
Post-Candidacy Research 899 Mandatory 6 credits /108 units total

Audited courses do not generate graduate units. A part-time graduate student must complete at least 12 units per year. A full-time graduate student is normally expected to successfully complete a combination of courses that totals at least 48 units each semester (excluding summer sessions). For graduate assistants, the minimum full-time requirement is reduced to 24 units, calculated as above (36 units for half-time appointments). Graduate assistants and International students must maintain full-time status.

Consult this reference to help calculate whether or not your coursework qualifies you as a full-time graduate student:

Graduate Coursework Qualification
 

400-499

600-897 799 898 899
1 cr. 4 units 6 units 12 units 18 units 18 units
2 cr. 8 units 12 units 24 units 36 units 36 units
3 cr. 12 units 18 units 36 units 54 units 54 units
4 cr. 16 units 24 units 48 units 72 units 72 units
5 cr. 20 units 30 units 60 units    
6 cr. 24 units 36 units 72 units    
7 cr. 28 units 42 units      
8 cr. 32 units 48 units      
9 cr. 36 units 54 units      

Taking Courses from Other Departments

Courses from other departments can be used to satisfy the elective requirements (see section 2.3 in the policy manual). In certain cases, courses from other departments may be used for MS/PhD qualifying coursework. These courses must still meet the requirements for qualifying designation: they must primarily (at least 75%) base the course grade on a combination of homework, programming assignments, research projects, and exams. Any of these components are optional, except the courses' written exam(s) which must account for at least 30% of the grade. If you want to do this, you should submit to the Grad Office a request that:

  • Identifies the course, gives info (syllabus, instructor, etc.)
  • Identifies the area in which you want the course to count
  • A letter of support from your advisor

The Grad Office forwards the request to the relevant area representative and asks for a decision on:

  • Whether the course is acceptable as a Phd/MS course for the area
  • If so, at what level (400 or higher).

Please submit the request sufficiently prior to the start of the semester in which the course is to be done.

Pre-Candidacy Research Credits

Pre-candidacy research credits (CMSC898) are used to maintain registration and/or full-time status when formal coursework will not meet those requirements. If you are doing research with your advisor but have not yet advanced to candidacy, you should also register for CMSC 898 to reflect these efforts.

CMSC898 section numbers are directly related to the professor you are doing your research with. A listing of section numbers can be found here

Note: For PhD students getting an MS along-the-way, CMSC798 should be taken in place of CMSC898 for the maximum of 6 credits, as CMSC898 does not count towards the M.S. 

PhD Coursework Waiver Policy

Up to three waivers may be granted to reduce the number of courses needed to be taken at UMD. This is granted to students with prior graduate coursework at a comparable school. For this, the course must closely approximate a UMD qualifying course (exams, be at the graduate level, and have a comparable syllabus). They must be approved by the appropriate field committee. These courses can be used either for the mastery or elective courses. Waiving courses does not reduce the number of A’s needed at UMD.

Some notes:

  • A maximum of 3 courses can be waived. Please only submit 3 requests at a time. More can be submitted if negative decisions have been reached on some of your original requests.
  • No graduate courses taken for undergraduate credit will be waived (courses taken for graduate credit while enrolled in an undergraduate program, as in the BS/MS program, are eligible).
  • Course waivers will not reduce the number of As required in courses taken at UMD (4).
  • Waivers will not be considered for courses which are no longer being offered at UMD, or for non-CS courses.
  • 400-level courses are not acceptable for credit towards the PhD, so any 400-level course equivalents you wish to count towards your MS should be requested using the Inclusion or Transfer of Credits form. This has a limit of 2 courses from an outside institution (per Graduate School policy). Note that these courses will count towards the maximum number of waivable courses (3).

Waivers are granted by field committees and approved by the Director of Graduate Studies. Requests for waivers should be submitted via this form to the appropriate field committee chair(s) by October 1 if you started in the fall semester, and March 1 if you started in the spring semester. Note you must explicitly link to the UMD course you are waiving, so a comparison can be made.

2. Course Listings

Areas and Courses

The graduate program coursework is organized into areas, each with associated faculty and courses. There are currently eight areas:

  • Artificial Intelligence
  • Bioinformatics
  • Computer Systems
  • Database Systems
  • Software Engineering/Programming Languages/HCI
  • Scientific Computing
  • Algorithms and Computation Theory
  • Visual and Geometric Computing

Below are the courses by area:

Algorithms and Computation Theory

CMSC451: Design and Analysis of Computer Algorithms
CMSC452: Elementary Theory of Computation
CMSC454: Algorithms for Data Science
CMSC456: Cryptology
CMSC457: Introduction to Quantum Computing
CMSC474: Introduction to Computational Game Theory
CMSC475: Combinatorics and Graph Theory
CMSC651: Analysis of Algorithms
CMSC652: Complexity Theory
CMSC656: Introduction to Cryptography
CMSC657: Introduction to Quantum Information Processing
CMSC742: Algorithms in Machine Learning: Guarantees and Analyses
CMSC751: Parallel Algorithms
CMSC752: Ramsey Theory
CMSC754: Computational Geometry

Artificial Intelligence

CMSC421: Introduction to Artificial Intelligence
CMSC422: Introduction to Machine Learning
CMSC470: Introduction to Natural Language Processing
CMSC472: Introduction to Deep Learning
CMSC473: Capstone in Machine Learning
CMSC474: Introduction to Computational Game Theory
CMSC721: Non-Monotonic Reasoning
CMSC722: Artificial Intelligence Planning
CMSC723: Natural Language Processing
CMSC726: Machine Learning
CMSC727: Neural Modeling
CMSC742: Algorithms in Machine Learning: Guarantees and Analyses
CMSC756: Robotics
CMSC773: Computational Linguistics II

Bioinformatics

CMSC423: Bioinformatic Algorithms, Databases and Tools
CMSC601: Computational and Mathematical Analysis of Biological Networks across Scales
CMSC701: Computational Genomics
CMSC702: Computational Systems Biology
CMSC703: Network Analysis and Modeling of Biological Systems

Computer Systems

CMSC411: Computer Systems Architecture
CMSC412: Operating Systems
CMSC414: Computer Security
CMSC416: Introduction to Parallel Computing
CMSC417: Computer Networks
CMSC614: Computer and Network Security
CMSC711: Computer Networks
CMSC712: Distributed Algorithms and Verification
CMSC714: High Performance Computing
CMSC715: Wireless and Mobile Systems for the IoT
CMSC730: Interactive Technologies in Human-Computer Interaction

Database Systems

CMSC420: Data Structures
CMSC423: Bioinformatic Algorithms, Databases and Tools
CMSC424: Database Design
CMSC624: Database Systems Implementation
CMSC724: Database Management Systems
CMSC725: Geographic Information Systems and Spatial Databases

Scientific Computing

CMSC460: Computational Methods
CMSC462: Computer Science for Scientific Computing
CMSC466: Introduction to Numerical Analysis I
CMSC660: Scientific Computing I
CMSC661: Scientific Computing II
CMSC666: Numerical Analysis I
CMSC667: Numerical Analysis II
CMSC762: Numerical Solution of Nonlinear Equations
CMSC763: Advanced Linear Numerical Analysis
CMSC764: Advanced Numerical Optimization

Software Engineering/Programming Languages/HCI

CMSC430: Introduction to Compilers
CMSC433: Programming Language Technologies and Paradigms
CMSC434: Introduction to Human-Computer Interaction
CMSC435: Software Engineering
CMSC436: Programming Handheld Systems
CMSC471: Introduction to Data Visualization
CMSC630: Foundations of Software Verification
CMSC631: Program Analysis and Understanding
CMSC632: Software Product Assurance
CMSC634: Empirical Research Methods for Computer Science
CMSC730: Interactive Technologies in Human-Computer Interaction
CMSC732: Human Factors in Security and Privacy
CMSC734: Information Visualization
CMSC735: Quantitative Approach to Software Management and Engineering
CMSC736: Software Engineering Environments
CMSC737: Fundamentals of Software Testing

Visual and Geometric Computing

CMSC401: Algorithms for Geospatial Computing
CMSC425: Game Programming
CMSC426: Image Processing
CMSC427: Computer Graphics
CMSC477: Robotics Perception and Planning
CMSC725: Geographic Information Systems and Spatial Databases
CMSC733: Computer Processing of Pictorial Information
CMSC740: Advanced Computer Graphics
CMSC741: Geometric and Solid Modeling
CMSC754: Computational Geometry
CMSC756: Robotics

Some courses may appear in more than one area. However, you cannot use a particular course to satisfy more than one area's requirement.

It is expected that courses at the 600-800 level will be offered on a rotating basis, roughly every three or four semesters.

In addition to the courses listed above, special topics courses are offered, under the course numbers CMSC 818, 828, 838, etc.

898/899/799/798 Section Numbers

Sections for the following independent research courses (CMSC798, 799, 898, 899) are by faculty member.

  • CMSC798 - Master's Non-Thesis Research
  • CMSC799 - Master's Thesis Research
  • CMSC898 - Pre-Candidacy Research
  • CMSC899 - Doctoral Dissertation Research

It is assumed students have already received faculty approval for registering for their section. For CM899, PhD students who have advanced to candidacy will automatically be registered each Fall and Spring by the registrar if the student has advanced by end of schedule adjustment for that semester. PhD students graduating in summer would need to register for 1 credit of CMSC899 to meet the requirement of being registered the semester of graduation.

Off-campus Internship/Individual Study (I1** or I2**): Students who are off-campus or on internship can register for "I" sections in summer (replacing the zero in the course number with the letter "I"). These sections are intended for when the student is NOT required to come to campus. All coursework is off-site or there are no on-campus meetings with the advisor. Students will be charged the off-campus mandatory student services fee if they are enrolled in this type of section.

Professor Fall / Spring Section Numbers Summer Session I Summer Session II
Abadi 0707 0109 0209
Agrawala 1000 0101 0201
Ai 1451    
Alagic 0706 0136 0236
Aloimonos 1050 0102 0202
Arbaugh 1100 0145 0245
Asgari 1060 0174 0274
Baras 1150    
Barg   0182 0282
Barua 1200 0173 0273
Battle 0102 0152 0252
Bera 1201    
Bhatele 3650 0137 0237
Bhattacharjee 1350 0142 0242
Bhattacharyya 1400    
Boyd-Graber 8601 0187 0287
Cameron 5000 0158 0258
Carpuat 1450 0195 0295
Chan 1490    
Chellappa 1500 0147 0247
Childs 1515 0191 0291
Choe, Eun Kyoung 0123    
Cleaveland 1525 0184 0284
Corrada Bravo 8501 0111 0211
Coudron 1351 0139 0239
Cukier 1550 0162 0262
Cummings 1575 0155 0255
Dachman-Soled 0117    
Daume 8201 0107 0207
Davis 1600 0104 0204
De Floriani 1625 0166 0266
Deshpande 1635 0167 0267
Dhulipala 1560 0177 0277
Dickerson 8701 0138 0238
Dumitras 1570 0157 0257
Duraiswami 1725 0168 0268
Eastman 3374 0173 0273
Elman 1750 0106 0206
Elmqvist 1765 0192 0292
Erete 1780    
Feizi 0115 0105 0205
Feldman 0112    
Fermuller 0118    
Foster 1800    
Franklin 1850    
Frias-Martinez 3600 0140 0240
Gasarch 1900 0110 0210
Golbeck 1960    
Goldstein 1980 0194 0294
Golub 1975 0175 0275
Gottesman 1203 0143 0243
Grant 2000 0176 0276
Gupta 2100 0177 0277
Hajiaghayi 2175 0189 0289
Hannenhalli 2125    
Hicks 2200 0163 0263
Hollingsworth 2250 0113 0213
Horty 2300 0178 0278
Huang, Furong 0104 0103 0203
Huang, Heng 2305 0130 0230
Huang, Jia-Bin 2310 0198 0298
Hugue   0179 0279
Jacob, Bruce 2325    
Jacobs, David 2350 0160 0260
JaJa, Joseph 0125    
Kacorri 0106 0135 0235
Katz 2450 0164 0264
Keleher 2500 0114 0214
Khuller 2550 0115 0215
Kruskal 2600    
Lackey 0114 0136 0236
Lampropoulos 1801    
Lazar 0703    
Leiserson 0105 0146 0246
Levin 2615 0132 0232
Liu, Yi-Kai 2625    
Liu, Zhicheng 3351 0172 0272
Lin, Ming 0111 0131 0231
Manocha 0107 0127 0227
Mazurek 2635 0190 0290
Marciano 0702    
Memon 2650 0250  
Metzler 0127 0182 0282
Miller 0705    
Miers 2670    
Molloy 1202 0176 0276
Mount 2700 0119 0219
Nau 2750 0120 0220
O'Leary 2800   0280
Oard 2825 0181 0281
Otte 0701    
Papamanthou 2840 0118 0218
Paredes 2847 0163 0263
Patro 0119 0116 0216
Peng 0121 0185 0285
Perlis 2850 0122 0222
Pop 2875 0175 0275
Porter 2900 0123 0223
Pugh 2950 0124 0224
Purtilo 3000 0125 0225
Raschid 3050 0161 0261
Reggia 3100 0126 0226
Regli 0116 0159 0259
Resnik 3150 0165 0265
Roy 0103 0134 0234
Rudinger 0126 0153 0253
Ruppin 3255    
Samet 3300 0129 0229
Sazawal 3325 0186 0286
Shankar 3350 0130 0230
Shneiderman 3400 0131 0231
Shrivastava 0108 0121 0221
Spring 3465 0170 0270
Srinivasan 3500 0148 0248
Sussman 3700 0149 0249
Teli 0124    
Tits 3750 0155 0255
Tokekar 0120 0197 0297
Van Horn 3825 0117 0217
Varshney 3850 0144 0244
Vishkin 3900 0171 0271
Weintrop 3910    
Wu 0109 0151 0251
Yang 3980    
Yeung 4000    
Zelkowitz 4050 0136 0236
Zhou 4060 0180 0280
       
Zwicker 0110 0108 0208

MS/PhD Status of Special Topics Courses

  1. This section lists special topics courses (i.e., 498, 798, 8x8) by semester, and for each course, indicates the following:
    • Fall 2015 and later - whether it is MS/PhD qualifying and area
    • Spring 2015 and earlier - whether it is PhD qualifying and area; whether it is MS qualifying and area; whether its exams consistute an MS comp in an area and, if so, which of its exams.
      • [Spring 2015 and earlier: MS or PhD qualifying courses must base their grades primarily on exams (and not on paper readings, presentations, etc). An MS comp must be based entirely on exams (and not projects, homeworks, term papers, etc). It can be one or more of the regular exams in the course (e.g., final, midterm + final), regular exams augmented with additional questions, a separate exam, or any combination.]
  2. Instructors offering such courses should email the relevant information to the grad office well before the start of the semester.
  3. Information for a semester is finalized when the semester starts.
  4. If a special topics course being offered is not listed here, then it does not count as MS/PhD qualifying or toward MS comps.

Fall 2023

  • CMSC818B: Decision-Making for Robotics
     MS/PhD qualifying in Artificial Intelligence
  • CMSC818E: Distributed And Cloud-Based Storage Systems
     MS/PhD qualifying in Computer Systems
  • CMSC818F: Cryptography and Hostile Governments
     MS/PhD qualifying in Computer Systems
  • CMSC818I: Large Language Models, Security, and Privacy
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Computer Systems
  • CMSC818J: Domain Specific Architectures
     MS/PhD qualifying in Computer Systems
  • CMSC828C: Statistical Pattern Recognition
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828I: Visual Learning & Recognition
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC829A: Algorithmic Evolutionary Biology
     MS/PhD qualifying in Bioinformatics
  • CMSC838B: Differentiable Programming
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC839A: Embodied Media Design
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC848F: 3D Vision
     Not MS/PhD qualifying
  • CMSC848I: Trustworthy Machine Learning
     Not MS/PhD qualifying
  • CMSC848Q: How and Why Artificial Intelligence Answers Questions
     MS/PhD qualifying in Artificial Intelligence
  • CMSC858J: Network design Foundations
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC878B: Fast Multipole Methods: Fundamentals and Applications
     MS/PhD qualifying in Scientific Computing

Spring 2023

  • CMSC818J: Domain Specific Architectures
     MS/PhD qualifying in Computer Systems
  • CMSC818L: Fantastic Zero-Knowledge Proofs and How to Use Them
     MS/PhD qualifying in Computer Systems
  • CMSC828A: Fantastic Machine Learning Paradigms and Where to use Them
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828O: Computational and Mathematical Analysis of Networks Across Scales
     Not MS/PhD qualifying
  • CMSC828T: Sorting in Space and Words and Foundations of Multidimensional and Metric Data Structures
     MS/PhD qualifying in Database Systems
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC838C: Advances in XR
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC838D: Embodied Media Design
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC838E: Compiler Construction
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC848D: Explainable Natural Language Processing
     MS/PhD qualifying in Artificial Intelligence
  • CMSC848E: Machine Learning for Data Management Systems
     MS/PhD qualifying in Database Systems
  • CMSC858C: Randomized Algorithms
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC858L: Quantum Complexity
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC858N: Scalable Parallel Algorithms and Data Structures
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC858Z: Modern Discrete Probability
     Not MS/PhD qualifying

Fall 2022

  • CMSC818X: Introduction to Parallel Computing
     MS/PhD qualifying in Computer Systems
  • CMSC828C: Statistical Pattern Recognition
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828F: Computational Psycholinguistics
     Not MS/PhD qualifying
  • CMSC828J: Common-sense Reasoning and Natural Language Understanding
     Not MS/PhD qualifying
  • CMSC828V: Numerical Methods for Data Science and Machine Learning
     MS/PhD qualifying in Scientific Computing
  • CMSC828W: Foundations of Deep Learning
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828X: Physically-based modeling, Simulation and Animation
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828Y: Unsupervised Learning
     MS/PhD qualifying in Artificial Intelligence
  • CMSC829A: Algorithmic Evolutionary Biology
     MS/PhD qualifying in Bioinformatics
  • CMSC838K: Behavior Change and Affective Computing
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC838X: Personal Health Informatics & Visualization
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC848B: Computational Imaging
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC848C: Processing; Human-AI Interaction
     MS/PhD qualifying in Artificial Intelligence
  • CMSC858F: Algorithmic Lower Bounds: Fun with Hardness Proofs
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC858O: On the Foundation of End-to-End Quantum Applications
     MS/PhD qualifying in Algorithms and Computation Theory

Spring 2022

  • CMSC818G: Information-Centric Design of systems
     MS/PhD qualifying in Computer Systems
  • CMSC828I: Multilingual Natural Language Processing
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828L: Deep Learning
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828O: Computational and Mathematical Analysis for Networks Across Scales
     Not MS/PhD qualifying
  • CMSC838C: Advances in XR
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC838E: Compiler Construction
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC848Q: How and Why Artificial Intelligence Answers Questions
     MS/PhD qualifying in Artificial Intelligence
  • CMSC858D: Algorithms, Data Structures and Inference for High-throughput Genomics
     MS/PhD qualifying in Algorithms and Computation Theory
     MS/PhD qualifying in Bioinformatics
  • CMSC858F: Algorithmic Lower Bounds: Fun with Hardness Proofs
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC858Q: Classical and Quantum Codes
     MS/PhD qualifying in Algorithms and Computation Theory

Fall 2021

  • CMSC818E: Clouds, Consistency, & Consensus
     MS/PhD qualifying in Computer Systems
  • CMSC818F: Cryptography and Hostile Governments
     MS/PhD qualifying in Computer Systems
  • CMSC818X: Introduction to Parallel Computing
     MS/PhD qualifying in Computer Systems
  • CMSC828C: Statistical Pattern Recognition
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828I: Advanced Techniques in Visual Learning and Recognition
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828J: Common-sense Reasoning and Natural Language Understanding
     Not MS/PhD qualifying
  • CMSC828V: Numerical Methods for Data Science and Machine Learning
     MS/PhD qualifying in Scientific Computing
  • CMSC828W: Foundations of Deep Learning
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828Z: Just Machine Learning
     Not MS/PhD qualifying
  • CMSC829A: Algorithmic Evolutionary Biology
     MS/PhD qualifying in Bioinformatics
  • CMSC838B: Differentiable Programming
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC838G: Testing and Verification
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC838X: Personal Health Informatics & Visualization
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC848B: Computational Imaging
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC858G: Quantum Error Correction and Fault-Tolerance
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC858O: The Foundation of End-to-End Quantum Applications
     Not MS/PhD qualifying

Spring 2021

  • CMSC828D: Introduction to Data Visualization
     MS/PhD qualifying in Database Systems
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC828E: Privacy and Ethics in Data Management Systems
     MS/PhD qualifying in Database Systems
  • CMSC828F: Computational Psycholinguistics
     Not MS/PhD qualifying
  • CMSC828I: Multilingual Natural Language Processing
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828L: AI and Existential Threats to Civilization
     Not MS/PhD qualifying
  • CMSC828M: Applied Mechanism Design for Social Good
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828T: Sorting in Space and Words and Foundations of Multidimensional & Metric Data Structures
     MS/PhD qualifying in Database Systems
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC838E: Compiler Construction
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC858M: Algorithmic Lower Bounds: Fun with Hardness Proofs
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC858Q: Quantum Algorithms
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC858T: Introduction to Secure Distributed Computation
     MS/PhD qualifying in Algorithms and Computation Theory

Fall 2020

  • CMSC818B: Decision-Making for Robotics
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC818E: Distributed And Cloud-Based Storage Systems
     MS/PhD qualifying in Computer Systems
  • CMSC818F: Applied Cryptography and Hostile Governments Seminar
     MS/PhD qualifying in Computer Systems
  • CMSC818K: Coding Theory and Applications
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC818W: Wireless and Mobile Systems for the IoT
     MS/PhD qualifying in Computer Systems
  • CMSC818X: Introduction to Parallel Computing
     MS/PhD qualifying in Computer Systems
  • CMSC828C: Statistical Pattern Recognition
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828I: Advanced Techniques in Visual Learning and Recognition
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828J: Common-sense Reasoning and Natural Language Understanding
     Not MS/PhD qualifying
  • CMSC828P: Algorithms and Machine Learning for Analyzing Mutations in Cancer
     MS/PhD qualifying in Bioinformatics
  • CMSC828U: Algorithms in Machine Learning: Guarantees and Analyses
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC828V: Numerical Methods for Data Science and Machine Learning
     MS/PhD qualifying in Scientific Computing
  • CMSC828W: Foundations of Deep Learning
     MS/PhD qualifying in Artificial Intelligence
  • CMSC838J: Interactive Technologies in Human-Computer Interaction
     MS/PhD qualifying in Computer Systems
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC838X: Personal Health Informatics & Visualization
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC858D: Algorithms, Data Structures and Inference fo High-Throughput Genomics
     MS/PhD qualifying in Algorithms and Computation Theory
     MS/PhD qualifying in Bioinformatics

Spring 2020

  • CMS828Y: Advanced Topics in Information Processing; Human-Level AI
     MS/PhD qualifying in Artificial Intelligence
  • CMSC818D: Advanced Topics in Computer Systems; Human Factors in Security and Privacy
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC818N: Advanced Topics in Computer Systems; Robotics
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828B: Advanced Topics in Information Processing; Neural Machine Translation
     Not MS/PhD qualifying
  • CMSC828M: Advanced Topics in Information Processing; Applied Mechanism Design for Social Good
     MS/PhD qualifying in Artificial Intelligence
  • CMSC838E: Advanced Topics in Programming Languages; Compiler Construction
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC838J: Advanced Topics in Programming Languages; Interactive Technologies in Human-Computer Interaction
     MS/PhD qualifying in Computer Systems
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC858R: Advanced Topics in Theory of Computing; Ramsey Theory and its Applications
     MS/PhD qualifying in Algorithms and Computation Theory

Fall 2019

  • CMSC818B: Decision-Making for Robotics
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC818E: Distributed and Cloud-Based Storage Systems
     MS/PhD qualifying in Computer Systems
  • CMSC818O: Computer and Network Security
     MS/PhD qualifying in Computer Systems
  • CMSC818W: Wireless Systems and Mobile Systems IoT
     MS/PhD qualifying in Computer Systems
  • CMSC828C: Statistical Pattern Recognition
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828D: Interactive Data Analytics
     MS/PhD qualifying in Database Systems
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC828I: Advanced Techniques in Visual Learning and Recognition
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828O: Computational and Mathematical Analysis of Biological Networks across Scales
     MS/PhD qualifying in Bioinformatics
  • CMSC828Q: Nature-Inspired Computing
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828X: Physically-based Modeling, Simulation, and Animation
     MS/PhD qualifying in Scientific Computing
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828Y: Advanced Topics in Information Processing - Unsupervised Learning
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828Z: Information Retrieval Systems
     MS/PhD qualifying in Database Systems
  • CMSC838X: Personal Health Informatics & Visualization
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC858D: Algorithms, Data Structures and Inference for High-Throughput Genomics
     MS/PhD qualifying in Bioinformatics
  • ENEE729P: Modern Discrete Probability
     MS/PhD qualifying in Algorithms and Computation Theory

Spring 2019

  • CMSC818N: Robotics
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC818W: Wireless Systems and Mobile Systems IoT
     MS/PhD qualifying in Computer Systems
  • CMSC818X: Special Topics in Operating Systems
     Not MS/PhD qualifying
  • CMSC818Y: Fault Tolerant Distributed Systems
     MS/PhD qualifying in Computer Systems
  • CMSC828F: Computational Psycholinguistics
     Not MS/PhD qualifying
  • CMSC828U: Algorithms in Machine Learning: Guarantees and Analyses
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC828X: Algorithms for Probabilistic and Deterministic Graphical Models
     MS/PhD qualifying in Artificial Intelligence
  • CMSC838J: Interactive Technologies
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC858M: Algorithmic Lower Bounds: Fun with Hardness Proofs
     MS/PhD qualifying in Algorithms and Computation Theory

Fall 2018

  • CMSC818E: Distributed and Cloud-Based Storage Systems
     MS/PhD qualifying in Computer Systems
  • CMSC818O: Computer and Network Security
     MS/PhD qualifying in Computer Systems
  • CMSC828C: Information Processing
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828D: Interactive Data Analytics
     MS/PhD qualifying in Database Systems
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC828G: Advanced Topics in Information Processing
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828I: Advanced Techniques in Visual Learning and Recognition
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828L: Deep Learning
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC828N: Database System Architecture and Implementation
     MS/PhD qualifying in Database Systems
  • CMSC828O: Computational and Mathematical Analysis of Biological Networks across Scales
     MS/PhD qualifying in Bioinformatics
  • CMSC828P: Algorithms and Machine Learning for Analyzing Mutation in Cancer
     MS/PhD qualifying in Bioinformatics
  • CMSC838X: Personal Health Informatics & Visualization
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC858B: Blockchains, Cryptocurrencies, and Smart Contracts
     Not MS/PhD qualifying
  • CMSC858E: Approximation Algorithms
     MS/PhD qualifying in Algorithms and Computation Theory

Spring 2018

  • CMSC818C: Blockchain and Cryptocurrency Technologies
     Not MS/PhD qualifying
  • CMSC818D: Human Factors in Security and Privacy
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC818G: Information-Centric Design of Systems
     MS/PhD qualifying in Computer Systems
  • CMSC828J: Deep Learning Models for Video Analysis
     Not MS/PhD qualifying
  • CMSC828M: Applied Mechanism Design for Social Good
     MS/PhD qualifying in Artificial Intelligence
  • CMSC858R: Ramsey Theory
     MS/PhD qualifying in Algorithms and Computation Theory