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

Maintaining Satisfactory Progress

To ensure continuous progress toward your degree, it’s imperative that you consistently meet the set expectations, commensurate with your other responsibilities. You must maintain continuous registration, whether through coursework or research credits. An overall B average must be sustained in your coursework, exclusive of CMSC 799 (Thesis Research) and CMSC 899 (Dissertation Research). Failure to comply may result in the termination of your graduate admission.

In instances where you receive a grade of I (incomplete) in any course, you must resolve this to a satisfactory grade before your degree can be conferred. If you earn a grade of D or F in a graduate course, you must retake the course and achieve a grade of C or higher to maintain your eligibility for degree completion.

You are responsible to keep yourself updated and comply with all deadlines and requirements for your graduate studies. The Graduate School announces exact dates for graduation, academic deadlines, registration deadlines, and other pertinent timelines for each academic year. The Computer Science Graduate Office announces these dates on a semesterly basis. Any changes in departmental policies will be communicated through an announcement to gradlist [-at-] cs [dot] umd [dot] edu.
In the event of any circumstances that might hinder your ability to maintain graduate standing or fulfill degree requirements, it is your responsibility to inform the Computer Science Graduate Office in writing.
 

Registration and Minimum course load per semester

All graduate students within the Computer Science department are required to register through Testudo. It is essential to notify your advisor of your course selections and any subsequent changes each semester. To request permission for restricted courses, please use the Graduate Office’s online permission form. Due to the high 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

Graduate courses from other departments can be used to satisfy the “elective” courses requirement (see section 2.3 in the policy manual). Under specific circumstances, these courses might also qualify for MS/Ph.D. course requirements.

Qualifying Course Criteria:

  • At least 75% of the course grade should be based on homework, programming tasks, research projects, and exams
  • Written exams in these courses should form at least 30% of the final grade

For Elective Course Registration:

If you're looking to enroll in a non-CS course to satisfy the "Elective" graduate course requirement, please complete this form and provide the necessary details.

For MS/Ph.D. Qualifying Course Registration:

To have an external course evaluated for its relevance as a qualifying course within the MS/Ph.D. program, please provide the necessary details to the Grad Office using this form:

  • Specific course details, including the syllabus and the instructor’s name
  • Identifies the area in which you want the course to count
  • A justification explaining the relevance and importance of this course to your studies
  • Upload any relevant supporting documents

The Grad Office forwards the request to the appropriate field committee members and they will decide on the course’s suitability as a qualifying Ph.D./MS course for the indicated area or if it should be considered as an elective.

Note: Please ensure your submission is well in advance of the semester in which you plan to undertake the course

Pre-Candidacy Research Credits

Pre-candidacy research credits (CMSC898) are used to maintain registration or full-time status when regular coursework isn’t sufficient. These credits are particularly relevant in scenarios where you are engaged in research activities with your advisor but have not yet advanced to candidacy. In such cases, you should register for CMSC 898 to appropriately account for your research efforts.

CMSC898 section number is linked to the professor under whom you are conducting your research. A listing of section numbers can be found in 898/899/799/798 Section Numbers

PhD Coursework Waiver Policy

Overview

In the Computer Science graduate program, advancing to candidacy requires students to complete six qualifying courses at the 600–800 level across four different areas with a minimum of four A's and two B's, two additional elective courses with grades of B or higher, and a compulsory one-credit course, "How to Conduct Great Research." (For detailed information, refer to section 2.3, Pre-candidacy Requirements, in the Policy Manual.)

While approved course waivers can reduce the total number of courses you need to take, they do not reduce the requirement to earn a minimum of four A's at UMD, a requirement that ensures mastery of the subject matter.

Criteria for Waivers

  • The previous course must align closely with a UMD-qualifying course in terms of exams, graduate-level content, and syllabus similarity
  • Waivers must be approved by the relevant field committee

 Please Note:

  • A maximum of 3 courses can be waived. Please only submit 3 requests at a time. If some requests are denied, additional ones may be submitted
  • The waiver process does not affect the requirement to achieve four A’s in UMD-taken courses. Approved waivers are only applicable for meeting the requirement of obtaining two 'B' grades in the qualifying courses or elective courses
  • Courses taken for undergraduate credit, or those no longer offered at UMD, or non-CS courses, are ineligible for waivers
  • 400-level courses do not qualify for Ph.D. credit. If a course is evaluated and classified at the 400 level, it cannot be applied to your Ph.D. requirements. However, if you intend to apply a 400-level equivalent course to your MS degree, you must adhere to the Graduate School's policy for transferring courses into your MS degree, providing your course meets the criteria for acceptable transfer credit

Submission Process:

  • Submit waiver requests through this form to the relevant field committee chair(s).
  • To ensure timely processing of your waiver requests, please submit them via the provided form by October 1st for consideration for the upcoming Spring semester, or by March 1st for the following Fall semester. Be mindful that decisions are typically made in time for early registration for the next term.
    • For consideration in your Spring semester coursework, submit waiver requests by October 1st
    • For consideration in your Fall semester coursework, submit waiver requests by March 1st
  • Clearly link the course you're seeking to waive to the equivalent UMD course for comparison purposes.

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
CMSC720: Foundations of Deep Learning
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 1460 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
Chen, Yizheng 1505    
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 0154 0254
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    
Kwon 2610    
Lackey 0114 0136 0236
Lampropoulos 1801    
Lazar 0703    
Leiserson 0105 0146 0246
Levin 2615 0132 0232
Liu, Alan (Zaoxing) 2627    
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 2680    
Molloy 1202 0176 0276
Mount 2700 0119 0219
Nau 2750 0120 0220
Nishida 2770    
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    
Yu, Cunxi 4020 0179/I179 0279/I279
Zelkowitz 4050 0136 0236
Zhang 4055    
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.

Spring 2024

  • CMSC818G: Information-Centric Design of Systems
     MS/PhD qualifying in Computer Systems
  • CMSC818R: Software Security via Program Analysis
     Not MS/PhD qualifying
  • CMSC828A: Fantastic Machine Learning Paradigms and Where to use Them
     MS/PhD qualifying in Artificial Intelligence
  • CMSC828J: Common-sense Reasoning and Natural Language Understanding
     MS/PhD qualifying in Artificial Intelligence
  • CMSC838C: Advances in XR
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC838L: Programming Languages and Computer Architecture
     MS/PhD qualifying in Computer Systems
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC839A: Embodied Media Design
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI
  • CMSC848B: Computational Imaging
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC848G: SELECTED TOPICS IN ML
     MS/PhD qualifying in Bioinformatics
  • CMSC848J: Cognitive Robotics
     MS/PhD qualifying in Artificial Intelligence
     MS/PhD qualifying in Visual and Geometric Computing
  • CMSC858G: Quantum Error Correction and Fault-Tolerance
     MS/PhD qualifying in Algorithms and Computation Theory
  • CMSC858N: Scalable Parallel Algorithms and Data Structures
     Not MS/PhD qualifying
  • CMSC858O: The Foundation of End-to-End Quantum Applications
     MS/PhD qualifying in Algorithms and Computation Theory

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
  • CMSC818Q: Cloud Networking and Computing
     Not MS/PhD qualifying
  • 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
  • CMSC858V: Quantum Control, Metrology, and Error Mitigation for Quantum Algorithm Deployment
     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
  • 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
  • CMSC829A: Algorithmic Evolutionary Biology
     MS/PhD qualifying in Bioinformatics
  • CMSC838X: Personal Health Informatics & Visualization
     MS/PhD qualifying in Software Engineering/Programming Languages/HCI