Hide Advanced Options
Courses - Spring 2027
CMSC
Computer Science Department Site
CMSC115
Gender, Race and Computing
Credits: 3
Grad Meth: Reg
GenEd: DSSP, DVUP
Restriction: Must not have taken CMSC216 or higher.
Cross-listed with: WGSS115.
Credit only granted for: WGSS115 or CMSC115.
Race and gender have shaped computing from its earliest histories to contemporary debates over bias in search algorithms, surveillance, and AI. As computational processes shape ever more dimensions of everyday life from the personal to the global scale, understanding how they operate and how power operates within them grows ever more important. Combating racism and sexism is not as simple as ensuring the pool of programmers and engineers is more diverse; structures of power are embedded in digital technologies as they are in all aspects of our society, and we must learn to perceive their operation if we hope to transform them. We will examine how racism and sexism operate in the field of computer science and in everyday uses of digital technologies, while studying how feminist and racial justice movements have created alternative approaches. This class is for anyone who wishes to better understand the relationships between digital technology, structural power, and social justice.
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 CMSC133; 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.
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.
CMSC250H
(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.
CMSC298C
Special Topics in Computer Science; Career Launch
Credits: 3
Grad Meth: Reg
Prerequisites: Minimum grade of C- in CMSC131, INST126 or equivalent

Career Launch (CMSC298C) is a choose-your-own-adventure project-based course that provides product development and design-thinking experience. The course runs every spring semester and an application is required to enroll. Participating students grow their professional networks and technical aptitude through course lessons, group work, and industry mentoring.
CMSC298R
Special Topics in Computer Science; Introduction to Computer Science Research
Credits: 3
Grad Meth: Reg
Introduces research and the research process and provides necessary skills to be effective in future mentored research projects. Students participate in classroom-based professional development activities, and practice research skills through a semester-long team-based research project. The course also provides an opportunity for self-reflection related to motivation for academic research.
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
(Perm Req)
Special Topics in Computer Science; Modern Software Development with GenAI
Credits: 3
Grad Meth: Reg
PREREQUISITES: Minimum grade of C- in CMSC250 and CMSC216

This course prepares students for the evolving software engineering landscape by teaching them to use AI to boost productivity and build AI-powered applications. Students gain hands-on experience in full-stackdevelopment, leveraging AI tools across the software lifecyclefrom design and coding to testing and cloud deployment while integratingintelligent models such as LLMs and AI agents into their systems. TopicsInclude AI-assisted development (code generation, refactoring, documentation, and agent-based workflows for version control and deployment), building intelligent applications (including RAG pipelines and performance optimization), and core software engineering fundamentals such as version control, architecture, testing,security, UI/UX design, APIs, and cloud deployment. Emphasis is placed on evaluating AI-generated outputs for correctness, security, limitations, and ethical considerations, while using AI to automate testing and quality assurance. Through practical projects, students develop the skills to design and build modern, AI-native software
CMSC401
(Perm Req)
Algorithms for Geospatial Computing
Credits: 3
Grad Meth: Reg, P-F, Aud
Prerequisite: GEOG276; or a minimum grade of C- in CMSC330 and CMSC351; or permission of instructor.
Cross-listed with: GEOG470.
Jointly offered with: GEOG770.
Credit only granted for: CMSC498Q, CMSC401, CMSC788I, GEOG470, GEOG498I, GEOG770, or GEOG788I.
Formerly: GEOG498I.
An introduction to fundamental geospatial objects and geometric algorithms for spatio-temporal data processing and analysis. Point data representation and analysis: spatial data models and data structures, algorithms for spatial queries, point clustering algorithms. Surface and scalar field modeling, such as terrains: raster and triangle-based models (TINs), algorithms for building and querying TINs. Algorithms for natural and urban terrain analysis: morphology computation and visibility analysis. Applications to processing and analysis of LiDAR (Light Detection And Ranging) data in the context of terrain reconstruction, urban modeling, forest management and bathymetry reconstruction for coastal data management. Road network computation and analysis: algorithms for route computation in road networks, and for road network reconstruction from GPS and satellite data.
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.
CMSC412
(Perm Req)
Credits: 4
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; and 1 course with a minimum grade of C- from (CMSC414, CMSC417, CMSC420, CMSC430, CMSC433, CMSC435, ENEE440, ENEE457).
Restriction: Permission of CMNS-Computer Science department; or must be in one of the following programs (Computer Science (Master's); Computer Science (Doctoral)).
Credit only granted for: CMSC412 or ENEE447.
A hands-on introduction to operating systems, including topics in: multiprogramming, communication and synchronization, memory management, IO subsystems, and resource scheduling polices. The laboratory component consists of constructing a small kernel, including functions for device IO, multi-tasking, and memory management.
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.
CMSC416
(Perm Req)
Introduction to Parallel Computing
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; or permission of instructor.
Restriction: Permission of CMNS-Computer Science department.
Jointly offered with: CMSC616.
Credit only granted for: CMSC416, CMSC498X, CMSC616, or CMSC818X.
Formerly: CMSC498X.
Introduction to parallel computing. Topics include programming for shared memory and distributed memory parallel architectures, and fundamental issues in design, development, and performance analysis of parallel programs.
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.
Credit only granted for CMSC422 or CMSC498M.
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.
CMSC427
(Perm Req)
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461, ENEE290).
Restriction: Permission of CMNS-Computer Science department.
An introduction to 3D computer graphics, focusing on the underlying building blocks and algorithms for applications such as 3D computer games, and augmented and virtual reality (AR/VR). Covers the basics of 3D image generation and 3D modeling, with an emphasis on interactive applications. Discusses the representation of 3D geometry, 3D transformations, projections, rasterization, basics of color spaces, texturing and lighting models, as well as programming of modern Graphics Processing Units (GPUs). Includes programming projects where students build their own 3D rendering engine step-by-step.
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.
CMSC437
(Perm Req)
Introduction to Quantum Software Laboratory
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC457 or PHYS467; and familiarity with basic programming, languages (e.g., Python).
Restriction: Permission of CMNS-Computer Science department.
Introductory Programming/Software laboratory for quantum computing. Understand the existing programming tools for quantum computers and the characteristics of quantum hardware. Develop quantum application prototypes and tools to characterize and mitigate the limitations of quantum hardware.
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.
CMSC452
(Perm Req)
Elementary Theory of Computation
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.
Techniques are developed to determine the difficulty of a problem relative to a model of computation. Topics include Finite Automata, P, NP, decidability, undecidability, and communication complexity.
CMSC454
(Perm Req)
Algorithms for Data Science
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351.
Restriction: Permission of CMSC-Computer Science department.
Fundamental methods for processing a high volume of data. Methods include stream processing, locally sensitive hashing, web search methods, page rank computation, network and link analysis, dynamic graph algorithms as well as methods to handle high dimensional data/dimensionality reduction.
CMSC456
(Perm Req)
Credits: 3
Grad Meth: Reg
Prerequisite: Permission of CMNS-Mathematics department.
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.
CMSC457
(Perm Req)
Introduction to Quantum Computing
Credits: 3
Grad Meth: Reg
Prerequisite: 1 course with a minimum grade of C- from (ENEE290, MATH240, MATH341, MATH461, MATH243); and 1 course with a minimum grade of C- from (CMSC351, PHYS313).
Cross-listed with: PHYS457.
Credit only granted for: CMSC457 or PHYS457.
Additional information: Only Physics students may use MATH243 to satisfy the Linear Algebra prerequisite for CMSC/PHYS457.
An introduction to the concept of a quantum computer, including algorithms that outperform classical computation and methods for performing quantum computation reliably in the presence of noise. As this is a multidisciplinary subject, the course will cover basic concepts in theoretical computer science and physics in addition to introducing core quantum computing topics. No previous background in quantum mechanics is required.
Cross-listed with PHYS457. Credit only granted for CMSC457 or PHYS457.
CMSC460
(Perm Req)
Computational Methods
Credits: 3
Grad Meth: Reg, P-F
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, P-F
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.
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.
CMSC476
(Perm Req)
Capstone in Artificial Intelligence
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC421 or CMSC422; and/or permission of CMNS-Computer Science department; or must be in the Computer Science graduate program.
Jointly offered with: CMSC676.
Credit only granted for: CMSC476 or CMSC676.
Additional information: If students complete both CMSC473 and CMSC476, only one course will count towards the CS major.
Semester-long project course in which each student will identify and carry out a project related to the broad area of Artificial Intelligence, with the goal of working on a research project/paper or a software tool that may benefit the society.
CMSC477
(Perm Req)
Robotics Perception and Planning
Credits: 3
Grad Meth: Reg
Prerequisite: 1 course from (MATH240, MATH243, MATH341, MATH461, ENEE290); and (ENEE467 or CMSC420).
Restriction: Must be in the Robotics and Autonomous Systems minor; and permission of Computer Science department.
Additional information: Students in the Robotics and Autonomous Systems minor should take ENEE467 as a prerequisite; Computer Science students not in the minor should take CMSC420. Only Engineering students may use ENEE290 or MATH243 to satisfy the Linear Algebra prerequisite for CMSC477.
A hands-on introduction to perception and planning for robotics, including rigid body transformations and rotations, dynamics and control of mobile robots/drones, graph based and sampling based planning algorithms, Bayseian and Kalman filtering, camera models and calibration, projective geometry, visual features, optical flow, pose estimation, RANSAC and Hough transform, structure from motion, visual odometry, machine learning basics, visual recognition and learning.
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.
CMSC498E
(Perm Req)
Selected Topics in Computer Science; Robotics
Credits: 3
Grad Meth: Reg
PREREQUISITES: Minimum grade C- in CMSC330 and CMSC351 and 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461); and permission of CMNS-Computer Science Department.

In this course, we will give an overview on fundamental components of robotic systems, including the sensing and actuation, control and modeling of motion and perception, dynamics and kinematics, motion planning and manipulation of robots. Students will learn about implementation of basic simulation programs that produce interesting results and verify its correctness. The goal of this class is to get students an appreciation of computational methods and engineering issuesfor modeling robots. We will discuss various considerations and tradeoffs used in designing various methodologies (e.g., time, space, robustness, and generality). This will include data structures, algorithms, computational methods, simulation techniques, runtime complexity, system implementation and integration, in the context of multi-disciplinary design.
CMSC498N
(Perm Req)
Selected Topics in Computer Science; The Science of Scams
Credits: 3
Grad Meth: Reg
An interdisciplinary examination of scams and online fraud, and how to defend against them. Topics include: the psychology of persuasion, the criminal enterprises running scams at industrial scale, the money-laundering pipelines, the legal gaps that let scammers evade justice, and the technology of modern fraud, from domain impersonation to AI voice cloning. Projects emphasize hands-on work with simulated scams.
CMSC498P
(Perm Req)
Selected Topics in Computer Science
Credits: 3
Grad Meth: Reg
PREREQUISITES: Minimum grade of C- in CMSC330 and CMSC351; and 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461, ENEE290); and 1 course with a minimum grade of C- in STAT400; or permission of instructor; and permission of CMNS-Computer Science Department.

Introduces concepts, formulations, and applications of deep generative models for images, video, geometry, and text, including large language models. Covers scenarios mainly in computer vision and related areas such as robotics, biology, and language.
CMSC498W
(Perm Req)
Selected Topics in Computer Science; Economics and Computation
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC351; and permission of CMNS-Computer Science Department.

Economics and Computation explores the interaction between the disciplines of economics and computer science. In one direction, we will see how computational thinking gives a new perspective on areas of economic theory such as game theory, mechanism design, and social choice. In the other direction, we will discuss how economic approaches can address timely questions in computer science and artificial intelligence.
CMSC498Y
(Perm Req)
Selected Topics in Computer Science; Statistical Inference and Machine Learning Methods for Genomics Data
Credits: 3
Grad Meth: Reg
PREREQUISITES: Minimum grade of C- in CMSC351 and minimum grade of C- in any STAT400-level course; or DATA400; or ENEE324.

Covers core concepts in statistical modeling and machine learning through applications in genomics. Students will learn fundamental approaches including hidden Markov models, neural networks, and transformers, whileexploring how these techniques are applied to biological predictionproblems. Topics include protein family prediction,RNA secondary structure prediction, protein structure prediction, and protein languagemodels. Particular emphasis will be placed on the full machine learning workflow, including data curation, model training, and evaluation using both general and domain-specific metrics. No prior knowledge of biology is required.
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.
CMSC616
Foundations of Parallel Computing
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: CMSC411 and CMSC412; or permission of instructor.
Restriction: Must be in the Computer Science or Applied Mathematics and Scientific Computation master's or doctoral programs.
Credit only granted for: CMSC616 or CMSC818X.
Formerly: CMSC818X.
Covers the foundations of parallel computing. Topics include programming for shared memory and distributed memory parallel architectures, and fundamental issues in design, development and analysis of parallel programs.
CMSC624
Database System Architecture and Implementation
Credits: 3
Grad Meth: Reg
Credit only granted for: CMSC624 or CMSC828N.
Formerly: CMSC828N.
Additional information: Students must have prior coursework similar to the content offered in undergraduate course CMSC424.
In-depth overview of database architectures--both the mainstream traditional architecture and more modern architectures that are especially prevalent in cloud implementations. Topics include different architectural choices for different application spaces and the tradeoffs inherent in choices and building different parts of database systems.
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.
CMSC661
(Perm Req)
Scientific Computing II
Credits: 3
Grad Meth: Reg
Cross-listed with: AMSC661.
Credit only granted for: AMSC661 or CMSC661.
Additional information: Must have knowledge of Matlab or Python. Must have basic knowledge of ordinary and partial differential equations similar to the content offered in undergraduate courses MATH246 and MATH462.
Numerical methods for solving ordinary and partial differential equations (elliptic, parabolic, hyperbolic, and dispersive): motivation, analysis, and implementation. Finite difference methods, finite element methods, Fourier and Chebyshev spectral methods, and meshless methods.
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.
CMSC676
Capstone in Artificial Intelligence
Credits: 3
Grad Meth: Reg, Aud
Recommended: Minimum grade of C- in CMSC421 or CMSC422.
Jointly offered with: CMSC476.
Credit only granted for: CMSC476 or CMSC676.
Additional information: Only one of CMSC673 and CMSC676 may be counted toward Computer Science degree requirements.
Semester-long project course in which each student will identify and carry out a project related to the broad area of Artificial Intelligence, with the goal of working on a research project/paper or a software tool that may benefit the society.
CMSC711
Credits: 3
Grad Meth: Reg
Additional information: Students must have prior coursework similar to the content offered in undergraduate course CMSC412.
Priciples, design, and performance evaluation of computer networks. Network architectures including the ISO model and local area networks (LANs). Communication protocols and network topology.
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.
CMSC714
High Performance Computing Systems
Credits: 3
Grad Meth: Reg
Additional information: Students must have prior coursework similar to the content offered in undergraduate courses CMSC411 and CMSC412.
Slected topics in high-performance systems, including contemporary architectures, interconnection topologies, shared memory and message-passing systems, multi-threaded kernels, latency avoidance and hiding techniques, methods for data and workload partitioning performance profiling, debugging.
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.
CMSC734
Information Visualization
Credits: 3
Grad Meth: Reg
Additional information: Students must have prior coursework similar to the content offered in undergraduate course CMSC434.
Information visualization defined in relation to graphics, scientific visualization, databases, data mining, and human-computer interaction. Visualizations for dimensional, temporal, hierarchical and network data. Examines design alternatives, algorithms and data structures, coordinated views, and human factors evaluations of efficacy.
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.
CMSC756
Credits: 3
Grad Meth: Reg
Restriction: Must be in the Computer Science Master's or Doctoral programs.
Credit only granted for: CMSC818N or CMSC756.
Formerly: CMSC818N.
Additional information: Students must have prior coursework similar to the content offered in undergraduate courses CMSC420, CMSC106, CMSC466, and MATH240.
Overview on fundamental components of robotic systems, including the sensing and actuation, control and modeling of motion and perception, dynamics and kinematics, motion planning and manipulation of robots.
Cross-listed with ENEE759R. Credit granted only for CMSC756 or ENEE759R.

Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.
CMSC764
Advanced Numerical Optimization
Credits: 3
Grad Meth: Reg
Prerequisite: MATH410 or equivalent; or permission of instructor.
Credit only granted for: AMSC607, AMSC764, or CMSC764.
Modern numerical methods for solving unconstrained and constrained nonlinear optimization problems in finite dimensions. Design of computational algorithms and the analysis of their properties.
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.
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.
CMSC800
How to Conduct Great Research
Credits: 1
Grad Meth: S-F
Restriction: Must be in the Computer Science doctoral program.
Credit only granted for: CMSC798F or CMSC800.
Formerly: CMSC798F.
Develop research skills so as to promote high quality and high impact.
CMSC818C
Advanced Topics in Computer Systems; Verified Systems Programming with Proof Agents
Credits: 3
Grad Meth: Reg
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.

This course explores the design and implementation of mechanically verif ied systems software, including operating systems, compilers, and virtua l machines. The course combines foundations from program verification, t heorem proving, and systems programming with emerging AI-assisted workfl ows that pair proof assistants with coding assistants. Students will stu dy representative verified systems, evaluate current tools, and gain han ds-on experience specifying, implementing, and proving correctness prope rties of systems code.
CMSC818T
Advanced Topics in Computer Systems; Applied Cryptographic Systems and Privacy Enhancing Technologies
Credits: 3
Grad Meth: Reg
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.

The course is a seminar structured around selected papers and a course project on advanced cryptographic systems. This will cover systems for privacy-preserving analytics, private information retrieval, encrypted messaging and moderation, privacy-preserving payments, and identity systems and anonymous credentials. This course is intended for computer science graduate students and advanced undergraduates with an interest in the area. Undergraduates should have taken a previous security or cryptography class.
CMSC818Y
Advanced Topics in Computer Systems
Credits: 3
Grad Meth: Reg
CMSC828C
Advanced Topics in Information Processing; Statistical Pattern Recognition
Credits: 3
Grad Meth: Reg
Prerequisite: MATH461; or students who have taken courses with comparable content may contact the department; or permission of instructor. Corequisite: ENEE620; or permission of instructor. Cross-listed with ENEE633. Credit will be only granted for CMSC828C or ENEE633. Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.

The goal is to introduce mathematical pattern analysis and recognition. Emphasis is given to parametric and non-parametric statistical pattern recognition methods and clustering with applications to speech, image and video recognition.
CMSC828D
Advanced Topics in Information Processing
Credits: 3
Grad Meth: Reg
CMSC848T
Selected Topics in Information Processing; Frontiers in Multilingual AI
Credits: 3
Grad Meth: Reg
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.

This course examines multilingual AI as both a toolkit for solving real- world problems and a lens for identifying limitations of current methods . Topics include multilingual large language models, representation lear ning, cross-lingual transfer, fairness, inclusivity, and human-centered evaluation to design technology that supports user needs. Students will read and discuss research papers, and develop projects addressing issues around the design and impact of multilingual AI.
CMSC858C
Advanced Topics in Theory of Computing; Randomized Algorithms
Credits: 3
Grad Meth: Reg
It is well-understood by now that allowing algorithms to make random choices improves our capabilities in essentially every area of computer science, discrete math, and in various application areas. We will develop the underlying theory and various powerful techniques, and see applications in areas including networking, machine learning, and optimization. A basic exposure to probability, and strong interest in algorithms and general mathematical reasoning, are the main prerequisites.
CMSC858Y
Advanced Topics in Theory of Computing; Quantum Computer Systems
Credits: 3
Grad Meth: Reg
Must be in the Computer Science Master's or Doctoral program; or permission of the instructor.

This course explores topics in quantum computer systems design, including quantum programming, formal verification, compilation, operating systems, and error correction. Students will read and discuss selected research papers and undertake a semester-long research project, individually or in groups. A background in probability, linear algebra, and software systems (PL, architecture, or OS) is expected. Prior experience in quantum computing is helpful but not required.
CMSC878D
Advanced Topics in Numerical Methods
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.