Electrical & Computer

Master of Engineering Courses

This option, offered by Electrical and Computer Engineering, recommends a mixture of core courses and technical electives.  Students must select one of the two areas of interest below.

Communications and Signal Processing:

  • Requirements for Students Entering Prior to Fall 2017 - Students take all six courses from this area, or a minimum of four courses from this area and up to two courses from either Computer or Software Engineering. The four technical electives are selected by the students, but require approval of the academic advisor prior to registering
  • Requirements for Students Entering in Fall 2017 and Beyond - Students take a minimum of four courses from the CSP core and up to two core courses from either Computer Engineering or Software Engineering. The four additional technical electives are selected by the students, but require approval of the academic advisor prior to registering

Computer Engineering:

  • Requirements for Students Entering Prior to Fall 2017 - The Computer Engineering option students could take all six Computer Engineering core courses, or five Computer Engineering core courses and one core course from Software Engineering or Communication and Signal Processing, or two Computer Engineering core courses and all four core courses from Software Engineering. The four technical electives are selected by the students, but require approval of the academic advisor prior to registering
  • Requirements for Students Entering in Fall 2017 and Beyond - The Computer Engineering option students take four Computer Engineering core courses and two core courses from Software Engineering or Communication and Signal Processing. The four technical electives are selected by the students, but require approval of the academic advisor prior to registering

Computer Engineering

ENEE645 Compilers and Optimization (3)
ENEE350 or CMSC216; or students who have taken courses with similar or comparable course content may contact the department. Credit only granted for: ENEE645 or ENEE759C. Formerly: ENEE759C.
The compilation, linking and loading process. Using lexical analyzers and parsers. Intermediate forms. Global, stack and heap objects, and their addressing modes. Stack implementation. Control flow analysis and optimization. Dataflow analysis and optimization including Static, single assignment. Alias analysis.
ENPM607 Computer System Design and Architecture (3)
Prerequisite: ENEE446; or students who have taken courses with similar or comparable course content may contact the department.
Principles of computer design and cost/performance factors; instruction set design and implementation, RISC vs. CISC instruction sets; control unit and pipeline design; floating-point arithmetic; memory hierarchy designs, caches, memory interleaving, virtual memory; I/O device interconnections to CPUs and main memory. Additional topics include parallel system designs, SIMD, MIMD, SPMD; interconnection networks for processors and memories; optimization of pipeline operations; superscalar architectures, power management techniques.
ENPM609 Microprocessor-Based Design (3)
Prerequisite: Must have completed undergraduate courses in logic design, computer architecture, and programming.
Introduction to microprocessor components, software, and tools. Architectures, instruction sets, and assembly language programming for a commercial microprocessor family. Real-time programming techniques. Peripheral chips such as, parallel ports, counter-timers, DMA controllers, interrupt controllers, and serial communication units. Design projects emphasizing intergrated hardware and software solutions to engineering problems.
ENPM610 Digital VLSI Design (3)
Prerequisite: Must have completed undergraduate courses in solid state devices and digital/analog circuit design.
VLSI design with emphasis on CMOS technology. Logic functions using CMOS switches; MOSFET characteristics; BiCMOS, dynamic logic and domino logic structures; PLA's, FPLA's, and gate arrays; layout via MAGIC, use of VHDL, IRSIM, and Spice; design rules and verification techniques; packaging techniques; chip design options: standard cells, sea-of-gates, full custom; design capture and verification tools; design of CMOS datapaths, memory, and control; possible fabrication via MOSIS.
ENPM615 Embedded Systems (3)
ENEE 150 or equivalent (recommended), ENEE 244 or equivalent (required), and ENEE 350 or equivalent (required).
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 accelerators, multiprocessors, networks, and system analysis. Real-life embedded systems design examples will be used throughout the course to illustrate these concepts. Selective hot topics such as low power embedded systems design and hardware security will also be discussed.
ENPM675 Operating System Design (3)
Prerequisite: Undergraduate coursework in computer organization and assembly language programming.
An overview that covers process management (processes and threads, process scheduling, and process synchronization and communication), memory management (main and virtual), storage management (file and I/O), and protection and security.
ENPM808T Advanced Topics in Engineering; Compilers (3)
Credit will only be given for ENPM 808T or ENEE645, not both courses
The course is intended to cover the underlying techniques of Compiler Construction. The course will introduce the theory and tools that can be employed in order to perform syntax-directed translation of a high-level programming language into an executable code.

Communication & Signal Processing

ENPM600 Probability and Stochastic Processes for Engineers (3)
Prerequisite: Undergraduate introduction to discrete and continuous probability.
Axioms of probability; conditional probability and Bayes' rule; random variables, probability distributions and densities; functions of random variables; definition of stochastic process; stationary processes, correlation functions, and power spectral densities; stochastic processes and linear systems; estimation and optimum filtering. Applications in communication and control systems, signal processing, and detection and estimation.
ENPM601 Analog and Digital Communication Systems (3)
Prerequisite: ENPM600
Analog modulation methods including AM, DSBSC-AM, SSB, and QAM; effects of noise in analog modulation systems. Digital communication methods for the infinite bandwidth additive white Gaussian noise channel: PAM, QAM, PSK, FSK modulation; optimum receivers using the MAP principle; phase- locked loops; error probabilities. Digital communication over bandlimited channels: intersymbol interference and Nyquist's criterion, adaptive equalizers, symbol clock and carrier recovery systems, trellis coding. Spread spectrum systems: direct sequence modulation and frequency hopping.
ENPM602 Data Networks (3)
Prerequisite: ENEE324; or students who have taken courses with similar or comparable course content may contact the department.
Principles of network design, circuit switching and packet switching, OSI Reference Model; parity and cyclic redundancy check codes; retransmission request protocols; Markov chains and queuing models for delay analysis; multiaccess communication, local area networks, Ethernet and Token Ring standards; routing, flow control, internetworking; higher layer functions and protocols. Software tools for network simulation and performance analysis will be used.
ENPM603 Theory and Applications of Digital Signal Processing (3)
Prerequisite: Undergraduate introduction to discrete-time systems.
Uniform sampling and the sampling theorem; the Z-transform and discrete-time system analysis; multi-rate systems; discrete-time random processes; methods for designing FIR and IIR digital filters; effects of quantization and finite work-length; the DFT and FFT; power spectrum estimation.
ENPM604 Wireless Communication Networks (3)
Prerequisite: ENEE426 and ENEE420. Note: ENPM604 will no longer be offered after Spring 2017 and is being replaced as a core course by ENPM616, students beginning the program prior to Fall 2017 being grandfathered in.
Design and analysis of wireless communication systems. Aspects of radio propagation, signal strength, multipath propagation, fading, diversity reception, cell shapes. Modulation and coding for the mobile radio channel including FDMA, TDMA, and CDMA. Multiaccess issues including frequency allocation, channel reuse, and power control. System level issues including traffic engineering, blocking, network design and optimization, channel allocation control, handoffs, mobility management, registration and tracking, signaling and user location database management. Examples of existing analog and emerging digital cellular standards.
ENPM605 Information Theory and Coding (3)
Prerequisite: A course in probability and some knowledge of random processes.
This course will study communication systems from a mathematical viewpoint and with the framework set up by Claude Shannon in 1948. This is achieved by viewing the information being communicated and also the noise and other disturbances in a communication system as stochastic processes and phenomenas. Information theory then shows, through a number of elegant coding theorems, the optimum performance that can be achieved with any communication system
ENPM616 Wireless Communications: Concepts and Technologies (3)
Note: ENPM616 replaces ENP604 as a core course, students beginning the program prior to Fall 2017 being grandfathered in.
Advanced topics in wireless communications for voice, data, and multimedia. Overview of current wireless systems and standards followed by characterizing the wireless channel, including path loss for different environments, random log-normal shadowing due to signal attenuation, and the flat and frequency-selective properties of multipath fading. Fundamental capacity limits of wireless channels and the characteristics of the capacity-achieving transmission strategies. Overview of wireless networks, including multiple and random access techniques, WLANs, cellular system design, and ad-hoc network design. Applications for these systems, including the evolution of cell phones and PDAs, smart homes and appliances, sensor networks, and automated highways and skyways.

Communication & Signal Processing

ENPM631 TCIP/IP Networking (3)
Prerequisite: ENPM602
To describe how IP datagram travels through the internet and are routed from the source to the destination. To introduce the two transport protocols: UDP and TCP, the proper context to use each one, and related parameters and issues. To cover some other protocols, closely related to the TCP/IP that are responsible for the seamless operation of the Internet.
ENPM632 Advanced TCIP/IP Networking (3)
Prerequisite: ENPM631
Topics to be covered are: Address resolution protocol (ARP); Error and control messages (ICMP); Internet Protocol (IP); Addressing classes; Classless and subnet address extensions (CIDR); User datagram protocol (UDP); Transport Control Protocol (TCP); TCP performance; Flow control; Congestion management; Routing protocols; Internet multicasting (IGMP); Network address translation (NAT); IPv6; Domain Name Service (DNS); Virtual LANs (VLAN); Applications (Telnet, FTP, …); The Socket Interface.
ENPM677 Wireless Sensor Networks (3)
Focuses on networking aspects, protocols and architectures for Wireless Sensor Networks. Provides a thorough description of the most important issues and questions that have to be addressed in a wireless sensor network.
ENPM693 Network Security (3)
Prerequisite: An operating systems and/or network protocol course or equivalent. Formerly: ENPM808N.
Introduction to various approaches to design; specify and verify security protocols used in large systems and networks; familiarization with some current technologies. Security threats and countermeasures, communication security and basic encryption techniques, authentication protocols, data confidentiality and integrity, analysis of cryptographic protocols, and access control in large systems and networks.
ENPM808Z Satellite Communications (3)
This course will start with a brief introduction to the theory behind any satellite system. The Kepler laws, radio wave propagation, different satellite orbits (GEO, LEO, MEO) will be discussed briefly. After the introduction, different aspect of a satellite system, space segment, earth segment, hardware (antennae, RF section...) will be explored. The transmit/receive powers, amplifiers; antenna, noise, interference and link budget are other important topics of this course. Digital satellite systems will be discussed in at least three sessions and covers different modulation techniques, error correcting codes, source codes for voice/video/data transmission to and from satellite, security and satellite access methods (TDMA, FDMA, etc). This course will have three LABs. We will use SDK software form AIG to explore different scenarios for link budget, access, data transfer, and noise and interference effects on the satellite signal. Throughout the course, we also take a closer look at the famous satellite system currently working like GPS system, Iridium system and satellite TV.

Computer Engineering

ENPM674 Design and Synthesis of Digital Systems (3)
Previously offered as ENPM808R.
This course will introduce students to HDL-based design of modern digital systems, and will cover in depth the design and implementation of digital systems using the Verilog HDL. Students will learn fundamental concepts of the Verilog language; modeling of complex digital systems; simulation and veri.cation; and Verilog coding styles for synthesis. Hands-on experience will be developed through practical designs, exercises, and projects. Students will use state-of-the-art EDA tools to design, simulate, and test digital systems. The latter part of the course will focus on customized programmable platforms such as graphics processors (GPUs) multicore platforms and FPGAs as well as coding, building, and debugging for such platforms.
ENPM676 VLSI Testing and Design for Testability (3)
Prerequisite: ENEE244; or students who have taken courses with similar or comparable course content may contact the department.
An overview of VLSI test process and equipment, faults, fault modeling, fault simulation, combinational logi ATPG, sequential logic ATPG, Iddq testing, function testing, memory testing, delay testing, design for testability, BIST (Built-In Self-Test) and boundary scan.

Office of Advanced Engineering Education

2105 J.M. Patterson Building
University of Maryland
College Park, MD 20742

Copyright © 2017 University of Maryland. All rights reserved.

English French German Italian Portuguese Russian Spanish