Hide Advanced Options
Courses - Spring 2026
CMSC
Computer Science Department Site
Open Seats as of
04/01/2026 at 09:30 AM
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.
CMSC389E
(Perm Req)
Special Topics in Computer Science; Digital Logic Design through Minecraft
Credits: 1
Grad Meth: Reg
Prerequisites: Minimum grade of C- in CMSC250 and CMSC216; and permission of CMNS-Computer Science department.

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.

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

Technical interviewing is a critical skill for acquiring internships and jobs. Students will gain a comprehensive, practical introduction to technical interviews. Students will be introduced to basic topics such as Big O and String Manipulation and later move into more complex topics such as Graphs and Dynamic Programming. Most in-class time will be spent on mock interviews to give real interview practice. The course facilitators are experienced in interviewing and have received internship/job offers from companies like Meta, Optiver, Bloomberg, Amazon, Apple, Microsoft, Databricks, Capital One, and more.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Click here to learn more about STICs.
CMSC389P
(Perm Req)
Special Topics in Computer Science; Mastering the PM Interview
Credits: 1
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC216 and CMSC250; and permission of CMNS-Computer Science department.

Product Management is an interesting intersection of technology and business that students are given the opportunity to learn more about in this class. Students are introduced to the tools, techniques, and resources to nail their PM (Product Management) interviews. We'll be providing hands-on practice with PM specific topics including product design, analytical, and case questions. By the end of the class, you should be acing all your PM interviews!

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Click here to learn more about STICs.
CMSC389X
(Perm Req)
Special Topics in Computer Science; Advanced Type Systems
Credits: 1
Grad Meth: Reg
Prerequisite: C- or better in CMSC250 and CMSC330. Familiarity with functional programing and lambda calculus is particularly important. If you have any questions about prerequisites, please contact the instructor.; and permission of CMNS-Computer Science department.

Ever wonder what the deal about type systems is all about? Why are they helpful, and why should you care about them? In this course, we will survey the field of type theory, and explore the multitude of topics within. This course will focus on providing a high level survey, with anemphasis on intuitive understanding rather than technical details.
CMSC389Y
(Perm Req)
Special Topics in Computer Science; Open Source Intelligence (OSINT)
Credits: 1
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC216 and CMSC250; and permission of CMNS-Computer Science department.

This course teaches you to find and analyze publicly available information while protecting your own digital footprint. You'll master both offensive reconnaissance techniques and defensive counter-intelligence strategies. The curriculum covers Python automation, developing AI-powered analysis tools, dark web intelligence, satellite imagery analysis, and advanced privacy operations.
CMSC396H
(Perm Req)
Computer Science Honors Seminar
Credits: 1
Grad Meth: Reg
Prerequisite: Must have admission into Computer Science Departmental Honors Program.
Restriction: Permission of CMNS-Computer Science department.
Overview of computer science research activities, techniques, and tools. Diverse research areas will be covered, including systems, networks, artificial intelligence, human-computer interaction, software engineering, graphics, vision, and theory.
CMSC398L
(Perm Req)
Special Topics in Computer Science; Introduction to Competitive Programming
Credits: 1
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC216 and CMSC250; and permission of CMNS-Computer Science department. Covers most of the basic techniques and algorithms that are used in competitive programming. Topics include C++ STL, greedy, dynamic programming,divide and conquer, graph algorithms, and data structures. Students will learn different algorithmic techniques and apply these concepts to solve interesting programming problems in practice.
CMSC398M
(Perm Req)
Special Topics in Computer Science; Introduction to Product Design with Figma
Credits: 1
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC216 and CMSC250 or permission of instructor; and permission of CMNS-Computer Science department

An exploration into the world of Figma! Figma is a popular collaborative design tool used by many developers for brainstorming, proof of concepts and website/application design. We will be exploring the various capabilities of Figma, and how we can create a website or mobile application from a design made on Figma. Students will learn principles of design, create mockups, and build their own website/mobile app that will look great for resumes and portfolios. Permission of department

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Click here to learn more about STICs.
CMSC398P
(Perm Req)
Special Topics in Computer Science; Practical Cloud Computing with AWS
Credits: 1
Grad Meth: Reg
Prerequisite: Minimum grade of C- in CMSC216 and CMSC250; and permission of CMNS-Computer Science department.

This course provides a practical introduction to cloud computing with Amazon Web Services (https://aws.amazon.com/about-aws/) (AWS). Students will learn how to build applications using a variety of AWS services, including S3, EC2, Lambda, and ECS. Additionally they will have an exam ready understanding of many services, benefits, and features of AWS. The course will culminate in a final resume-worthy project that will be built, deployed, and demoed.
CMSC398W
(Perm Req)
Special Topics in Computer Science; Practical Tools for Efficient Development
Credits: 1
Grad Meth: Reg
Prerequisites: Minimum grade of C- in CMSC216 and CMSC250; and permission of CMNS-Computer Science department.

Provides a broad overview of many common and useful tools, like the command line, Git, debuggers, build systems, and more. Through a hands-on approach, you will be introduced to a variety of tools and techniques that can immediately be applied to everyday problems. We aim to provide students with material that improves their computing ecosystem literacy and increases their efficiency as a developer.

A student-led course through Student-Initiated Courses (STICs) @ UMD: http://stics.umd.edu/ Click here to learn more about STICs.