The university continues to monitor the circumstances related to the pandemic. As such, course delivery methods and locations for the Spring 2021 semester will be finalized and published in the Schedule of Classes by December 4, 2020.
Hide Advanced Options
Courses - Fall 2020
CMSC
Computer Science Department Site
CMSC101
(Perm Req)
Introduction to Immersive Media
Credits: 3
Grad Meth: Reg
Restriction: Permission of CMNS-Computer Science department.
Additional information: Hybrid studio/lecture course in which students will work collaboratively in teams to complete both research and practical projects related to the field.
Introduction to basic practices, concepts, and issues relevant to the field of Immersive Media Design.
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, CMSC122, or INST126.
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, P-F, Aud
CORE: IE
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.
CMSC131
Object-Oriented Programming I
Credits: 4
Grad Meth: Reg
Corequisite: MATH140.
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.
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, P-F
Corequisite: 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
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.
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
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.
Formerly: CMSC150.
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: S-F
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: STAT426 or CMSC320.
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
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.
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.
CMSC351
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.
Credit only granted for: CMSC251 or CMSC351.
Additional information: CMSC351 may not count as one of the required upper level CMSC courses for students who are required to have 24 upper level CMSC credits for graduation, i.e. for students who became computer science majors prior to Fall, 2002.
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.
CMSC388J
(Perm Req)
Special Topics in Computer Science; Building Secure Web Applications with Python and Flask
Credits: 1
Grad Meth: Reg
Prerequisites: Minimum grade of C- in CMSC250 and CMSC216.

Students are introduced to building secure, full-stack web applications with Python and Flask. Different types of security vulnerabilities and best practices to patch in students own applications will be examined.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Please click here for more information.
CMSC389A
(Perm Req)
Special Topics in Computer Science; Law and Computer Science
Credits: 1
Grad Meth: Reg, P-F, Aud
Prerequisites: Minimum grade of C- in CMSC250 and CMSC216.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Please click here for more information.
CMSC389B
(Perm Req)
Special Topics in Computer Science; A Tour of Programming Languages
Credits: 1
Grad Meth: Reg, P-F, Aud
Prerequisites: Minimum grade of C- in CMSC250 and CMSC216.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Please click here for more information.
CMSC389E
(Perm Req)
Special Topics in Computer Science; Digital Logic Design through Minecraft
Credits: 1
Grad Meth: Reg, P-F, Aud
Prerequisites: Minimum grade of C- in CMSC250 and CMSC216.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Please click here for more information.
CMSC389N
(Perm Req)
Special Topics in Computer Science; Introduction to PHP and Javascript
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC250 and CMSC216; and permission of CMNS-Computer Science department.
CMSC389O
(Perm Req)
Special Topics in Computer Science; The Coding Interview
Credits: 1
Grad Meth: Reg, P-F, Aud
Prerequisites: Minimum grade of C- in CMSC250 and CMSC216.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Please click here for more information.
CMSC389P
(Perm Req)
Special Topics in Computer Science; Mastering the PM Interview
Credits: 1
Grad Meth: Reg, P-F, Aud
Prerequisites: Minimum grade of C- in CMSC250 and CMSC216.

Students are introduced to the tools, techniques, and resources to nail their PM interviews. Also, it helps students prepare for interviews by providing hands-on practice with PM-specific topics including product design, analytical, and case questions.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Please click here for more information.
CMSC389V
(Perm Req)
Special Topics in Computer Science; Ethics of Artificial Intelligence and Machine Learning
Credits: 1
Grad Meth: Reg, P-F, Aud
Prerequisites: Minimum grade of C- in CMSC250 and CMSC216.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Please click here for more information.
CMSC389W
(Perm Req)
Special Topics in Computer Science; Visualization through Mathematica
Credits: 1
Grad Meth: Reg
Jointly offered with MATH299M. Credit only granted for CMSC389W or MATH299M. Prerequisites: CMSC216 and CMSC250 with a grade of C- or better; and permission of the Computer Science department.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Please click here for more information.
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.
Credit only granted for: CMSC297 or CMSC396.
Formerly: CMSC297.
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.
CMSC412
(Perm Req)
Credits: 4
Grad Meth: Reg
CORE: CS
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.
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, 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
CORE: CS
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 CMSC420.
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; or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
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: MATH240; and minimum grade of C- in CMSC420; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
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
CORE: CS
Prerequisite: 1 course with a minimum grade of C- from (CMSC412, CMSC417, CMSC420, CMSC430, CMSC433); and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
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 ENEE380); or any one of these courses and a 400-level MATH course, or two 400-level MATH courses). Or permission of instructor.
Also offered as: 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); 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.
Also offered as: 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.
Also offered as: 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); 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.
CMSC498P
Selected Topics in Computer Science; Machine Learning Capstone
Credits: 3
Grad Meth: Reg, P-F, Aud
Prerequisite: CMSC422 and permission of instructor. In this class, students will work either individually or in teams to complete a research or software development project involving machine learning or a closely related field. Students are encouraged to choose from a number of potential projects that will be proposed by tech companies, or else develop their own project with the approval of the instructor. Students are responsible for presenting the proposed project to the class and providing detailed documentation for the results of research. Grades will be assigned based on the quality of the project document, substance and quality of the project results, and feedback from project advisors.
CMSC498X
(Perm Req)
Selected Topics in Computer Science; Introduction to Parallel Computing
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC330 and CMSC351; or permission of instructor.

Introduction to parallel computing for computer science majors. Topics include programming for shared memory and distributed memory parallel architectures, and fundamental issues in design, development and analysis of parallel programs.
CMSC499A
(Perm Req)
Independent Undergraduate Research
Credits: 1 - 3
Grad Meth: Reg
Contact department for information to register for this course.
CMSC624
Database System Architecture and Implementation
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: CMSC424; or students who have taken courses with comparable content may contact the department.
Credit only granted for: CMSC624 or CMSC828N.
Formerly: CMSC828N.
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.
CMSC631
Program Analysis and Understanding
Credits: 3
Grad Meth: Reg, Aud, S-F
Prerequisite: CMSC330; or students who have taken courses with comparable content may contact the department; or permission of instructor.
Techniques for static analysis of source code and modern programming paradigms. Analysis techniques: data flow analysis, program dependence graphs, program slicing, abstract interpretation. The meaning of programs: denotational semantics, partial evaluation. Advanced treatment of abstraction mechanisms: polymorphic types, operation overloading, inheritance, object-oriented programming and ML-like programming languages.
CMSC634
Empirical Research Methods for Computer Science
Credits: 3
Grad Meth: Reg, Aud
Recommended: An introductory statistics class.
Restriction: Must be in Computer Science (Master's) program; or must be in Computer Science (Doctoral) program; or permission of instructor.
Credit only granted for: CMSC838G (Fall2005) or CMSC634.
A graduate-level introductory course on empirical reseach methods for computer scientists. Experimental techniques for evaluating software systems and processes, human performance using interfaces, programming environments, and software engineering methods. Introduction to constructs and methods of measurements, qualitative and quantitative design, quasi-experimental and non-experimental design, baseline design, and statistical analysis.
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.
CMSC660
Scientific Computing I
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Must have knowledge of C or Fortran. And CMSC466, AMSC466, AMSC460, or CMSC460; or (must have knowledge of basic numerical analysis (linear equations, nonlinear equations, integration, interpolation); and permission of instructor).
Cross-listed with AMSC66 0.
Credit only granted for: AMSC660 or CMSC660.
Monte Carlo simulation, numerical linear algebra, nonlinear systems and continuation method, optimization, ordinary differential equations. Fundamental techniques in scientific computation with an introduction to the theory and software for each topic.
CMSC663
(Perm Req)
Advanced Scientific Computing I
Credits: 3
Grad Meth: Reg
Prerequisite: AMSC660 or CMSC660; and (AMSC661 or CMSC661).
Restriction: Permission of instructor.
Cross-listed with AMSC663.
Credit only granted for: AMSC663 or CMSC663.
In the sequence Advanced Scientific Computing I & Advanced Scientific Computing II, (AMSC663/CMSC663 and AMSC664/CMSC664, respectively) students work on a year-long individual project to develop software for a scientific task in a high performance computing environment. Lectures will be given on available computational environments, code development, implementation of parallel algorithms.
CMSC666
Numerical Analysis I
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: CMSC466 or AMSC466; and MATH410.
Cross-listed with: AMSC666.
Credit only granted for: AMSC666 or CMSC666.
Approximation theory, numerical solution of initial-value problems, iterative methods for linear systems, optimization.
CMSC727
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: CMSC421; or students who have taken courses with comparable content may contact the department; or permission of instructor.
Fundamental methods of neural modeling. Surveys historical development and recent research results from both the computational and dynamical systems perspective. Logical neurons, perceptrons, linear adaptive networks, attractor neural networks, competitive activation methods, error back-propagation, self-organizing maps, and related topics. Applications in artificial intelligence, cognitive science, and neuroscience.
CMSC734
Information Visualization
Credits: 3
Grad Meth: Reg, Aud, S-F
Prerequisite: CMSC434; or students who have taken courses with comparable content may contact the department; or permission of instructor.
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.
CMSC798
(Perm Req)
Master's Non-Thesis Research
Credits: 1 - 3
Grad Meth: Reg
Contact department for information to register for this course.
CMSC798P
Master's Non-Thesis Research; Machine Learning Capstone
Credits: 3
Grad Meth: Reg, Aud, S-F
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: Reg
Credit only granted for: CMSC798E or CMSC801.
Formerly: CMSC798E.
Research overviews from faculty to help introduce departmental research to graduate students.
CMSC818B
Advanced Topics in Computer Systems; Decision-Making for Robotics
Credits: 3
Grad Meth: Reg, Aud
Restricted to Computer Science students (CMSC) or permissin of instructor.
CMSC818E
Advanced Topics in Computer Systems; Clouds, Consistency, & Consensus
Credits: 1 - 3
Grad Meth: Reg, Aud
CMSC818F
Advanced Topics in Computer Systems; Applied Cryptography and Hostile Governments Seminar
Credits: 3
Grad Meth: Reg, Aud, S-F
Prerequisite: CMSC414 or CMSC456. Restriction: CMSC MS or PhD students.

Practical applications of cryptography that protect against those threats, such as secure messaging, anonymous communication, cryptocurrency/blockchain, and device encryption. Course project and paper discussions on topics including private information retrieval, blind signatures, cryptocurrency/blockchains, zero-knowledge proofs and zkSNARKs, mixnets,and multi-party computation.
CMSC818K
Advanced Topics in Computer Systems; Coding Theory and Applications
Credits: 3
Grad Meth: Reg, Aud, S-F
Cross-listed with ENEE729A. Credit only granted for CMSC818K or ENEE729A. Restricted MS/PhD students in CMSC, AMSC, or ENEE.

Introduction to Coding Theory with an emphasis on essential constructions and algorithms.
CMSC818W
Advanced Topics in Computer Systems; Wireless and Mobile Systems for the IoT
Credits: 1 - 3
Grad Meth: Reg, Aud
CMSC818X
Advanced Topics in Computer Systems; Introduction to Parallel Computing
Credits: 1 - 3
Grad Meth: Reg, Aud
Prerequisite: CMSC411 and CMSC412 or permission of instructor. Restricted to CMSC students (MS or PhD).

Introduction to parallel computing for computer science majors. Topics include programming for shared memory and distributed memory parallel architectures, and fundamental issues in design, development and analysis of parallel programs.
CMSC828C
Advanced Topics in Information Processing; Statistical Pattern Recognition
Credits: 3
Grad Meth: Reg, Aud
CMSC828I
Advanced Topics in Information Processing; Advanced Techniques in Visual Learning and Recognition
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: CMSC422, CMSC426, or equivalent; or permission of instructor.
CMSC828J
Advanced Topics in Information Processing; Common-sense Reasoning and Natural Language Understanding
Credits: 3
Grad Meth: Reg, Aud
CMSC828U
Advanced Topics in Information Processing; Algorithms in Machine Learning: Guarantees and Analyses
Credits: 3
Grad Meth: Reg, Aud
CMSC828V
Advanced Topics in Information Processing; Numerical Methods for Data Science and Machine Learning
Credits: 1 - 3
Grad Meth: Reg, Aud, S-F
CMSC828W
Advanced Topics in Information Processing; Foundations of Deep Learning
Credits: 3
Grad Meth: Reg, Aud
Restricted to Computer Science (Master's/Doctoral) students; or permission of instructor.
CMSC838J
Advanced Topics in Programming Languages; Interactive Technologies in Human-Computer Interaction
Credits: 3
Grad Meth: Reg, Aud
CMSC838X
Advanced Topics in Programming Languages; Personal Health Informatics & Visualization
Credits: 3
Grad Meth: Reg, Aud
Jointly offered with INST682. Credit only granted for INST682 or CMSC838 X.
CMSC858D
Advanced Topics in Theory of Computing; Algorithms, Data Structures and Inference fo High-Throughput Genomics
Credits: 3
Grad Meth: Reg, Aud
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.