Hide Advanced Options
Courses - Fall 2025
ENPM
Engineering, Professional Masters Department Site
Open Seats as of
03/25/2025 at 10:30 PM
ENPM611
Software Engineering
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Competency in one programming language is required, Python preferred.
Software engineering concepts, methods, and practices important to both the theorist and the practitioner will be covered. The entire range of responsibilities expected of a software engineer are presented. The fundamental areas of requirements development, software design, programming languages, and testing are covered extensively. Sessions on supporting areas such as systems engineering, project management, and software estimation are also included.
ENPM613
(Perm Req)
Software Design & Implementation
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: ENPM611.
Restriction: Permission of Maryland Applied Graduate Engineering.
Covers the software design process, from understanding the need or problem, to creating suitable architecture and detailed design solutions, to preserving and evolving the design during implementation and maintenance. The main study topics include: requirements analysis models; user centered design; architecture design through decomposition and composition; architecture styles and architecture tactics for supporting various quality attributes such as security and usability; design for reuse and with reuse; detailed design object-oriented principles (such as SOLID) and design patterns; approaches for evaluating, comparing, and selecting design solutions; standard notations for documenting architecture views, detailed design, and analysis models; and industry standards for creating design deliverables. Students will acquire not only technical knowledge, but also soft skills such as communication, collaborations, critical thinking, leadership, negotiation, and time management.
ENPM615
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Must have completed undergraduate courses in logic design, computer architecture, and programming.
Introduction to embedded systems design and evaluation: requirements, specification, architecture, hardware and software components, integration and performance evaluation. Topics include instruction sets, CPU, embedded computing platform, program design and analysis, operating systems, hardware accelators, multiprocessors, networks, and system analysis. Real-life embedded systems design examples will be used throughput the course to illustrate these concepts.
ENPM621
Heat Pump and Refrigeration Systems Design Analysis
Credits: 3
Grad Meth: Reg, Aud
Thermal engineering of heat pump and refrigeration systems and thermal systems modeling. Thermodynamics and heat transfer. Cycle analysis, alternative refrigerants, graphical analysis using property charts. Analysis of applications such as space conditioning, food perservation, manufacturing, heat recovery and cogeneration.
ENPM623
Engineering Combustion Emissions for Air Pollution Control
Credits: 3
Grad Meth: Reg, Aud, S-F
Analysis of the sources and mechanisms of combustion generated air pollution. Air pollution due to internal combustion engines, power generation and industrial emissions. Techniques to minimize and control emission.
ENPM631
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: ENPM694 and ability to write code in one programming language and/or Undergraduate coursework in a programming language; or permission of instructor.
Restriction: Permission of Maryland Applied Graduate Engineering.
Exploration of how such a variety of devices can use a big range of technologies to connect seamlessly to each other. In the second half of the course we translate the basic knowledge of the protocols to more hands-on exercises in containerization (Docker) and at the end we give an introduction to Kubernetes, that is an open-source system for automating deployment and management of containerized applications.
ENPM635
Thermal Systems Design Analysis
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Undergraduate courses in thermodynamics, fluid mechanics and heat transfer.
Credit only granted for: ENPM635 or ENME635.
Evaluates the trade-offs associated with thermal systems. Use of software for system simulation, evaluation and optimization. Applications include power and refrigeration systems, pipe flow systems, distillation columns, dehumidifying coils, and co-generation systems.
ENPM640
Rehabilitation Robotics
Credits: 3
Grad Meth: Reg, Aud
Recommended: Basic understanding of linear time-invariant control systems (e.g. ENPM667) is preferred but not required. No background or previous experience in assistive robotics, human biomechanics, and/or neuroscience is required.
Credit only granted for: ENPM808J, ENPM640, or ENME444.
Formerly: ENPM808J.
An introduction to a field of robotics dedicated to improving the lives of people with disabilities. The course is designed for students wishing to learn more about rehabilitation robotics, one of the fasting growing fields of robotics. Rehabilitation robotics is the application of robots to overcome disabilities resulting from neurologic injuries and physical trauma, and improve quality of life. This course considers not only engineering design and development, but also the human factors that make some innovative technologies successful and others commercial failures. Engineering innovation by itself, without considering other factors such as evidence-based R&D and product acceptance, may mean that some technologies don't become or remain available or are inefficacious to aid their intended beneficiaries. This course differs from medical robotics in its focus on improving the quality of life through robot-mediated rehabilitation treatments, rather than improving or enhancing applications such as surgical interventions.
ENPM645
Human-Robot Interaction
Credits: 3
Grad Meth: Reg, Aud
Recommended: Some knowledge of A.I. fundamentals and data analytics recommended, but not required.
Credit only granted for: ENPM808K or ENPM645.
Formerly: ENPM808K.
To define the intersection of human-robot interactions to include human-computer interfaces, as well as robotic emotions and facial expressions emulations. The result will provide a basis for students to assess the best approaches for interacting effectively with robots. Areas to be covered include biologically-inspired robotics, cognitive robotics, cultural and social aspects of robotics, data mining, examples of human systems interfaces, and machine learning with respect to A.I. principles and limitations.
ENPM662
Introduction to Robot Modeling
Credits: 3
Grad Meth: Reg, Aud
Recommended: Students should have intermediate programming skills (Python) and basic algebra knowledge for this course.
This course introduces basic principles for modeling a robot. Most of the course is focused on modeling manipulators based on serial mechanisms. The course begins with a description of the homogenous transformation and rigid motions. It then introduces concepts related to kinematics, inverse kinematics, and Jacobians. This course then introduces Eulerian and Lagrangian Dynamics. Finally, the course concludes by introducing basic principles for modeling manipulators based on parallel mechanisms. The concepts introduced in this course are subsequently utilized in control and planning courses.
ENPM665
Credits: 3
Grad Meth: Reg, Aud
Credit only granted for: ENPM809J or ENPM665.
Formerly: ENPM809J.
Covers the fundamentals of securing cloud-based workloads from the ground up with many hands-on examples. Through these hands-on exercises the course will demonstrate where the similarities and differences are when securing the cloud compared to securing traditional IT.
ENPM667
Control of Robotic Systems
Credits: 3
Grad Meth: Reg, Aud
This is a basic course on the design of controllers for robotic systems. The course starts with mainstay principles of linear control, including a review of elementary concepts of systems, and discusses applications to independent joint control. The second part of the course introduces a physics-based approach to control design that uses energy and optimization principles to tackle the design of controllers that exploit the underlying dynamics of robotic systems. The course ends with an introduction to force control and basic principles of geometric control if time allows.
ENPM672
(Perm Req)
Fundamentals for Thermal Systems
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Undergraduate engineering, physics or chemistry degree.
Restriction: Permission of Maryland Applied Graduate Engineering.
Included in this course is an introduction to thermodynamics, fluid mechanics and heat transfer. Emphasis is on gaining an understanding of the physical concepts through the solving of numerical problems associated with simple thermal fluid processes and cycles. Both ideal gases and multiphase fluids will be considered as the working fluids.
ENPM680
Introduction to Secure Coding for Software Engineering
Credits: 3
Grad Meth: Reg, Aud
Credit only granted for: ENPM809W or ENPM680.
Formerly: ENPM809W.
Covers core concepts and techniques to analyze and characterize such security bugs, and potential ways to mitigate them. Concepts will be introduced and discussed within the context of an adversary intent on altering or subverting the behavior of the software with security impacts.
ENPM685
Security Tools for Information Security
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Familiarity with Linux and Windows operating systems, as well as TCP/IP and basic networking concepts.
Students will perform host- and network-based security tasks relating to security, investigation, compliance verification and auditing using a wide selection of commonly used tools on both Windows and Linux platforms, with emphasis on open source tools.
ENPM687
Digital Forensics and Incidence Responses
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Experience with both Windows and Unix-based operating systems, including using the command line.
Students will implement a robust incident response methodology, including proper forensic handling of evidence, and cover legal aspects of national and international law regarding forensics. The bulk of the course covers evidence acquisition, preservation, analysis and reporting on multiple platforms.
ENPM691
Hacking of C programs and Unix Binaries
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: ENEE150 or equivalent.
Teaches the fundamentals of secure programming in C. An in depth discussion on various security vulnerabilities (e.g., buffer overflows) in C applications will be taught with hands-on demo of concepts during the class. Students will learn how a C program runs "under-the-hood". The course will teach nitty-gritty of C programs by analyzing at the assembly level. The course discusses best practices (e.g., coding standards) and design principles for secure programming so that security can be built-in during design time. In addition to assignments, students are required to present papers related to this course.
ENPM694
Networks and Protocols
Credits: 3
Grad Meth: Reg, Aud
Provides an in-depth review of the Internet with a focus on the end-to-end effects of technologies and protocols that operate in different layers. All protocols and technologies are covered in a holistic framework with an emphasis on their effect on the network and application performance. The course also includes a brief introduction of more modern concepts in the field of networking such as SDN and NFV to encourage deeper study of those topics.
ENPM695
(Perm Req)
Secure Operating Systems
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: ENPM691 and CMSC106; or permission of instructor.
Restriction: Permission of Maryland Applied Graduate Engineering.
Additional information: This course assumes knowledge of C programming and a previous operating systems class or knowledge in various issues such as process management, process synchronization, the critical section problem, CPU scheduling, memory management, secondary storage management.
Operating systems are the basic building block on which programmers build applications and on which security-minded professionals rely, whether they are monitoring activity on a computer, testing applications for security, or determining how malicious code affected their network. This course covers advanced topics in operating systems including process management and communication, remote procedure calls, memory management (including shared memory and virtual memory), checkpointing and recovery, file system, I/O subsystem and device management, distributed file systems and security. The course consists of reading and discussing research papers and includes a course project.
ENPM700
(Perm Req)
Software Development for Robotics
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: ENPM702.
Restriction: Permission of Maryland Applied Graduate Engineering.
Credit only granted for: ENPM808X or ENPM700.
Formerly: ENPM808X.
Teaches the tools and processes to develop professional quality software for deployed systems and products. Students will learn the best practices of taking new ideas or prototypes, and understanding what it takes to build the complex software that is so important to today's commercialized robotic systems.
ENPM702
(Perm Req)
Introductory Robot Programming
Credits: 3
Grad Meth: Reg, Aud
Restriction: Permission of Maryland Applied Graduate Engineering.
Credit only granted for: ENPM809Y or ENPM702.
Formerly: ENPM809Y .
This hands-on course will introduce students to the C++ programming language and is specifically designed for students who have had little to no programming experience in their previous studies.
ENPM703
Fundamentals of AI and Deep Learning
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Linear algebra; Fundamentals of programming; Fundamentals of statistics.
Credit only granted for: ENPM809K or ENPM703.
Formerly: ENPM809K.
Fundamentals of machine learning techniques with a deep dive into cutting edge concepts that enabled neural networks to achieve state of the art performance in many visual, textual, and biomedical problems. Fundamental concepts like forward networks, convolution networks, recurrent neural networks, back propagation, loss functions, batch gradient descent, and stochastic optimization will be studied.
ENPM808
(Perm Req)
Advanced Topics in Engineering
Credits: 1 - 3
Grad Meth: Reg, Aud
ENPM808A
(Perm Req)
Advanced Topics in Engineering; Probability and Statistics for Engineering AI
Credits: 3
Grad Meth: Reg, Aud
This course covers the fundamentals of optimization, from formulating a mathematical optimization problem from a problem description, to solving a mathematical optimization problem using numerical algorithms in optimization software, with an emphasis on convex optimization. The main topics include: linear algebra overview; convex sets and convex functions; convex optimization; duality theory and optimality criteria, Karush-Kuhn-Tucker conditions; reinforcement learning; unconstrained optimization algorithms: gradient method, Newton's method, quasi-Newton methods; constrained optimization algorithms: conditional gradient method, gradient projection method, alternating direction method of multipliers, interior point method, primal-dual method; stochastic gradient descent; distributed optimization; global search algorithms. Students will acquire not only theoretical knowledge of optimization, but also hands-on experience with optimization methods and software through assignments and a project.
ENPM808G
(Perm Req)
Advanced Topics in Engineering; Numerical Methods for Engineering AI
Credits: 3
Grad Meth: Reg, Aud
This course covers the fundamentals of optimization, from formulating a mathematical optimization problem from a problem description, to solving a mathematical optimization problem using numerical algorithms in optimization software, with an emphasis on convex optimization. The main topics include: linear algebra overview; convex sets and convex functions; convex optimization; duality theory and optimality criteria, Karush-Kuhn-Tucker conditions; reinforcement learning; unconstrained optimization algorithms: gradient method, Newton's method, quasi-Newton methods; constrained optimization algorithms: conditional gradient method, gradient projection method, alternating direction method of multipliers, interior point method, primal-dual method; stochastic gradient descent; distributed optimization; global search algorithms. Students will acquire not only theoretical knowledge of optimization, but also hands-on experience with optimization methods and software through assignments and a project.
ENPM808N
Advanced Topics in Engineering
Credits: 3
Grad Meth: Reg, Aud
ENPM809V
Special Topics in Engineering; Advanced Hacking of Linux
Credits: 3
Grad Meth: Reg, Aud
This course provides an in-depth understanding of how to find flaws in Linux (both userspace and kernel space) and software within embedded devices (focusing on bare-metal software/firmware and hardware-focused techniques). Students will get an inside look at how modern operating systems and embedded devices protect their programs, flaws within the protection mechanisms, and how to exploit them. Although this is an offensive-focused course, mitigations to protect the programs will also be discussed.
ENPM818I
Variable Topics in Engineering; Embedded Software Design and Optimization
Credits: 3
Grad Meth: Reg, Aud
This course covers the design and optimization of stable, maintainable, and secure embedded software systems. The main study topics include: Software engineering design and documentation artifacts; Information assurance and cybersecurity; CPU architectures, system components, and development tools; Operating system details; Programming models and tools; IO busses and networking protocols; and Low-level optimization techniques. Students will acquire not only technical knowledge, but also soft skills such as communication, collaborations, critical thinking, leadership, negotiation, and time management
ENPM818L
Variable Topics in Engineering; Low Power Design for Embedded Systems
Credits: 3
Grad Meth: Reg, Aud
Throughout the course, we delve into the mechanisms behind power consumption in embedded systems and explore various techniques employed to minimize power usage. Students will engage in hands-on projects where they gain practical experience in observing and measuring power consumption across different operational modes of an embedded system. Additionally, they will learn how to implement strategies to effectively reduce power consumption. Efficient power management is crucial for embedded systems, as it directly impacts their longevity and functionality. The course aims to provide students with a solid foundation in understanding power consumption within embedded systems. Moreover, we examine existing solutions to address the challenges associated with designing low-power embedded systems.
ENPM818M
Variable Topics in Engineering; Introduction to Networking and Distributed Systems 5G/6G
Credits: 3
Grad Meth: Reg, Aud
Course includes basics of TCP/IP Stack, Applications Layers, Data Flow Layers, Data Encapsulation, Protocol Stack, Basic Network Terminology, Network Topology, ARP, BOOTP, DHCP, Local Area Network, Network Components, IPv4, ICMP, Transport Layer Protocols, Application Layer Protocols, Client/Server Models, Subnet/NAT, Routing, Switching, Basics of Distributed Systems, Wireless Protocols, 5G/6G, Edge, Cloud, Energy Consumptions. Course format includes lectures, homework, Quizzed, Two midterms, final project and exam. Course carries a perfect blend of theory and programming practices to prepare students for core network development and/or network architecture.
ENPM818N
Variable Topics in Engineering; Cloud Computing
Credits: 3
Grad Meth: Reg, Aud
This course provides an in-depth exploration of cloud concepts, technologies, and applications. Students will learn about the fundamentals of cloud computing, its architecture, deployment models, and various services offered by major cloud providers. Practical hands-on exercises and real-world case studies will enable students to apply their knowledge to develop and deploy applications in the cloud. Overall, students will gain a comprehensive understanding of cloud computing concepts, technologies, and best practices, enabling them to design, implement, and manage applications and services in cloud environments.
ENPM818R
(Perm Req)
Variable Topics in Engineering; Virtualization and Container Technologies
Credits: 3
Grad Meth: Reg, Aud
This course on virtualization and container technologies will cover a range of topics related to these two fundamental concepts in the field of IT and software development. This comprehensive course is designed to provide participants with an in-depth understanding of virtualization and container technologies, empowering them to architect and optimize modern IT infrastructures.
ENPM818W
(Perm Req)
Variable Topics in Engineering; Python Applications for Engineering AI
Credits: 3
Grad Meth: Reg, Aud
This course provides a comprehensive introduction to Python programming, covering fundamental concepts such as program structure, variables, assignments, and built-in data types, including strings, lists, tuples, and dictionaries. Students will explore control flow, functions, modules, and basic I/O and file operations. The course also introduces object-oriented programming, classes, and exception handling. Beyond the basics, students will delve into algorithms and data structures, including recursion, searching, graph algorithms, priority queues, search trees, and hash tables. The course further explores algorithms used in artificial intelligence and machine learning, such as regression, classification, and clustering. Additionally, students will gain hands-on experience with essential scientific computing libraries, including NumPy, SciPy, and Matplotlib. By the end of the course, students will have a solid foundation in Python programming and its applications in data structures, algorithms, and AI-driven problem-solving.
ENPM818Z
(Perm Req)
Variable Topics in Engineering; On-Road Automated Vehicles
Credits: 3
Grad Meth: Reg, Aud
This course provides a deep dive into the core technical and technological components of automated passenger vehicles for on-road applications. Students will explore the essential systems that enable self-driving capabilities, including perception, sensor fusion, localization, motion planning, and control. The course emphasizes a hands-on approach using CARLA and Autoware, allowing students to developand test advanced driving algorithms in simulated urban and highway environments, focusing on the challenges and requirements specific to passenger vehicle automation.