Hide Advanced Options
Courses - Fall 2023
ENPM
Engineering, Professional Masters Department Site
ENPM611
Software Engineering
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Competency in one programming language; and must have completed an undergraduate software engineering course.
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.
ENPM622
Energy Conversion I - Stationary Power
Credits: 3
Grad Meth: Reg, Aud
Thermal engineering of modern power generation systems. Cycle analysis of various modern power generation technologies including gas turbine, combined cycle, waste burning and cogeneration. Energy storage and energy transport.
ENPM623
Engineering Combustion Emissions for Air Pollution Control
Credits: 3
Grad Meth: Reg, Aud
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
(Perm Req)
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: ENPM602; 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.
ENPM634
Penetration Testing
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: Familiarity with Linux and Windows operating systems, as well as TCP/IP and basic networking concepts.
Credit only granted for: ENPM809Q or ENPM634.
Formerly: ENPM809Q.
This course will give students a hands-on deep dive into penetration testing tools and methodologies. Starting with reconnaissance, open source intelligence, and vulnerability scanning we will move on to exploiting both clients and servers, moving laterally through a network while evading security measures.
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.
ENPM657
Applied Cryptography
Credits: 3
Grad Meth: Reg, Aud
Recommended: Knowledge of C programming.
Credit only granted for: ENPM809A or ENPM657.
Formerly: ENPM809A.
The goal of this course is to provide students with a foundational understanding of cryptography as used in the real world. Students will learn about private-key encryption, message authentication codes, key-exchange protocols, public-key encryption, and digital signatures, in addition to learning about underlying primitives such as pseudorandom number generators, block ciphers, and hash functions. The course will also try to convey the "cryptographic mindset," including formal threat modeling and proofs of security. We will emphasize real-world usage of cryptography by covering standards and best practices, discussing attacks on deployed systems, and giving programming assignments meant to reinforce the concepts covered in class.
ENPM662
Introduction to Robot Modeling
Credits: 3
Grad Meth: Reg, Aud
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.
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
(Perm Req)
Hacking of C programs and Unix Binaries
Credits: 3
Grad Meth: Reg, Aud
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
Secure Operating Systems
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: ENPM691 and CMSC106; or permission of instructor. And permission of ENGR-CDL-Office of Advanced Engineering Education.
Credit only granted for: ENPM695 or ENPM808B.
Formerly: ENPM808B.
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.
ENPM696
Reverse Software Engineering
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: ENEE150 or equivalent.
An in-depth understanding of software reverse engineering concepts and hands-on training with reverse engineering tools, including disassemblers, decompilers, and code analyzers. Students will become familiar with both low-level software and the x86 instruction set through binary reversing sessions. This course also provides insights into many subjects such as system security, source code analysis, software design, and program understanding that will be beneficial in a variety of fields.
ENPM808
(Perm Req)
Advanced Topics in Engineering
Credits: 1 - 3
Grad Meth: Reg, Aud
ENPM808L
Advanced Topics in Engineering; Analytics for Decision Support
Credits: 3
Grad Meth: Reg, Aud
Understand organizational decision-making characteristics and the roles of analytics and decision support systems to enhance and optimize outcomes. Through hands-on practice, be able to lead/collaborate to implement a data analytics project to support organizational goals and measure its effectiveness.
ENPM808W
Advanced Topics in Engineering; Data Science
Credits: 3
Grad Meth: Reg, Aud
The purpose of this course is to teach some of the best and most general approaches to get the most out of data through clustering, classification, and regression techniques. Students will gain experience analyzing several kinds of data, including document collections, financial data, scientific data, and natural images.
ENPM808X
(Perm Req)
Advanced Topics in Engineering; Software Development for Robotics
Credits: 3
Grad Meth: Reg, Aud
Prerequisite: ENPM809Y or equivalent

This course 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.
ENPM809F
Special Topics in Engineering; Internet of Things
Credits: 3
Grad Meth: Reg, Aud
This course covers the fundamental aspects of Internet of Things (IoT) including IoTarchitecture, network protocols, data management and access technologies, IoT security threats and technologies.
ENPM809K
Special Topics in Engineering; Fundamentals for Artificial Intelligence and Deep Learning Framework
Credits: 3
Grad Meth: Reg, Aud
This class will introduce fundamentals of machine learning techniques and deep dive in cutting edge concepts that enabled neural networks to achieve state of the art performance in many visual, textual, and biomedical problems.
ENPM809W
Special Topics in Engineering; Introduction to Secure Coding for Software Engineering
Credits: 3
Grad Meth: Reg, Aud
This course will cover 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.
ENPM809Y
Special Topics in Engineering; Introductory Robot Programming
Credits: 3
Grad Meth: Reg, Aud
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.