Hide Advanced Options
Courses - Fall 2026
CMSC
Computer Science Department Site
CMSC100
Bits and Bytes of Computer and Information Sciences
Credits: 1
Grad Meth: Reg
Restriction: For first time freshmen and first time transfer students; or permission of CMNS-Computer Science department.
Cross-listed with: INST101.
Credit only granted for: CMSC100 or INST101.
Students are introduced to the fields (and disciplines) of computer science and information science within a small classroom setting. They will learn to make a successful transition from high school to the university, while exploring study skills, student success plans and research opportunities.
CMSC106
Introduction to C Programming
Credits: 4
Grad Meth: Reg
Prerequisite: MATH115.
Restriction: Must not be in Computer Science program; and must not have completed any courses from CMSC131-499 course range.
Credit only granted for: CMSC106 or CMSC122.
Design and analysis of programs in C. An introduction to computing using structured programming concepts. Intended for students with no or minimal programming experience.
CMSC122
Introduction to Computer Programming via the Web
Credits: 3
Grad Meth: Reg
GenEd: DSSP
Restriction: Must not have completed any courses from CMSC131-499 course range; and must not be concurrently enrolled in CMSC131.
Credit only granted for: CMSC106, or CMSC122.
Introduction to computer programming in the context of developing full featured dynamic web sites. Uses a problem solving approach to teach basics of program design and implementation using JavaScript; relates these skills to creation of dynamic web sites; then explores both the potential and limits of web-based information sources for use in research. Intended to help relate a student's major to these emerging technologies.
CMSC125
Introduction to Computing
Credits: 3
Grad Meth: Reg
GenEd: DSSP
Prerequisite: Must have completed or be concurrently enrolled in MATH115 or higher.
Restriction: Must not be in the Computer Science program; and must not have completed any courses from CMSC131-499; and must not have completed BMGT302, IMDM127 or INST126.
Credit only granted for: IMDM127 or CMSC125.
Introduces you to the computing field as a whole. You will gain skills used across the spectrum of computing majors and learn about the great variety of routes into the various areas of study and employment in technological fields.
CMSC131
Object-Oriented Programming I
Credits: 4
Grad Meth: Reg
Corequisite: MATH140.
Credit only granted for: CMSC131, CMSC133 or CMSC141.
Introduction to programming and computer science. Emphasizes understanding and implementation of applications using object-oriented techniques. Develops skills such as program design and testing as well as implementation of programs using a graphical IDE. Programming done in Java.
CMSC132
Object-Oriented Programming II
Credits: 4
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC131; or must have earned a score of 5 on the A Java AP exam; or must have earned a satisfactory score on the departmental placement exam; and minimum grade of C- in MATH140.
Credit only granted for: CMSC132 or CMSC142.
Introduction to use of computers to solve problems using software engineering principles. Design, build, test, and debug medium -size software systems and learn to use relevant tools. Use object-oriented methods to create effective and efficient problem solutions. Use and implement application programming interfaces (APIs). Programming done in Java.
CMSC133
(Perm Req)
Object Oriented Programming I Beyond Fundamentals
Credits: 2
Grad Meth: Reg
Prerequisite: Must have completed or be concurrently enrolled in MATH140.
Restriction: Permission of CMNS-Computer Science department; and student must have earned a 4 on the AP Computer Science A exam or a satisfactory score on the CMSC131 department placement exam.
Credit only granted for: CMSC131 or CMSC133.
An introduction to computer science and object-oriented programming for students with prior Java programming knowledge (conditionals, loops, methods). Program design, implementation, and testing using object-oriented techniques. All programming will be done in Java using a graphical IDE.
CMSC216
(Perm Req)
Introduction to Computer Systems
Credits: 4
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC132; and minimum grade of C- in MATH141.
Restriction: Must be in a major within the CMNS-Computer Science department; or must be in Engineering: Computer program; or must be in the Computer Science Minor program; and Permission of CMSC - Computer Science department.
Introduction to the interaction between user programs and the operating system/hardware. Major topics include C programming, introductory systems programming, and assembly language. Other concepts covered include UNIX, machine data representation, thread management, optimization, and virtual memory. Programming is done in the Linux Environment.
CMSC250
(Perm Req)
Discrete Structures
Credits: 4
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC131; and minimum grade of C- in MATH141.
Restriction: Must be in a major within the CMNS-Computer Science department; or must be in Engineering: Computer program; or must be in the Computer Science Minor program; and Permissions of CMSC - Computer Science department.
Fundamental mathematical concepts related to computer science, including finite and infinite sets, relations, functions, and propositional logic. Introduction to other techniques, modeling and solving problems in computer science. Introduction to permutations, combinations, graphs, and trees with selected applications.
CMSC298A
(Perm Req)
Special Topics in Computer Science
Credits: 1 - 4
Grad Meth: Reg, P-F, Aud
Contact department for information to register for this course.
CMSC320
(Perm Req)
Introduction to Data Science
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC216 and CMSC250.
Restriction: Permission of CMNS-Computer Science department.
Credit only granted for: CMSC320, DATA320 or STAT426.
An introduction to the data science pipeline, i.e., the end-to-end process of going from unstructured, messy data to knowledge and actionable insights. Provides a broad overview of several topics including statistical data analysis, basic data mining and machine learning algorithms, large-scale data management, cloud computing, and information visualization.
CMSC330
(Perm Req)
Organization of Programming Languages
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC250 and CMSC216.
Restriction: Must be in a major within the CMNS-Computer Science department; or must be in the Computer Science Minor program; or must be in Engineering: Computer program; and Permission of CMSC - Computer Science department.
A study of programming languages, including their syntax, semantics, and implementation. Several different models of languages are discussed, including dynamic, scripting (e.g., Ruby, Python) functional (e.g., OCaml, Haskell, Scheme), and memory safe systems programming (e.g., Rust). Explores language features such as formal syntax, scoping and binding of variables, higher-order programming, typing, and type polymorphism. Introduces finite automata, context free grammar, parsing, lambda calculus, and basics of security attacks and software security.
CMSC335
(Perm Req)
Web Application Development with JavaScript
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC216 and CMSC250.
Restriction: Permission of CMNS-Computer Science Department.
Credit only granted for: CMSC389N or CMSC335.
Formerly: CMSC389N.
Provides an introduction to modern ways of developing Web Applications/Services using JavaScript for both front-end and back-end. The course covers topics on fundamental JavaScript language constructs, server-side JavaScript, back-end data persistence, and client-side JavaScript to build Web Applications that interact with Web services and back-end databases.
CMSC351
(Perm Req)
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC250 and CMSC216.
Restriction: Must be in a major within the CMNS-Computer Science department; or must be in Engineering: Computer program; or must be in the Computer Science Minor program; and Permission from the CMSC - Computer Science department.
A systematic study of the complexity of some elementary algorithms related to sorting, graphs and trees, and combinatorics. Algorithms are analyzed using mathematical techniques to solve recurrences and summations.
CMSC389A
Special Topics in Computer Science; Modern Software Development with GenAI
Credits: 3
Grad Meth: Reg
CMSC396H
(Perm Req)
Computer Science Honors Seminar
Credits: 1
Grad Meth: Reg
Prerequisite: Must have admission into Computer Science Departmental Honors Program.
Restriction: Permission of CMNS-Computer Science department.
Overview of computer science research activities, techniques, and tools. Diverse research areas will be covered, including systems, networks, artificial intelligence, human-computer interaction, software engineering, graphics, vision, and theory.
CMSC411
(Perm Req)
Computer Systems Architecture
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330; or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Restriction: Permission of CMNS-Computer Science department.
Credit only granted for: ENEE446 or CMSC411.
Input/output processors and techniques. Intra-system communication, buses, caches. Addressing and memory hierarchies. Microprogramming, parallelism, and pipelining.
CMSC414
(Perm Req)
Computer and Network Security
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Restriction: Permission of CMNS-Computer Science department.
Credit only granted for: CMSC414 or ENEE457.
An introduction to the topic of security in the context of computer systems and networks. Identify, analyze, and solve network-related security problems in computer systems. Fundamentals of number theory, authentication, and encryption technologies, as well as the practical problems that have to be solved in order to make those technologies workable in a networked environment, particularly in the wide-area Internet environment.
CMSC417
(Perm Req)
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC351 and CMSC330; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Computer networks and architectures. The OSI model including discussion and examples of various network layers. A general introduction to existing network protocols. Communication protocol specification, analysis, and testing.
CMSC420
(Perm Req)
Advanced Data Structures
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC351 and CMSC330; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Description, properties, and storage allocation functions of data structures including balanced binary trees, B-Trees, hash tables, skiplists, tries, KD-Trees and Quadtrees. Algorithms for manipulating structures. Applications from areas such as String Processing, Computer Graphics, Information Retrieval, Computer Networks, Computer Vision, and Operating Systems.
CMSC421
(Perm Req)
Introduction to Artificial Intelligence
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC351 and CMSC330; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Introduces a range of ideas and methods in AI, varying semester to semester but chosen largely from: automated heuristic search, planning, games, knowledge representation, logical and statistical inference, learning, natural language processing, vision, robotics, cognitive modeling, and intelligent agents. Programming projects will help students obtain a hands-on feel for various topics.
CMSC422
(Perm Req)
Introduction to Machine Learning
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC320, CMSC330, and CMSC351; and 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461, ENEE290); and permission of CMNS-Computer Science department.
Machine Learning studies representations and algorithms that allow machines to improve their performance on a task from experience. This is a broad overview of existing methods for machine learning and an introduction to adaptive systems in general. Emphasis is given to practical aspects of machine learning and data mining.
CMSC423
(Perm Req)
Computational Genomics
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC351 and CMSC330; and permission of CMNS-Computer Science department.
Computers have revolutionized modern biological research by enabling the management and analysis of the large amounts of data generated through high-throughput experiments. This course provides insight into some of the biological problems that can be addressed using computational methods and introduces the main data structures and algorithms used to solve problems related to biological sequences such as DNA, RNA, and proteins. Many of the techniques taught in this course are applicable beyond the bioinformatics domain, as they are relevant to and commonly used in other areas of computer science. No knowledge of biology is required for this course.
CMSC424
(Perm Req)
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC351 and CMSC330; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Students are introduced to database systems and motivates the database approach as a mechanism for modeling the real world. An in-depth coverage of the relational model, logical database design, query languages, and other database concepts including query optimization, concurrency control; transaction management, and log based crash recovery. Distributed and Web database architectures are also discussed.
CMSC425
(Perm Req)
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351.
Restriction: Permission of CMNS-Computer Science department.
An introduction to the principles and practice of computer game programming and design. This includes an introduction to game hardware and systems, the principles of game design, object and terrain modeling, game physics, artificial intelligence for games, networking for games, rendering and animation, and aural rendering. Course topics are reinforced through the design and implementation of a working computer game.
CMSC426
(Perm Req)
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351 and 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461, ENEE290); or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program; or permission of the instructor.
Restriction: Permission of CMNS-Computer Science department.
An introduction to basic concepts and techniques in computervision. This includes low-level operations such as image filtering and edge detection, 3D reconstruction of scenes using stereo and structure from motion, and object detection, recognition and classification.
CMSC430
(Perm Req)
Introduction to Compilers
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Topics include lexical analysis, parsing, intermediate representations, program analysis, optimization, and code generation.
CMSC433
(Perm Req)
Programming Language Technologies and Paradigms
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330; or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Restriction: Permission of CMNS-Computer Science department.
Programming language technologies (e.g., object-oriented programming), their implementations and use in software design and implementation.
CMSC434
(Perm Req)
Introduction to Human-Computer Interaction
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Assess usability by quantitative and qualitative methods. Conduct task analyses, usability tests, expert reviews, and continuing assessments of working products by interviews, surveys, and logging. Apply design processes and guidelines to develop professional quality user interfaces. Build low-fidelity paper mockups, and a high-fidelity prototype using contemporary tools such as graphic editors and a graphical programming environment (eg: Visual Basic, Java).
CMSC435
(Perm Req)
Software Engineering
Credits: 3
Grad Meth: Reg
Prerequisite: 1 course with a minimum grade of C- from (CMSC412, CMSC417, CMSC420, CMSC430, CMSC433, ENEE447); and permission of CMNS-Computer Science department.
State-of-the-art techniques in software design and development. Laboratory experience in applying the techniques covered. Structured design, structured programming, top-down design and development, segmentation and modularization techniques, iterative enhancement, design and code inspection techniques, correctness, and chief-programmer teams. The development of a large software project.
CMSC436
(Perm Req)
Programming Handheld Systems
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Restriction: Permission of CMNS-Computer Science department.
Fundamental principles and concepts that underlie the programming of handheld systems, such as mobile phones, personal digital assistants, and tablet computers. Particular emphasis will be placed on concepts such as limited display size, power, memory and CPU speed; and new input modalities, where handheld systems differ substantially from non-handheld systems, and thus require special programming tools and approaches. Students will apply these concepts and principles in the context of an existing handset programming platform.
CMSC451
(Perm Req)
Design and Analysis of Computer Algorithms
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC351; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Fundamental techniques for designing efficient computer algorithms, proving their correctness, and analyzing their complexity. General topics include graph algorithms, basic algorithm design paradigms (such as greedy algorithms, divide-and-conquer, and dynamic programming), network flows, NP-completeness, and other selected topics in algorithms.
CMSC456
(Perm Req)
Credits: 3
Grad Meth: Reg
Prerequisite: (CMSC106, CMSC131, or ENEE150; or equivalent programming experience); and (2 courses from (CMSC330, CMSC351, ENEE324, or ENEE382); or any one of these courses and a 400-level MATH course, or two 400-level MATH courses); and Permission of CMNS-Mathematics department or permission of instructor.
Cross-listed with: MATH456, ENEE456.
Credit only granted for: MATH456, CMSC456 or ENEE456.
The theory, application, and implementation of mathematical techniques used to secure modern communications. Topics include symmetric and public-key encryption, message integrity, hash functions, block-cipher design and analysis, number theory, and digital signatures.
CMSC460
(Perm Req)
Computational Methods
Credits: 3
Grad Meth: Reg
Prerequisite: 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461, ENEE290, MATH243); and 1 course with a minimum grade of C- from (MATH241, MATH340); and 1 course with a minimum grade of C- from (CMSC106, CMSC131); and 1 course with a minimum grade of C- from (MATH246, MATH341, ENEE290, MATH243).
Cross-listed with: AMSC460.
Credit only granted for: AMSC460, AMSC466, CMSC460, or CMSC466.
Basic computational methods for interpolation, least squares, approximation, numerical quadrature, numerical solution of polynomial and transcendental equations, systems of linear equations and initial value problems for ordinary differential equations. Emphasis on methods and their computational properties rather than their analytic aspects. Intended primarily for students in the physical and engineering sciences.
CMSC466
(Perm Req)
Introduction to Numerical Analysis I
Credits: 3
Grad Meth: Reg
Prerequisite: 1 course with a minimum grade of C- from (CMSC106, CMSC131); and minimum grade of C- in MATH410.
Cross-listed with: AMSC466.
Credit only granted for: AMSC460, CMSC460, AMSC466, or CMSC466.
Floating point computations, direct methods for linear systems, interpolation, solution of nonlinear equations.
CMSC471
(Perm Req)
Introduction to Data Visualization
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; and permission of CMNS-Computer Science Department.
Restriction: Permission of the CMNS-Computer Science Department.
Credit only granted for: CMSC471 or CMSC498O.
Formerly: CMSC498O.
Datasets are becoming increasingly large and complex, requiring intuitive ways to explore and interpret them quickly and efficiently. In this case, a picture is worth a thousand words: visualizations enable us to transform data into images that are easier to understand and reason about, compared to raw numbers and raw text. Visualizations are critical tools in externalizing and organizing our knowledge and insights, whether to explore collected datasets to improve our understanding of the physical world, to assess and debug analysis/experimental workflows, or to present new and interesting results to diverse audiences. In this course we will study techniques and algorithms for creating effective visualizations based on principles from graphic design, perceptual psychology, and cognitive science. Students will learn how to design and build interactive visualizations for the web, using the D3.js (Data-Driven Documents) framework.
CMSC473
(Perm Req)
Capstone in Machine Learning
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- or higher in CMSC421 or CMSC422.
Recommended: Background or exposure to machine learning topics is strongly encouraged.
Restriction: Permission of instructor and Permission of CMSC - Computer Science department.
Credit only granted for: CMSC498P or CMSC473.
Formerly: CMSC498P.
Additional information: Students will be paired with project advisors from the UMD faculty or alternatively, an industry advisor. Students are encouraged to plan for projects results that can be published at academic conferences or will impact academic research.
Semester-long project course in which each student will identify and carry out a project related to machine learning, with the goal of publishing a research paper or software tool.
CMSC474
(Perm Req)
Introduction to Computational Game Theory
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC351 and CMSC330; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Credit only granted for: CMSC474, ECON414, GVPT390 or GVPT399A.
Game theory deals with interactions among agents (either human or computerized) whose objectives and preferences may differ from the objectives and preferences of the other agents. It will also provide a comprehensive introduction to game theory, concentrating on its computational aspects.
CMSC475
(Perm Req)
Combinatorics and Graph Theory
Credits: 3
Grad Meth: Reg
Prerequisite: 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461, ENEE290, MATH243); and 1 course with a minimum grade of C- from (MATH241, MATH340); and 1 course with a minimum grade of C- from (MATH310, CMSC250).
Cross-listed with: MATH475.
Credit only granted for: MATH475 or CMSC475.
General enumeration methods, difference equations, generating functions. Elements of graph theory, matrix representations of graphs, applications of graph theory to transport networks, matching theory and graphical algorithms.
Credit only granted for MATH475 or CMSC475.
CMSC498A
(Perm Req)
Selected Topics in Computer Science
Credits: 1 - 3
Grad Meth: Reg
An individualized course designed to allow a student or students to pursue a selected topic not taught as a part of the regular course offerings under the supervision of a Computer Science faculty member. Credit according to work completed.
Contact department for information to register for this course.
CMSC498C
(Perm Req)
Selected Topics in Computer Science; Blockchains, Applied Cryptography, and CryptocurrencY
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; and permission of CMNS-Computer Science Department.

Topics include blockchains ranging from fundamentals like consensus, to privacy-preserving payments, smart contracts, and decentralized finance(DeFi). The course will also cover recent developments in appliedcryptography that are in increasing industrial usage such as zero-knowledge proofs and a small amount on multi-party computation and fully homomorphic encryption. It will look at what it takes to take these technologies from academic theory to real-world usage.
CMSC498G
(Perm Req)
Selected Topics in Computer Science; Introduction to Privacy
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; and permission of CMNS-Computer Science Department.

Explores the intersection of technology and privacy, including technical mechanisms for data privacy, legal and regulatory privacy regimes, and mediation of interpersonal privacy through technology.
CMSC498R
(Perm Req)
Selected Topics in Computer Science; AI and Public Policy
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC351, CMSC330 and CMSC320

Advances in Artificial Intelligence are presenting significant opportunities and potential challenges to society. This course will discuss soci etal issues raised by AI and potential public policy responses to them. We will first discuss some of the latest innovations in AI and how theyare being integrated into work and society. We will then discuss a ran ge of issues raised, including fairness and equity inAI systems, security issues raised by AI, privacy concerns and data ownership and energy and environmental issues raised by fueling AI. Students will be expected to read a wide range of both technical and policy material, and to discuss these readings in class.
CMSC498Z
Selected Topics in Computer Science; Differentiable Programming
Credits: 3
Grad Meth: Reg, P-F, Aud
Prerequisites: Minimum grade of C- in CMSC351, CMSC330 and CMSC421; CMSC422 preferred; and permission of the CMNS-Computer Science department.

This course is an introduction to differentiable Programming, a new programming paradigm in which a numerical program can be differentiated through automatic differentiation, allowing gradient-based optimization of parameters in the program. It has broad applications in Computer Graphics, Computer Vision, Deep Learning, Quantum Computing, System Control, and many more. The course assumes a good working knowledge of linear algebra and differentiation. The course experience includes hands-on projects with differentiable programming for agentic AI systemsand physical intelligence.
CMSC499A
(Perm Req)
Independent Undergraduate Research
Credits: 1 - 3
Grad Meth: Reg
Students are provided with an opportunity to participate in a computer science research project under the guidance of a faculty advisor. Format varies. Students and supervising faculty member will agree to a research plan which must be approved by the department. As part of each research plan, students should produce a final paper delineating their contribution to the field.
Contact department for information to register for this course.
CMSC601
Computational and Mathematical Analysis of Biological Networks across Scales
Credits: 3
Grad Meth: Reg
Prerequisite: CMSC423; or equivalent.
Credit only granted for: CMSC828O or CMSC601.
Formerly: CMSC828O.
Describe, implement and analyze algorithms that solve fundamental problems in biological network analysis: descriptive summaries of network structure and properties, probabilistic and dynamical network models, statistical models for networked data and network visualization.
CMSC614
Computer and Network Security
Credits: 3
Grad Meth: Reg
Recommended: Knowledge of C programming.
Restriction: Must be in the Computer Science Master's or Doctoral programs.
Credit only granted for: CMSC818O or CMSC614.
Formerly: CMSC818O.
Advanced topics in computer and network security, including: anonymity, privacy, memory safety, malware, denial of service attacks, trusted hardware, security design principles, and empirically measuring security "in the wild". This will be a largely paper-driven course (there is no textbook), preparing students for research in (or around) the broad area of security. Students will gain first-hand experience launching attacks in controlled environments. The bulk of the grade will be based on a final, semester-long group project.
CMSC656
Introduction to Cryptography
Credits: 3
Grad Meth: Reg
Prerequisite: CMSC451, CMSC452, or CMSC456.
Credit only granted for: CMSC656 or CMSC858K.
Formerly: CMSC858K.
Introduction to modern cryptography. Topics include symmetric-key encryption, hash functions, message-authentication codes, block-cipher design, theoretical foundations, number theory, public-key encryption, and digital signatures.
CMSC657
Introduction to Quantum Information Processing
Credits: 3
Grad Meth: Reg
Prerequisite: Familiarity with complex numbers and basic concepts in linear algebra (e.g., eigenvalues, eigenvectors, Hermitian and unitary matrices) is required.
Credit only granted for: CMSC657 or CMSC858K.
Formerly: CMSC858K.
Additional information: Previous background in quantum mechanics or theory of computation is not required.
An introduction to the field of quantum information processing. Students will be prepared to pursue further study in quantum computing, quantum information theory, and related areas.
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.
CMSC660
Scientific Computing I
Credits: 3
Grad Meth: Reg
Prerequisite: Must have knowledge of Matlab or Python.
Cross-listed with: AMSC660.
Credit only granted for: AMSC660 or CMSC660.
Fundamental techniques in scientific computation with an introduction to theory and software for each topic. Computer numbers and sources of errors, numerical linear algebra, optimization, and Monte Carlo methods.
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.
CMSC673
Capstone in Machine Learning
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C-in CMSC421 or CMSC422.
Jointly offered with: CMSC473.
Credit only granted for: CMSC673, CMSC798P, CMSC473, or CMSC498P.
Formerly: CMSC798P.
Semester-long project course in which each student will identify and carry out a project related to machine learning, with the goal of publishing a research paper or software tool.
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.
CMSC702
Algorithmic Evolutionary Biology
Credits: 3
Grad Meth: Reg, Aud
Restriction: Restricted to Master's/Doctoral students in Computer Science, Electrical and Computer, Engineering, Mathematics, Bioengineering, or permission of instructor.
Credit only granted for: CMSC702 or CMSC829A.
Formerly: CMSC829A.
Covers fundamental computational problems from comparative genomics and evolutionary biology. Topics include multiple sequence alignment and the reconstruction of evolutionary histories (e.g., phylogenetic trees and networks). These tasks are typically framed as NP-hard optimization problems, motivating the development of heuristics based on constraints, graph algorithms, and more recently machine learning. We analyze algorithms from the empirical and theoretical perspectives (e.g., computational complexity, optimality guarantees, and statistical consistency under popular models of evolution). Lastly, we discuss how algorithms are leveraged in emerging applications, like evolutionary analyses of tumors and pathogens, along with their limitations and directions for future research.
CMSC723
Natural Language Processing
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC422; and permission of CMNS-Computer Science department.
Cross-listed with: INST735, LING723.
Credit only granted for: CMSC723, LING723, or INST735.
Additional information: CMSC students may only receive PhD Comp. credit for CMSC723 or CMSC823, not both.
Introduce fundamental concepts, techniques, and algorithms for the computational handling of natural language. Statistical and machine learning techniques, models, and algorithms that enable computers to deal with the ambiguity and implicit structure of human language. Approaches that focus on uncovering linguistic structure, such as syntactic or semantic parsing, as well as those that focus on manipulating text in useful ways, such as question answering or machine translation.
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.
CMSC724
Database Management Systems
Credits: 3
Grad Meth: Reg, Aud, S-F
Restriction: Must be in one of the following programs (Computer Science (Master's); Computer Science (Doctoral)) ; or permission of instructor; or permission of CMNS-Computer Science department.
Theoretical and implementation issues in advanced database systems. Topics include distributed databases, parallel databases, database client-server architectures, multimedia access methods, advanced query optimization techniques, data semantics and models, object-oriented databases, and deductive and expert database systems.
CMSC740
Advanced Computer Graphics
Credits: 3
Grad Meth: Reg
Prerequisite: MATH240 and CMSC420; or permission of instructor.
An introduction to advanced concepts in computer graphics. Includes an introduction to realistic rendering based on physical properties of light transport, radiometric concepts, and the rendering equation; Monte Carlo integration techniques to solve the rendering equation such as path tracing and multiple importance sampling; and neural network techniques for efficient sampling and denoising. Further discusses recent advances in 3D modeling and reconstruction, such as neural network-based 3D reconstruction; inverse rendering using neural radiance fields and differentiable rendering; and generative modeling for images, videos, and 3D data.
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.
CMSC751
Parallel Algorithms
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: CMSC451; or ENEE641; or students who have taken courses with comparable content may contact the department.
Cross-listed with: ENEE651.
Credit only granted for: ENEE459P, ENEE651, ENEE759K or CMSC751.
Formerly: ENEE759K.
A presentation of the theory of parallel computers and parallel processing. Models of parallel processing and the relationships between these models. Techniques for the design and analysis of efficient parallel algorithms including parallel prefix, searching, sorting, graph problems, and algebraic problems. Theoretical limits of parallelism.
CMSC754
Computational Geometry
Credits: 3
Grad Meth: Reg
Prerequisite: CMSC451 and CMSC420; or permission of instructor.
Introduction to algorithms and data structures for computational problems in discrete geometry (for points, lines, and polygons) primarily in two and three dimensions. Topics include triangulations and planar subdivisions, geometric search and intersection, convex hulls, Voronoi diagrams, Delaunay triangulations, line arrangements, visibility, and motion planning.
CMSC798
(Perm Req)
Master's Non-Thesis Research
Credits: 1 - 6
Grad Meth: Reg
Contact department for information to register for this course.
CMSC799
(Perm Req)
Master's Thesis Research
Credits: 1 - 6
Grad Meth: S-F
Contact department for information to register for this course.
CMSC801
Department Internal Research Seminar
Credits: 1
Grad Meth: S-F
Credit only granted for: CMSC798E or CMSC801.
Formerly: CMSC798E.
Research overviews from faculty to help introduce departmental research to graduate students.
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.
CMSC818B
Advanced Topics in Computer Systems
Credits: 3
Grad Meth: Reg
CMSC818I
Advanced Topics in Computer Systems; Large Language Models, Security, and Privacy
Credits: 3
Grad Meth: Reg
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.
CMSC818J
Advanced Topics in Computer Systems; Domain Specific Architecture
Credits: 3
Grad Meth: Reg
Cross-listed with ENEE759c. Credit only granted for CMSC818J or ENEE759C.

Must be in the Graduate Program in Computer Science. All other graduate students must request permission.
CMSC818V
Advanced Topics in Computer Systems; Machine Learning for Physical Sensing and Perception
Credits: 3
Grad Meth: Reg
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.

This course delves into advanced machine learning techniques for physical sensing and real-world perception. Topics include multimodal 3D volumetric rendering with physics-informed priors, ultra-low-power navigation with metamaterial sensing, urban localization via wireless signal patterns, sparse sensing for underwater imaging, and integrating spatial knowledge into language models for perception-aware AI.
CMSC829C
Advanced Topics in Bioinformatics and Computational Biology
Credits: 3
Grad Meth: Reg
CMSC838B
Advanced Topics in Programming Languages; Differentiable Programming
Credits: 3
Grad Meth: Reg
CMSC838N
Advanced Topics in Programming Languages; Language-based Security
Credits: 3
Grad Meth: Reg
Must be in the Computer Science Master's or Doctoral programs, or permis sion of instructor.

Software is often designed with vague and unprincipled notions of correctness, opening the door to security and privacy vulnerabilities. To teach students how to create software and systems with guarantees of correct and secure execution, this course explores the formal foundations of computer security through the lens of language-based security. Topics include types for security (e.g., information flow typesystems, typed assembly, wasm),formal semantics, security policies and specification, safety- and hyper-properties, secure compilation, andlightweight verification techniques, such as model checking. Studentswill also do in-depth readings on cutting-edge research in this space.
CMSC839A
Advanced Topics in Human-Computer Interaction; Embodied Media Design
Credits: 3
Grad Meth: Reg
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.

Explores the potential of human augmentation technologies, such as wearable computing, haptics, virtual reality, and more, to enhance human physical, perceptual, and cognitive capabilities. To achieve this, students will read relevant literature from the fields of Psychology, Cognitive Science, and Human-Computer Interaction. Additionally, students will create low-fidelity paper mockups and a prototype based on digital/analog circuit design, mechanical design, and a programming environment.
CMSC839C
Advanced Topics in Human-Computer Interaction; Governing Algorithms & Algorithmic Governance
Credits: 3
Grad Meth: Reg
Cross-listed with INST878D. Credit only granted for INST878D or CMSC839C.

Must be in the Graduate Program in Computer Science. All other graduate students must request permission.

This cross-cutting interdisciplinary course, taught jointly between the College of Information Studies and the Department of Computer Science, investigates the role that algorithms and automated decision-making systems play in markets, societies, and policymaking. The course connects policy and computational conceptualizations of transparency, security, fairness, privacy, manipulation, and accountability through a series of casestudies and burning debates. Students will collaborate cross-disciplinary and be encouraged to work through difficult trade-offs to reach consensus. By discussing recent applications of algorithms for social and consumer sorting, and the moderation and generation of content, students will engage with the pressing challenges and opportunities in the governance of and by algorithms.
CMSC839E
Advanced Topics in Human-Computer Interaction; Uncertainty Communication for Decision-Making
Credits: 3
Grad Meth: Reg
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.

Human-Computer Interaction (HCI) research topics focusing on model uncertainty and decision-making. We will cover a range of models, from linear regression to probabilistic forecasts and AI foundation models, and explore how to help human users understand and manage uncertainty in these computational models. Core topics include statistical communication, explainability, decision-making, uncertainty visualization, and LLM/LMM uncertainty. The course format includes a combination of readings, presentations, discussions, and lectures.
CMSC848B
Selected Topics in Information Processing; Computational Imaging
Credits: 3
Grad Meth: Reg
Restriction: Must be in the Computer Science or Electrical and Computer Engineering Master's or Doctoral programs, or permission of instructor. Cross-listed with ENEE739Z. Credit only granted for CMSC848B or ENEE739Z.

Introduces various computational imaging systems and the algorithms that underlie their operation. Particular emphasis will be placed on recently developed learning based reconstruction algorithms. This is a mixed lecture/seminar course.
CMSC848G
Selected Topics in Information Processing
Credits: 3
Grad Meth: Reg
CMSC848I
Selected Topics in Information Processing; AI Agents and Sequential Decision Making
Credits: 3
Grad Meth: Reg
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.

AI-based agents need to operate in complex environments to make sequences of decisions to achieve some known goal. Many learning frameworks for sequential decision making exist, including reinforcement learning, imitation learning, learning from instructions, and others. In this course we will cover the foundations of all these methods, building up to modern AI-based agents that are enabled by large foundation models such as large language models and large vision/language models.
CMSC848K
Selected Topics in Information Processing; Multimodal Foundation Models
Credits: 3
Grad Meth: Reg
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.

Discusses recent foundation models proposed in the literature, with a focus on vision-language models. Topics include large language models, vision-language models, and vision-audio models.
CMSC848N
Selected Topics in Information Processing; Generative AI Agents
Credits: 3
Grad Meth: Reg
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.

Dives into the cutting edge of generative AI agents-autonomous systems powered by large language and vision models that can reason, plan, and act in complex environments. Explores how these agents use tools, memory, and multi-step reasoning to tackle real-world tasks, drawing from recent breakthroughs in research and industry. Students will design, build, and evaluate their own agents through hands-on projects.
CMSC848P
Selected Topics in Information Processing; Machine Learning Theory
Credits: 3
Grad Meth: Reg
Must be in the Graduate Program in Computer Science. All other graduate students must request permission.

This course covers core topics in machine learning theory, including generalization bounds in the offline setting (including VC dimension, one-inclusion graphs, compression schemes) and regret bounds in the online setting (including multiplicative weights, Littlestone dimension). We will also explore advanced topics such as adversarial robustness, the intersection of game theory and learning, etc.
CMSC848R
Selected Topics in Information Processing
Credits: 3
Grad Meth: Reg
CMSC848V
Selected Topics in Information Processing
Credits: 3
Grad Meth: Reg
CMSC848X
Selected Topics in Information Processing
Credits: 3
Grad Meth: Reg
CMSC848Y
Selected Topics in Information Processing
Credits: 3
Grad Meth: Reg
CMSC858I
Advanced Topics in Theory of Computing
Credits: 3
Grad Meth: Reg
CMSC858L
Advanced Topics in Theory of Computing; Quantum Complexity
Credits: 3
Grad Meth: Reg
Must be in the Computer Science Master's or Doctoral programs, or permis sion of instructor.

Complexity theory is the study and classification of the difficulty of computational problems. This class will give an overview of the major results and techniques of quantum complexity. In quantum complexity theory , we add new quantum-inspired complexity classes and study their relationships to classical complexity classes and problems. We also study the complexity of quantum-related computational problems.
CMSC858N
Advanced Topics in Theory of Computing
Credits: 3
Grad Meth: Reg
CMSC898
Pre-Candidacy Research
Credits: 1 - 8
Grad Meth: Reg
Contact department for information to register for this course.
CMSC899
(Perm Req)
Doctoral Dissertation Research
Credits: 6
Grad Meth: S-F
Contact department for information to register for this course.