Hide Advanced Options
Courses - Fall 2023
CMSC
Computer Science Department Site
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, ENEE459C, 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); 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)
Bioinformatic Algorithms, Databases, and Tools
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.
An introduction to the main algorithms, databases, and tools used in bioinformatics. Topics may include assembly and analysis of genome sequences, reconstructing evolutionary histories, predicting protein structure, and clustering of biological data. Use of scripting languages to perform analysis tasks on biological data. No prior knowledge of biology is assumed.
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); 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.
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.
Course will be based on the Android platform. (No Android hardware is required -- students can use simulators).
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.
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: (CMSC106, CMSC131, or ENEE150; or equivalent programming experience); and (2 courses from (CMSC330, CMSC351, ENEE324, or ENEE380); 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.
CMSC457
(Perm Req)
Introduction to Quantum Computing
Credits: 3
Grad Meth: Reg
Prerequisite: 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461, PHYS274); and 1 course with a minimum grade of C- from (CMSC351, PHYS373).
Restriction: Permission of CMNS-Computer Science department.
Additional information: No previous background in quantum mechanics is required.
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.
Cross-listed with PHYS457. Credit only granted for CMSC457 or PHYS457. No previous background in quantum mechanics is required.
CMSC460
(Perm Req)
Computational Methods
Credits: 3
Grad Meth: Reg
Prerequisite: 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461); 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 minimum grade of C- in MATH246.
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 (MATH240, MATH341, MATH461); 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 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.
CMSC470
(Perm Req)
Introduction to Natural Language Processing
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).
Restriction: Permission of CMNS-Computer Science department.
Introduction to fundamental techniques for automatically processing and generating natural language with computers. Machine learning techniques, models, and algorithms that enable computers to deal with the ambiguity and implicit structure of natural language. Application of these techniques in a series of assignments designed to address a core application such as question answering or machine translation.
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); and 1 course with a minimum grade of C- from (MATH241, MATH340). And permission of CMNS-Computer Science department; or permission of CMNS-Mathematics department.
Cross-listed with MATH475 .
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
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 of C- or higher in CMSC330 and CMSC351; and 1 course with a minimum grade of C- from (MATH240, MATH341, MATH461.

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.
CMSC498Z
(Perm Req)
Selected Topics in Computer Science; Differentiable Programming
Credits: 3
Grad Meth: Reg
Prerequisites: Minimum grade of C- in CMSC330, CMSC351, and CMSC422.
CMSC499A
(Perm Req)
Independent Undergraduate Research
Credits: 1 - 3
Grad Meth: Reg
Contact department for information to register for this course.