Hide Advanced Options
Courses - Fall 2018
CMSC
Computer Science Department Site
CMSC100
(Perm Req)
Bits and Bytes of Computer Science
Credits: 1
Grad Meth: Reg
Restriction: For first time freshmen and first time transfer computer science majors.
Students are introduced to the field (and disciplines) of computer science within a small classroom setting. They will learn to make a successful transition from high school to the university, while exploring study skills, student success plans and research opportunities.
CMSC106
Introduction to C Programming
Credits: 4
Grad Meth: Reg
Prerequisite: MATH115.
Restriction: Must not be in Computer Science program; and must not have completed any courses from CMSC131-499 course range.
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: CMSC122 or CMSC198N.
Formerly: CMSC198N.
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
(Perm Req)
Object-Oriented Programming I
Credits: 4
Grad Meth: Reg
Corequisite: MATH140; and permission of CMNS-Computer Science department.
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.
CMSC131A
(Perm Req)
Object-Oriented Programming I
Credits: 4
Grad Meth: Reg
Corequisite: MATH140; and permission of CMNS-Computer Science department.
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
(Perm Req)
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 permission of the department based on satisfactory performance on the department placement exam; and minimum grade of C- in MATH140; and permission of CMNS-Computer Science department.
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.
Corequisite: CMSC250.
Credit only granted for: CMSC212, (CMSC213 and CMSC313), or CMSC216.
Machine representation of data including integers and floating point. Modern computer architectural features and their interaction with software (registers, caches). Interaction between user programs and the OS: system class, process, and thread management. Optimizing software to improve runtime performance using both compilers and hand turning.
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: Permission of CMNS-Computer Science department.
Formerly: CMSC150.
Fundamental mathematical concepts related to computer science, includin 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.
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; and permission of CMNS-Computer Science department.
The semantics of programming languages and their run-time organization. Several different models of languages are discussed, including procedural (e.g., C, Pascal), functional (e.g., ML, LISP), rule-based (e.g., Prolog), and object-oriented (e.g., C++, Smalltalk). Run-time structures, including dynamic versus static scope rules, storage for strings, arrays, records, and object inheritance are explored.
CMSC351
(Perm Req)
Credits: 3
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC250 and CMSC216; and permission of CMNS-Computer Science department.
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.
CMSC389C
(Perm Req)
Special Topics in Computer Science; Bitcoin and Other Cryptocurrencies
Credits: 1
Grad Meth: Reg
Prerequisites: CMSC216 and CMSC250 with a grade of C- or better; and permission of the Computer Science department. This course provides a comprehensive, practical introduction to the technology behind cryptocurrency and the economy surrounding it. This course will have a heavy emphasis on Bitcoin, but will dive into other types of cryptocurrency as well, such as Ethereum. This course is primarily intended to focus on the technological aspect of cryptocurrency, but we will also spend time discussing the economics of cryptocurrency.
CMSC389E
(Perm Req)
Special Topics in Computer Science; Digital Logic Design through Minecraft
Credits: 1
Grad Meth: Reg
Prerequisites Minimum grade of C- in CMSC216; and 1 course with a minimum grade of C- from (CMSC250, ENEE244). This class explores the fundamentals of digital logic design using Minecraft's Redstone. Using the low-level and intuitive visualization of circuitry Redstone provides, you will create a series of projects that apply principles of digital logic design learned in class.
CMSC389F
(Perm Req)
Special Topics in Computer Science; Reinforcement Learning
Credits: 1
Grad Meth: Reg
Prerequisites: CMSC216 and CMSC250 with a grade of C- or better; and permission of the Computer Science department.

This course provides an overview of the key concepts and algorithms of Reinforcement Learning, an area of artificial intelligence research responsible for recent achievements such as AlphaGo and robotic control. Students will implement learning algorithms for simple tasks such as mazes and pong games.
CMSC389I
(Perm Req)
Special Topics in Computer Science; Disrupting Healthcare with AI
Credits: 1
Grad Meth: Reg
Prerequisites: CMSC216 and CMSC250 with a grade of C- or better; and permission of the Computer Science department. This course provides a comprehensive, practical introduction to the intersection of machine learning and different challenges in healthcare. Students will apply basic predictive modeling techniques to fields such as early detection of disease, telemedicine, and mental health. Prior knowledge of biology is not required but a basic understanding of Python and/or machine learning techniques is recommended.
CMSC389K
(Perm Req)
Special Topics in Computer Science; Full-stack Web Development with Node.js
Credits: 1
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC250 and CMSC216; and permission of CMNS-Computer Science department.
CMSC389M
(Perm Req)
Special Topics in Computer Science; SLAM: Why Robots Don't Crash
Credits: 1
Grad Meth: Reg, P-F, Aud
Prerequisites: CMSC216 and CMSC330 with a grade of C- or better. Permission of the CMNS-Computer Science Department.

This course aims to provide students with a practical understanding of popular algorithms used in self driving cars. Both traditional and deep learning approaches will be used to solve scene understanding and control.
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
Prerequisites: CMSC216 and CMSC250 with a grade of C- or better; and permission of the Computer Science department. Students will be provided with a comprehensive, practical introduction to technical interviews. Starting with basic topics such as Big O and String Manipulation. We will then move into more complex topics such as Bit Manipulation and Dynamic Programming. Most of the classes will be "In-Class Interviews" and take-home assignments will simulate real interview settings.
CMSC389Q
(Perm Req)
Special Topics in Computer Science; iOS App Development
Credits: 1
Grad Meth: Reg, P-F, Aud
Prerequisites: CMSC216 and CMSC250 with a grade of C- or better; and permission of the Computer Science department. This course explores mobile development on the iOS platform. Topics covered include using Xcode, Swift 4, developing modern user interfaces, networking, and popular libraries such as ARKit and CoreML. Access to a computer running the latest Mac OS X software is not required but is recommended.
CMSC389R
(Perm Req)
Special Topics in Computer Science; Introduction to Ethical Hacking
Credits: 1
Grad Meth: Reg
Prerequisites: Minimum grade of C- in CMSC216; and 1 course with a minimum grade of C- from (CMSC250, ENEE150). An introduction to ethical hacking geared towards entering the competitive world of cybersecurity Capture the Flag (CTF) competitions. Applications to a career in digital forensics, penetration testing, cryptology, and secure software development.
CMSC389U
(Perm Req)
Special Topics in Computer Science; Introduction to Developing AR Applications with Hololens
Credits: 1
Grad Meth: Reg
Prerequisite: CMSC216 and CMSC250 with a grade of C- or better.

An introduction to developing Augmented Reality applications for devices like the Microsoft Hololens using the Microsoft Mixed Reality Toolkit and the Unity 3D engine. Topics will include AR design thinking, the Unity scripting API, deploying applications to Hololens, and the technology behind AR devices. Students will explore the capabilities of AR devices through bi-weekly projects designed to give them usable, valuable skills as quickly as possible. Basic programming and Unity experience are strongly recommended.
CMSC389W
(Perm Req)
Special Topics in Computer Science; Visualization through Mathematica
Credits: 1
Grad Meth: Reg
Also offered as 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.
CMSC390
(Perm Req)
Credits: 3
Grad Meth: Reg
Restriction: Must be admitted to the Computer Science Honors Program.
Special study or research directed toward preparation of honors paper.
Contact department for information to register for this course.
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)
Operating Systems
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)
Computer Networks
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)
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 of data structures including lists and trees. Algorithms for manipulating structures. Applications from areas such as data processing, information retrieval, symbol manipulation, 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.
Areas and issues in artificial intelligence, including search, inference, knowledge representation, learning, vision, natural languages, expert systems, robotics. Implementation and application of programming languages (e.g. LISP, PROLOG, SMALLTALK), programming techniques (e.g. pattern matching, discrimination networks) and control structures (e.g. agendas, data dependencies).
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)
Database Design
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)
Game Programming
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)
Computer Vision
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)
Computer Graphics
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 the principles of computer graphics. Includes an introduction to graphics displays and systems. Introduction to the mathematics of affine and projective transformations, perspective, curve and surface modeling, algorithms for hidden-surface removal, color models, methods for modeling illumination, shading, and reflection.
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 sorting, selection, graph algorithms, and basic algorithm design paradigms (such as divide-and-conquer, dynamic programming and greedy algorithms), lower bounds and NP-completeness.
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: MATH240 and MATH241; and (CMSC106 or CMSC131); and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
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: MATH240 and MATH241; and (CMSC106 or CMSC131); and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Also offered as: AMSC466.
Credit only granted for: AMSC460, AMSC466, CMSC460, 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, 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.
CMSC475
(Perm Req)
Combinatorics and Graph Theory
Credits: 3
Grad Meth: Reg
Prerequisite: MATH240 and MATH241; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program.
Also offered as: 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.
CMSC498V
(Perm Req)
Selected Topics in Computer Science; Advanced Topics in Machine Learning
Credits: 3
Grad Meth: Reg
Prerequisites: Minimum grade of C- in CMSC422 or CMSC498M; permission of CMNS-Computer Science department and instructor.
CMSC498X
(Perm Req)
Selected Topics in Computer Science; Introduction to Wireless Communications and Software-Defined Radio
Credits: 3
Grad Meth: Reg
Prerequisite: One course with a minimum grade of C- from (CMSC411, CMSC412, CMSC412, CMSC414, CMSC417, CMSC433, CMSC435, CMSC456); and must not be a double major in Electrical Engineering.
CMSC499A
(Perm Req)
Independent Undergraduate Research
Credits: 1 - 3
Grad Meth: Reg
Contact department for information to register for this course.
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.
CMSC641
Principles of Data Science
Credits: 3
Grad Meth: Reg
Restriction: Must be in the Data Science Post-Baccalaureate Certificate of Professional Studies program; and permission of CMNS-Computer Science department.
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 what data science means and systems and tools commonly used for data science, and illustrates the principles of data science through several case studies.
Must be in Data Science Certificate Program; for permission to enroll, contact oes@umd.edu
CMSC643
Machine Learning and Data Mining
Credits: 3
Grad Meth: Reg
Restriction: Must be in the Data Science Post-Baccalaureate Certificate of Professional Studies program; and permission of CMNS-Computer Science department.
Provides a broad overview of key machine learning and data mining algorithms, and how to apply those to very large datasets. Topics covered include decision trees, linear models for classification and regression, support vector machines, neural networks and deep learning, online learning, recommendation systems, clustering and dimensionality reduction, and systems for large-scale machine learning.
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).
Also offered as: AMSC660.
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
Advanced Scientific Computing I
Credits: 3
Grad Meth: Reg
Also offered as: AMSC663.
Credit only granted for: AMSC663 or CMSC663.
In the sequence CMSC663, CMSC664 students work on a year-long individual project to develop software for a scientific task in a high perfomance 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.
Also offered as: AMSC666.
Credit only granted for: AMSC666 or CMSC666.
Interpolation and approximation, numerical integration, solution algorithms for nonlinear systems of equations, numerical optimization.
CMSC714
High Performance Computing Systems
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: CMSC411 and CMSC412; or permission of instructor.
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.
CMSC723
Computational Linguistics I
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.
Also offered as: LING723, INST735.
Credit only granted for: CMSC723, LING723, or INST735.
Additional information: May only receive PhD Comp. credit for CMSC723 or CMSC823, not both.
Fundamental methods in natural language processing. Topics include: finite-state methods, context-free and extended context-free models of syntax; parsing and semantics interpretation; n-gram and Hidden Markov models, part-of-speech tagging; natural language applications such as machine translation, automatic summarization, and question answering.
CMSC726
Machine Learning
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.
An introduction to modern statistical data analysis using machine learning techniques. The course quickly surveys elementary statistical models (decision trees, nearest neighbors and linear regression) and moves on to more complex algorithms such as support vector machines, boosting, neural networks, structured prediction, apprenticeship learning, online learning, bandits, recommender systems and reinforcement learning. Throughout an emphasis is placed on mathematical rigor.
Prerequisite: CMSC421; or students who have taken courses with comparable content may contact the department; or permission of instructor.
CMSC727
Neural Modeling
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.
CMSC798
(Perm Req)
Graduate Seminar in Computer Science
Credits: 1 - 3
Grad Meth: Reg
Contact department for information to register for this course.
CMSC798E
Graduate Seminar in Computer Science
Credits: 1
Grad Meth: Reg
CMSC799
(Perm Req)
Master's Thesis Research
Credits: 1 - 6
Grad Meth: Reg, S-F
Contact department for information to register for this course.
CMSC818E
Advanced Topics in Computer Systems; Distributed and Cloud-Based Storage Systems
Credits: 3
Grad Meth: Reg, Aud
CMSC818O
Advanced Topics in Computer Systems; Computer and Network Security
Credits: 3
Grad Meth: Reg, Aud
CMSC828C
Advanced Topics in Information Processing
Credits: 1 - 3
Grad Meth: Reg, Aud
CMSC828D
Advanced Topics in Information Processing; Interactive Data Analytics
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.
CMSC828L
Advanced Topics in Information Processing; Deep Learning
Credits: 3
Grad Meth: Reg, Aud
CMSC828N
Advanced Topics in Information Processing; 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; or permission of instructor.
CMSC828O
Advanced Topics in Information Processing; Computational and Mathematical Analysis of Biological Networks across Scales
Credits: 3
Grad Meth: Reg, Aud
CMSC828P
Advanced Topics in Information Processing; Algorithms and Machine Learning for Analyzing Mutations in Cancer
Credits: 3
Grad Meth: Reg, Aud
CMSC858E
Advanced Topics in Theory of Computing; Approximation Algorithms
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: Reg
Contact department for information to register for this course.