Graduate Certificate in Engineering Courses
This option, offered by Electrical and Computer Engineering, Computer Science, and the Maryland Cybersecurity Center, recommends four courses from the six Cybersecurity Core Courses listed. Students should consult with their advisor prior to registering.
Cybersecurity Core Courses (4 of 6 courses)
ENPM 685 Security Tools for Information Security (3 credits)
Previously offered as ENPM808D. Prerequisites: 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.
ENPM 686 Information Assurance (3 credits)
Previously offered as ENPM808E.
The first half of lectures provides an overview of cybersecurity. One third of these lectures focuses on the fundamentals of cybersecurity like authentication, access control, and security models. The second third focuses on the practice of cybersecurity using Unix and Windows NT as case studies. The last third is dedicated to security in distributed systems including network security, and World Wide Web security. The second half of the lectures focuses on the information assurance process. First, information assets are enumerated and classified. Second, the main vulnerabilities and threats are identified. Third, a risk assessment is conducted by considering the probability and impact of the undesired events. Finally, a risk management plan is developed that includes countermeasures involving mitigating, eliminating, accepting, or transferring the risks, and considers prevention, detection, and response.
ENPM 691 Secure Programming in C (3 credits)
This course 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.
ENPM 693 Network Security (3 credits)
Prerequisite: An operating systems and/or network protocol course or equivalent. Formerly: ENPM808N.
This course provides the necessary foundation on network security and an in-depth review of commonly-used security mechanisms and techniques. Specific topics that will be covered include network attacks, firewalls, intrusion detection and response, security protocols (in particular, IPsec, SSL, and Kerberos), Denial of Service (DoS) attacks/ detection/prevention, viruses and worms, DNS, email & Voice Over IP (VoIP) security, wireless infrastructure security, web security, and privacy.
ENPM 694 Networks and Protocols (3 credits)
This course provides a deep understanding of TCP/IP protocol suit and routing in the internet. The course topics are: overview of TCP/IP, basics of IP protocol, basics of TCP protocol, Network Address Translation (NAT), Dynamic Host Configuration Protocol (DHCP), Internet Protocol Security (IPsec), Internet Control Message Protocol (ICMP), Simple Mail Transfer Protocol (SMTP), Domain Name Service (DNS), IPv6, Concepts of routing (Bellman-Ford and Dijkstra algorithms), Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Interior Gateway Routing Protocol (IGRP), Enhance Gateway Routing Protocol (EIGRP), and Border Gateway Protocol (BGP).
ENPM 695 Secure Operating Systems (3 credits)
Note: Previously offered as ENPM808B. Prerequisite: ENPM691 Secure Programming in C, CMSC 106 Introduction to C Programming, or permission of the instructor.
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. Please note: 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.