Electrical Engineering and Computer Science Courses

*For more information regarding course equivalencies please refer to the Course Equivalency section, under “How to Read a Course Description“, in the CoE Bulletin Website: https://bulletin.engin.umich.edu/courses/course-info/

100 Level Courses

EECS 101. Thriving in a Digital World
Prerequisite: none. (4 credits).
From mobile apps to bitmaps, this course explores computational technologies and how they impact society and our everyday lives. Topics include: social networks, creative computing, algorithms, security and digital privacy. Traditional computer programming is not a primary focus. Instead, mobile applications will be created using a novel visual programming environment. CourseProfile (ATLAS)

EECS 180. Exam/Transfer Introductory Computer Programming Credit 
Cannot receive credit if student has credit for EECS 183 or ENGR 101 or ENGR 151 (3-4 credits).
Credit for college-level introductory programming coursework based on a satisfactory score on an approved exam (e.g., a score of 5 on the AP Computer Science A exam) or on transfer credit for an approved introductory programming course at another college. Indicates preparedness to proceed to EECS 280. CourseProfile (ATLAS)

EECS 183. Elementary Programming Concepts
Prerequisite: None. (Credit for only one: EECS 180, EECS 183, ENGR 101 or ENGR 151) (4 credits)
Fundamental concepts and skills of programming in a high-level language. Flow of control: selection, iteration, subprograms. Data structures: strings, arrays, records, lists, tables. Algorithms using selection and iteration (decision making, finding maxima/minima, searching, sorting, simulation, etc.) Good program design, structure and style are emphasized. Testing and debugging. Not intended for Engineering students (who should take ENGR 101), nor for CS majors in LSA who qualify to enter EECS 280. CourseProfile (ATLAS)

EECS 198. Special Topics 
Advisory Prerequisite: Permission of instructor. (1-4 credits) Topics of current interest selected by the faculty. Lecture, seminar, or laboratory. CourseProfile (ATLAS)

200 Level Courses

EECS 200. Electrical Engineering Systems Design I
Advisory Prerequisite: ENGR 100 or ENGR 101 or ENGR 151 or EECS 180 or EECS 280. Preceded or accompanied by: EECS 215 Minimum grade of “C” for advised prerequisites. (2 credits)
Gain a systems engineering perspective of electrical engineering centered around a design competition to address a societally-relevant challenge. Apply electrical engineering concepts in circuits, computing, control, sensors, optics, power, signal processing, and wireless communications to a system such as a robot, and adapt the system to achieve competition objectives within defined engineering constraints. CourseProfile (ATLAS)

EECS 201. Computer Science Pragmatics
Prerequisite: EECS 180 or EECS 183 or ENGR 101 or ENGR 151 or preceded or accompanied by (EECS 280 or EECS 281). Minimum grade of “C” required for enforced prerequisites. (1 credit)
Essential tools for computer programming:  Shells, environments, scripting, Makefiles, compilers, debugging tools, and version controlCourseProfile (ATLAS)

EECS 203. Discrete Mathematics
Advisory Prerequisite: (MATH 115 or 116 or 119 or 120 or 121 or 156 or 175 or 176 or 185 or 186 or 214 or 215 or 216 or 217 or 255 or 256 or 285 or 286 or 295 or 296 or 417 or 419). Minimum grade of C required for enforced prerequisites.  (4 credits) [Fewer than two previous elections of EECS 203 (incl. grades of W.I, VI, and AUD)]
Introduction to the mathematical foundations of computer science. Topics covered include: propositional and predicate logic, set theory, function and relations, growth of functions and asymptotic notation, introduction to algorithms, elementary combinatorics and graph theory and discrete probability theory. CourseProfile (ATLAS)

EECS 215. Introduction to Electronic Circuits
Prerequisite: (MATH 116 or 121 or 156) and (ENGR 101 or 151 or EECS 180 or 183 or preceded or accompanied by EECS 280) and (preceded or accompanied by: PHYSICS 240 or 260); (C or better, No OP/F) Cannot receive credit for both EECS 314 and EECS 215. Minimum grade of C required for enforced prerequisites. (4 credits)
Introduction to electronic circuits. Basic Concepts of voltage and current; Kirchhoff’s voltage and current laws; Ohm’s law; voltage and current sources; Thevenin and Norton equivalent circuits; DC and low frequency active circuits using operational amplifiers, diodes, and transistors; small signal analysis; energy and power. Time- and frequency-domain analysis of RLC circuits. Basic passive and active electronic filters. Laboratory experience with electrical signals and circuits. CourseProfile (ATLAS)

EECS 216. Introduction to Signals and Systems
Prerequisite: EECS 215 or EECS 314 or BIOMEDE 211, preceded or accompanied by MATH 216. (4 credits).
Theory and practice of signals and systems engineering in continuous and discrete time. Continuous-time linear time-invariant systems, impulse response, convolution. Fourier series, Fourier transforms, spectrum, frequency response and filtering. Sampling leading to basic digital signal processing using the discrete-time Fourier and the discrete Fourier transform. Laplace transforms, transfer functions, poles and zeros, stability. Applications of Laplace transform theory to RLC circuit analysis. Introduction to communications, control and signal processing. Weekly recitations and hardware/Matlab software laboratories. CourseProfile (ATLAS)

EECS 230. Electromagnetics I
Prerequisite: MATH 215, PHYSICS 240 (or 260), EECS 215. (4 credits).
Vector calculus. Electrostatics. Magnetostatics. Time-varying fields: Faraday’s Law and displacement current. Maxwell’s equations in differential form. Traveling waves and phasors. Uniform plane waves. Reflection and transmission at normal incidence. Transmission lines. Laboratory segment may include experiments with transmission lines, the use of computer-simulation exercises, and classroom demonstrations. CourseProfile (ATLAS)

EECS 250 (NAVSCI 202). Electronic Sensing Systems
Prerequisite: preceded or accompanied by EECS 230 or PHYSICS 240. (3 credits). 
Introduction to properties and behavior of electromagnetic energy as it pertains to naval applications of communication, radar, and electro-optics.  Additional topics include sound navigation and ranging (SONAR), tracking and guidance systems, and computer-controlled systems. CourseProfile (ATLAS)

EECS 270. Introduction to Logic Design
Prerequisite: EECS 180 or EECS 183 or ENGR 101 or ENGR 151. Minimum grade of “C” required for enforced prerequisites. (4 credits).
Boolean algebra, digital design techniques, logic gates, logic and state minimization, standard combinational circuits, latches and flip-flops, sequential circuits, synthesis of synchronous sequential circuits, state machines, FPGAs, memories, arithmetic circuits, and computer-aided design. Laboratory involves CAD-based design implemented on an FPGA including elementary interfacing.
experiments. CourseProfile (ATLAS)

EECS 280. Programming and Introductory Data Structures
Prerequisite: ENGR 101 or ENGR 151 or EECS 180 or EECS 183. Minimum grade of “C” required for enforced prerequisites. (4 credits) [Fewer than two previous elections of EECS 280 (incl. grades of W.I, VI, and AUD)]
Algorithm development and effective programming, top-down analysis, structured programming, testing and program correctness. Program language syntax and static and runtime semantics. Scope, procedure instantiation, recursion, abstract data types and parameter passing methods. Structured data types, pointers, linked data structures, stacks, queues, arrays, records and trees. CourseProfile (ATLAS)

EECS 281. Data Structures and Algorithms
Prerequisite: (EECS 203 or Math 465 or Math 565) and EECS 280. Minimum grade of “C” required for enforced prerequisites. Advised Prerequisite: Minimum GPA of 2.5 over the best grade for each enforced prerequisite. (4 credits) [(EECS 203 or MATH 465 or 565) and EECS 280; (C or better, NO OP/F)] and [Fewer than two previous elections of EECS 281 (incl. grades of W, I, VI, and AUD)]
Introduction to algorithm analysis and O-notation; Fundamental data structures including lists, stacks, queues, priority queues, hash tables, binary trees, search trees, balanced trees and graphs; searching and sorting algorithms; recursive algorithms; basic graph algorithms; introduction to greedy algorithms and divide and conquer strategy. Several programming assignments. CourseProfile (ATLAS)

EECS 285. Practical Programming in Java
Prerequisite: EECS 280. Minimum grade of C required for enforced prerequisites. (2 credits)
Introduction to Java programming, including language features, design principles, and programming practices. Topics include: Java syntax and semantics, object-oriented design, exception handling, graphical user interfaces, mobile-application development, asynchronous programming, and unit testing. CourseProfile (ATLAS)

EECS 298. Special Topics 
Advisory Prerequisite: Permission of instructor. (1-4 credits)
Topics of current interest selected by the faculty and pilot versions of new courses. Lecture, seminar, or laboratory. CourseProfile (ATLAS)

300 Level Courses

EECS 300. Electrical Engineering Systems Design II
Prerequisite: EECS 200, at least 3 of 4 (215, 216, 230, 280), Co-requisite EECS: 4th of 4 (215, 216, 230, 280) Minimum grade of C required for enforced prerequisites. (3 credits)
Principles of engineering design for electrical engineering systems. Integration of electrical engineering foundational concepts to address system-level objectives. Semester-long, open-ended design based on a societally-relevant challenge. Technical topics include embedded systems fundamentals, sensing, power and energy tradeoffs, and addressing realistic constraints of project requirements. CourseProfile (ATLAS)

EECS 301. Probabilistic Methods in Engineering
Advisory Prerequisite: Preceded or accompanied by EECS 216. (4 credits)
Basic concepts of probability theory. Random variables: discrete, continuous and conditional probability distributions; averages; independence. Statistical inference: hypothesis testing and estimation. Introduction to discrete and continuous random processes. CourseProfile (ATLAS)

EECS 311. Analog Circuits
Prerequisite: EECS 215 and EECS 216. (4 credits)
DC and AC circuit models for diodes, bipolar junction transistors and field-effect transistors; small-signal and piecewise analysis of nonlinear circuits; analysis and design of single-stage and multi-stage transistor amplifiers: gain, biasing and frequency response; op-amp based filter design; non-ideal op-amps. Design projects. Lecture and laboratory. CourseProfile (ATLAS)

EECS 312. Digital Integrated Circuits
Prerequisite: EECS 215 and Math 216. Minimum grade of “C” required for enforced prerequisites. (4 credits).
Review of MOSFET device operation. Design of digital circuits, including static CMOS, ratioed, dynamic, and pass-transistor logic. Memory structures, including static and dynamic RAM; sequential elements; and interconnects. Analysis of circuit delay, power, and noise margins. Use of circuit simulation in analysis and design. Design project(s). CourseProfile (ATLAS)

EECS 314. Electrical Circuits, Systems, and Applications
Prerequisite: MATH 214 or MATH 216, PHYSICS 240. Credit for only one: EECS 215, or EECS 314. Not open to CE or EE students. (4 credits).
Students will learn about electrical systems operation, specifications and interactions with other modules. Theory will be motivated by the use of examples taken from a variety of fields. Topics covered include circuit fundamentals, frequency response and transients, analog and digital electronics. In lab, students will build and analyze circuits including amplifiers, filters and temperature controllers. CourseProfile (ATLAS)

EECS 320. Introduction to Semiconductor Devices
Prerequisite: EECS 215 and PHYSICS 240 or 260. (4 credits)
Introduction to semiconductors in terms of atomic bonding and electron energy bands. Equilibrium statistics of electrons and holes. Carrier dynamics; continuity, drift and diffusion currents; generation and recombination processes, including important optical processes. Introduction to: PN junctions, metal-semiconductor junctions, light detectors and emitters; bipolar junction transistors, junction and MOSFETs. CourseProfile (ATLAS)

EECS 330. Introduction to Antennas and Wireless Systems
Prerequisite: EECS 230. (4 credits)
Electromagnetic fields and waves applied to antennas and wireless systems.  The course covers wave reflection and transmission, dipoles, arrays, horn and patch antennas, waveguides, microstrip lines, resonators, and their applications in communication and radar systems.  Introduction to advanced electromagnetics, communication systems, sensor systems, remote sensing and global navigation systems. CourseProfile (ATLAS)

EECS 334. Principles of Optics
Prerequisite: PHYSICS 240. A student can receive credit for only one: EECS 334 or PHYSICS 402. (4 credits)
Basic principles of optics: light sources and propagation of light; geometrical optics, lenses and imaging; ray tracing and lens aberrations; interference of light waves, coherent and incoherent light beams; Fresnel and Fraunhofer diffraction. Overview of modern optics with laboratory demonstrations. CourseProfile (ATLAS)

EECS 351. Introduction to Digital Signal Processing
Prerequisite: EECS 216. Minimum grade of C for enforced prerequisites. (4 credits) 
DSP methods and applications. Sampling and reconstruction, difference equations, convolution, stability, z-transform, transfer function, frequency response, FIR and IIR, DTFT, DFT, FFT, windows, spectrogram, computer-aided filter design, correlation, multi-rate, basic image processing, discrete time wavelets, filter banks. Applications: filtering, denoising, deconvolution, classification, others.  CourseProfile (ATLAS)

EECS 367. Introduction to Autonomous Robotics
Prerequisite: EECS 281 and (MATH 214 or 217 or 296 or 417 or 419, or ROB 101; (No OP/F). Minimum grade of “C” required for enforced prerequisites. (4 credits) 
A computational introduction to the modeling and control of autonomous robots and mobile manipulators.  Programming projects and lectures cover 3D coordinate systems, axis-angle rotation, forward and inverse kinematics, physical simulation and numerical integration, motion control, path planning, high-dimensional motion planning, and robot software systems.  Emphasizes portable programming of general robots. CourseProfile (ATLAS)

EECS 370. Introduction to Computer Organization
Prerequisite: (EECS 203 or Math 465 or Math 565 or EECS 270) and EECS 280. (4 credits)
Basic concepts of computer organization and hardware. Instructions executed by a processor and how to use these instructions in simple assembly-language programs. Stored-program concept. Datapath and control for multiple implementations of a processor. Performance evaluation, pipelining, caches, virtual memory, input/output. CourseProfile (ATLAS)

EECS 373. Introduction to Embedded System Design
Prerequisite: EECS 270 and EECS 370 and junior standing or higher. Minimum grade of “C” required for enforced prerequisites. (4 credits).
Principles of designing application-specific computer systems that interact with the physical world. Covers memory-mapped I/O, interrupts, analog interfacing, microprocessors, reconfigurable hardware, sensors, and actuators. Complex hardware/software system design and implementation. Substantial student-defined team design project. CourseProfile (ATLAS)

EECS 376. Foundations of Computer Science
Prerequisite: EECS 280 and (EECS 203 or Math 465 or Math 565). Minimum grade of C required for enforced prerequisites. (4 credits).
Introduction to theory of computation.  Models of computation: finite state machines, Turing machines.  Decidable and undecidable problems.  Polynomial time computability and paradigms of algorithm design.  computational complexity emphasizing NP-hardness.  Coping with intractability.  Exploiting intractability:  cryptography. CourseProfile (ATLAS)

EECS 388. Introduction to Computer Security
Prerequisite: Enforced: EECS 281. Advisory: EECS 370. (4 credits)
This course introduces the principles and practices of computer security as applied to software, host systems, and networks. It covers the foundations of building, using and managing secure systems. Topics include standard cryptographic functions and protocols, threats and defenses for real-world systems, incident response and computer forensics. There will be homework exercises, programming projects and a final exam. CourseProfile (ATLAS)

EECS 390. Programming Paradigms
Prerequisite: EECS 281. Minimum grade of “C” required for enforced prerequisites (4 credits)
Survey of programming language features and paradigms and how to effectively use them. Introduces common features for program execution, data, and resource management. Exploration of paradigms including imperative, functional, object-oriented, and declarative programming, as well as advanced programming techniques. Students will gain experience in large projects that incorporate these paradigms. CourseProfile (ATLAS)

EECS 398. Special Topics
Advisory Prerequisite: permission of instructor. (1-4 credits)
Topics of current interest selected by the faculty. Lecture, seminar, or laboratory. CourseProfile (ATLAS)

EECS 399. Directed Study
Prerequisite: Sophomore or Junior Standing, and Permission of Instructor. (1-4 credits)
This course provides an opportunity for undergraduate students to work on research problems in EECS or areas of special interest such as design problems.  CourseProfile (ATLAS)

400 Level Courses

EECS 402. Computer Programming For Scientists and Engineers 
Prerequisite: Senior or graduate standing. Minimum grade of “C” required for enforced prerequisites. (4 credits) (May not be taken if student has credit for or is currently enrolled in EECS 180, EECS 183, ENGR 101, ENGR 151, EECS 280 or EECS 282.)
Presents concepts and hands-on experience for designing and writing programs using one or more programming languages currently important in solving real-world problems. Intended for senior undergraduates and graduate students in science or engineering fields. Not available for credit to EECS majors; will not substitute for ENG 101. CourseProfile (ATLAS)

EECS 403. Graduate Foundations of Data Structures and Algorithms
Prerequisite: Graduate standing and (EECS 402) and (EECS 203 or Math 465 or Math 565. Minimum grade of “C” required for enforced prerequisites. (4 credits)
Introduction to algorithm analysis and O-notation; Fundamental data structures including lists, stacks, queues, priority queues, hash tables, binary trees, search trees, balanced trees and graphs; searching and sorting algorithms; recursive algorithms; basic graph algorithms; introduction to greedy algorithms and divide and conquer strategy. Several programming assignments. CourseProfile (ATLAS)

EECS 406 (ENGR 406). High-Tech Entrepreneurship
Prerequisite: None. (4 credits)
Four aspects of starting high-tech companies are discussed: opportunity and strategy, creating new ventures, functional development, and growth and financing. Also, student groups work on reviewing business books, case studies, elevator and investor pitches. Different financing models are covered, including angel or VC funding and small business (SBIR) funding. CourseProfile (ATLAS)

EECS 409. Data Science Seminar
Prerequisite: None. (1 credit) The MIDAS Seminar Series features leading data scientists from around the world and across the U-M campuses addressing a variety of topics in data science, and sharing their vision regarding the future of the field.  These thought leaders are invited from academia, industry and government.  A satisfactory grade is obtained in this course by regular attendance at the weekly seminar. CourseProfile (ATLAS)

EECS 410 (ENGR 410) Patent Fundamentals for Engineers
Prerequisite: (Junior or senior standing) or graduate standing. (4 credits)
This course covers the fundamentals of patents for engineers. The first part of the course focuses on the rules and codes that govern patent prosecution, and the second part focuses on claim drafting and amendment writing. Other topics covered include litigation, ethics and licensing. CourseProfile (ATLAS)

EECS 411. Microwave Circuits I
Prerequisite: EECS 311 or 330, or graduate standing. (4 credits) Transmission-line theory, microstrip and coplanar lines, S-parameters, signal-flow graphs, matching networks, directional couplers, low-pass and band-pass filters, diode detectors. Design, fabrication and measurements (1-10GHz) of microwave-integrated circuits using CAD tools and network analyzers. CourseProfile (ATLAS)

EECS 413. Monolithic Amplifier Circuits
Prerequisite: EECS 311 and EECS 320 or graduate standing. (4 credits)
Analysis and design of BJT and MOS multi-transistor amplifiers. Feedback theory and application to feedback amplifiers. Stability considerations, pole-zero cancellation, root locus techniques in feedback amplifiers. Detailed analysis and design of BJT and MOS integrated operational amplifiers. Lectures and laboratory. CourseProfile (ATLAS)

EECS 414. Introduction to MEMS
Prerequisite: MATH 215 and MATH 216 and PHYSICS 240 or graduate standing. (4 credits) Micro electro mechanical systems (MEMS), devices and technologies. Micro-machining and microfabrication techniques, including planar thin-film processing, silicon etching, wafer bonding, photolithography, deposition and etching. Transduction mechanisms and modeling in different energy domains. Analysis of micromachined capacitive, piezoresistive and thermal sensors/actuators and applications. Computer-aided design for MEMS layout, fabrication and analysis. CourseProfile (ATLAS)

EECS 417 (BIOMEDE 417). Electrical Biophysics
Prerequisite: EECS 215 and 216 or graduate standing. (4 credits) Electrical biophysics of nerve and muscle; electrical conduction in excitable tissue; quantitative models for nerve and muscle, including the Hodgkin Huxley equations; biopotential mapping, cardiac electrophysiology, and functional electrical stimulation; group projects. Lecture and recitation. CourseProfile (ATLAS)

EECS 418. Power Electronics
Prerequisite: (EECS 215 and EECS 216 and preceded or accompanied by EECS 320) or graduate standing. (4 credits)
AC-DC, DC-DC switch-mode power converter topologies. Power converter topologies. Power Semiconductor devices, inductors, capacitors. Loss mechanisms, thermal analysis. Drive, snubber circuits. Laboratory experience with power electronic circuits. CourseProfile (ATLAS)

EECS 419. Electric Machinery and Drives
Prerequisite: ((Phys 240 or 260) and EECS 215 and EECS 216) or graduate standing. (4 credits) 
Generation of forces and torques in electromechanical devices. Power electronic drives, motion control. DC machines. AC machines, surface mount permanent magnet machines, induction machines. Applications examined include electric propulsion drives for electric/hybrid vehicles, generators for wind turbines, and high-speed motor/alternators for flywheel energy storage systems. Laboratory experience with electric drives. CourseProfile (ATLAS)

EECS 421. Properties of Transistors
Prerequisite: EECS 320 or graduate standing. (4 credits) In depth understanding of the device physics and working principle of some basic IC components: metal-semiconductor junctions, P-N junctions, metal-oxide-semiconductor junctions, MOSFETs and BJTs. CourseProfile (ATLAS)

EECS 423. Solid-State Device Laboratory
Prerequisite: EECS 320 or graduate standing. (4 credits) Semiconductor material and device fabrication and evaluation: diodes, bipolar and field-effect transistors, passive components. Semiconductor processing techniques: oxidation, diffusion, deposition, etching, photolithography. Lecture and laboratory. Projects to design and simulate device fabrication sequence. CourseProfile (ATLAS)

EECS 425. Integrated Microsystems Laboratory
Prerequisite: EECS 311 or EECS 312 or EECS 414 or graduate standing. (4 credits)
Development of a complete integrated microsystem, from functional definition to final test. MEMS-based transducer design and electrical, mechanical and thermal limits. Design of MOS interface circuits. MEMS and MOS chip fabrication. Mask making, pattern transfer, oxidation, ion implantation and metallization. Packaging and testing challenges. Students work in interdisciplinary teams. CourseProfile (ATLAS)

EECS 427. VLSI Design I
Prerequisite: (EECS 270 and EECS 312) or graduate standing. Minimum grade of “C” required for enforced prerequisites. (4 credits) Design techniques for full-custom VLSI circuits. Design rule checking, logic and circuit simulation. CMOS circuit delay and power analysis. High performance and low power VLSI systems. CMOS logic circuit families, adders, multipliers, memory arrays, sequential circuits, and interconnects. Clock and power distribution. Major design project to implement a RISC processor. CourseProfile (ATLAS)

EECS 428. Introduction to Quantum Nanotechnology
Advisory Prerequisite: PHYSICS 240, MATH 215, MATH 216. (3 credits)This course introduces students to the emerging new field of quantum base nanotechnology.  The course includes a range of topics such as the quantum vibrator, resonant tunneling, quantum circuits, a quantum flip flop, quantum information, quantum vacuum, and the role of quantum behavior in nano-devices and materials. CourseProfile (ATLAS)

EECS 429. Semiconductor Optoelectronic Devices
Prerequisite: EECS 320 or graduate standing. (4 credits) 
Materials for optoelectronics, optical processes in semiconductors, absorption and radiation, transition rates and carrier lifetime. Principles of LEDs, lasers, photodetectors, modulators and solar cells. Optoelectronic integrated circuits. Designs, demonstrations and projects related to optoelectronic device phenomena. CourseProfile (ATLAS)

EECS 430 (SPACE 431)(CLIMATE 431). Wireless Link Design
Prerequisite: EECS 330 (“C” or better) or graduate standing. (4 credits)
Fundamentals of electromagnetic radiation and propagation (near earth, troposphere, ionosphere, indoor and urban); antenna parameters; practical antennas; link analysis; system noise; fading and multipath interference; applications. Course includes informative labs and a team project in practical wireless system design. CourseProfile (ATLAS)

EECS 434. Principles of Photonics
Prerequisite: EECS 330 or EECS 334 or permission of instructor or graduate standing. (4 credits) Introduction to photonics, opto-electronics, lasers and fiber-optics. Topics include mirrors, interferometers, modulators and propagation in waveguides and fibers. The second half treats photons in semiconductors, including semi-conductor lasers, detectors and noise effects. System applications include fiber lightwave systems, ultra-high-peak power lasers and display technologies. CourseProfile (ATLAS)

EECS 435. Fourier Optics
Prerequisite: EECS 216. (3 credits)
Basic physical optics treated from the viewpoint of Fourier analysis. Fourier-transform relations in optical systems. Theory of image formation and Fourier transformation by lenses. Frequency response of diffraction-limited and aberrated imaging systems. Coherent and incoherent light. Comparison of imagery with coherent and with incoherent light. Resolution limitations. Optical information processing, including spatial matched filtering. CourseProfile (ATLAS)

EECS 438. Advanced Lasers and Optics Laboratory
Prerequisite: EECS 334 or EECS 434 or graduate standing. (4 credits) Construction and design of lasers; gaussian beams; nonlinear optics; fiber optics; detectors; dispersion; Fourier optics; spectroscopy. Project requires the design and set-up of a practical optical system. CourseProfile (ATLAS)

EECS 440. System Design of a Search Engine
Prerequisite: EECS 281 (“C” or better). (4 credits)
Design and development of a search engine. Topics include search engine internals, OS facilities, file systems, sockets, and threads. Students work in teams to write a complete multithreaded internet search engine from scratch. CourseProfile (ATLAS)

EECS 441. Mobile App Development for Entrepreneurs
Prerequisite: Senior standing, EECS 281, and at least four credit hours of Upper Level Electives from list in either Computer Science or Computer Engineering. Minimum grade of “C” required for enforced prerequisites. (4 credits) Best practices in the software engineering of mobile applications and best practices of software entrepreneurs in the design, production and marketing of mobile apps. Students will engage in the hands-on practice of entrepreneurship by actually inventing, building and marketing their own mobile apps. CourseProfile (ATLAS)

EECS 442. Computer Vision
Prerequisite: [(EECS 281 and (MATH 214 or 217 or 296 or 417 or 419, or ROB 101)); (C or better, No OP/F)] or graduate standing. Minimum grade of “C” required for enforced prerequsites. (4 credits) (Credit cannot be obtained for both EECS 442 and EECS 504.)An introduction to 2D and 3D computer vision. Topics include: cameras models, the geometry of multiple views; shape reconstruction methods from visual cues; low-level image processing techniques such as feature detection; high-level vision problems such as object recognition and scene understanding. CourseProfile (ATLAS)

EECS 443. Senior Thesis
Prerequisite: Senior standing. (3 credits)
Students develop and carry out a research plan in collaboration with a sponsoring faculty member. Students present a research proposal to be approved by both the faculty member and the chief program advisor or designate. Students submit and present a thesis to be evaluated by the sponsoring faculty member and second reader. Eligibility is limited to students who have a concentration GPA of 3.5 or better. CourseProfile (ATLAS)

EECS 444. Analysis of Societal Networks
Prerequisite: EECS 301 or MATH 425 or STATS 425. Minimum grade of “C” required for enforced prerequisites. (4 credits) (Credit cannot be obtained for both EECS 444 and EECS 544.)
In the modern world we depend on the efficiency of a myriad of societal networks to transact many activities. This course analyzes them (how they are connected, how they form, and how processes and transactions occur on them) using mathematical tools from graph theory, linear algebra, probability and game theory. CourseProfile (ATLAS)

EECS 445. Introduction to Machine Learning
Advisory Prerequisite: STATS 250 or equivalent. Prerequisite: [(EECS 281 and (MATH 214 or 217 or 296 or 417 or 419, or ROB 101)); (C or better, No OP/F)].  Minimum grade of “C” required for enforced prerequisites.  (4 credits) Theory and implementation of state-of-the-art machine learning algorithms for large-scale real-world applications. Topics include supervised learning (regression, classification, kernel methods, neural networks, and regularization) and unsupervised learning (clustering, density estimation, and dimensionality reduction). CourseProfile (ATLAS)

EECS 452. Digital Signal Processing Design Laboratory
Prerequisite: EECS 280, and (EECS 351 or EECS 455) or graduate standing. Minimum grade of “C” required. (4 credits)
Architectures of single-chip DSP processors. Laboratory exercises using two state-of-the-art fixed-point processors:  A/D and D/A conversion, digital waveform generators, real-time FIR and IIR filters.  Central to this course is a team project in real-time DSP design (including software and hardware). CourseProfile (ATLAS)

EECS 453. Applied Matrix Algorithms for Signal Processing, Data Analysis and Machine Learning
Advisory Prerequisite: EECS 351. (4 credits) (Students who have previously enrolled in 505 or 551 cannot get credit for 453). Prerequisite: EECS 301 or MATH 425 or STATS 425 or STATS 412 or STATS 426 or IOE 265 or equivalent. Minimum grade of “C” required for enforced prerequisites. Theory and application of matrix algorithms to signal processing, data analysis and machine learning. Theoretical topics include subspaces, eigenvalue and singular value decomposition, projection theorem, constrained, regularized and unconstrained least squares techniques and iterative algorithms. Applications such as image deblurring, ranking of webpages, image segmentation and compression, social networks, circuit analysis, recommender systems and handwritten digit recognition. Greater emphasis on applications than in EECS 551. CourseProfile (ATLAS)

EECS 455. Wireless Communications Systems
Prerequisite: EECS 216 and EECS 301 or graduate standing. Minimum grade of “C” required for enforced prerequisites. (4 credits)
Digital communication signals and systems; fundamental limits on reliable communications, energy and bandwidth efficiency trade-offs; optimum receiver principles, modulation techniques including phase shift keying, quadrature modulation and OFDM; block and convolutional coding and decoding; applications to wireless communication systems; optional topics include synchronization, quantization and lossless compression of signals, fundamental limits of compression, role of entropy. CourseProfile (ATLAS)

EECS 458 (BIOMEDE 458). Biomedical Instrumentation and Design
Prerequisite: EECS 215 or EECS 314 or consent of instructor or graduate standing. (4 credits) Students design and construct functioning biomedical instruments.  Hardware includes instrumentation amplifiers and active filters constructed using operational amplifiers.  Signal acquisition, processing analysis and display are performed.  Project modules include measurement or respiratory volume and flow rates, biopotentials (electrocardiogram), and optical analysis of arterial blood oxygen saturation (pulse-oximetry). CourseProfile (ATLAS)

EECS 460. Control Systems Analysis and Design
Prerequisite: EECS 216 or graduate standing. (4 credits) Basic techniques for analysis and design of controllers applicable in any industry (e.g. automotive, aerospace, computer, communication, chemical, bioengineering, power, etc.) are discussed. Both time- and frequency-domain methods are covered. Root locus, Nyquist and Bode plot-based techniques are outlined. Computer-based experiment and discussion sessions are included in the course. CourseProfile (ATLAS)

EECS 461. Embedded Control Systems
Prerequisite: EECS 216 or EECS 373 or graduate standing. (4 credits) Basic interdisciplinary concepts needed to implement a microprocessor based control system. Sensors and actuators. Quadrature decoding. Pulse width modulation. DC motors. Force feedback algorithms for human computer interaction. Real time operating systems. Networking. Use of MATLAB to model hybrid dynamical systems. Autocode generation for rapid prototyping. Lecture and laboratory. CourseProfile (ATLAS)

EECS 463. Power Systems Design and Operation
Prerequisite: ((Phys 240 or 260) and EECS 215 and EECS 216) or graduate standing. (4 credits) Power systems overview; Fundamentals: phasors, complex power, three phases; transformer modeling; Transmission line modeling; Power flow analysis; Power system control; Protection; Economic operation and electricity markets; Impact of renewable generation on grid operation and control. CourseProfile (ATLAS)

EECS 464 (ROB 464). Hands-on Robotics
Prerequisite: EECS 216 or EECS 281 or ME 360 or CEE 212 or IOE 333 or Grad Standing.  Minimum grade of “C” required for enforced prerequisites. (4 credits) 
A hands-on, project based introduction to the principles of robotics and robot design.  Multiple team projects consisting of design and implementation of a robot.  Theory: motors, kinematics & mechanisms, sensing/filtering, planning, pinhole cameras.  Practice: servo control, project management; fabrication; software design for robotics.  Significant after hours lab time investment. CourseProfile (ATLAS)

EECS 465 (ROB 422). Introduction to Algorithmic Robotics
Advisory Prerequisite: EECS 281 and (MATH 214 or MATH 217 or MATH 417 or MATH 419 or ROB 101) or permission of instructor. Prerequisite: EECS 280 and MATH 215 and (junior standing or senior standing) or graduate standing). Minimum grade of “C” required for enforced prerequisites. (3 credits) An introduction to the algorithms that form the foundation of robot planning, state estimation, and control. Topics include optimization, motion planning, representations of uncertainty, Kalman and particle filters, and point cloud processing. Assignments focus on programming a robot to perform tasks in simulation.  CourseProfile (ATLAS)

EECS 467. Autonomous Robotics Design Experience
Prerequisite: EECS 281 and (MATH 214 or 217 or 296 or 417 or 419, or ROB 101) and (EECS 367 or EECS 373); (No OP/F). Minimum grade of “C” required for enforced prerequisites. (4 credits) Software methods and implementation for robot perception, world mapping, and control, using physical robots. Topics include: sensors, sensor processing, control, motion planning, localization and mapping, and forward and inverse kinematics. Multiple team projects, culminating in a major design experience (MDE) project. CourseProfile (ATLAS)

EECS 470. Computer Architecture
Prerequisite: EECS 370 and EECS 270 or graduate standing. Minimum grade of “C” required for enforced prerequisites. (4 credits) Topics include out-of-order processors and speculation, memory hierarchies, branch prediction, virtual memory, cache design, multi-processors, and parallel processing including cache coherence and consistency. Emphasis on power and performance trade-offs. Groups design an advanced (e.g. out-of-order, multi-core, SMT) processor using an HDL. CourseProfile (ATLAS)

EECS 473. Advanced Embedded Systems
Prerequisite: EECS 373 and EECS 215 or EECS 281 or graduate standing. (4 credits)
Design of hardware and software for modern embedded systems. Real-time operating systems. Device drivers for general operating systems. PCB design including power integrity and electromagnetic interference. Radio frequency and wireless communication. Low-power design. DC/DC converter design for PCBs. Rapid prototyping of embedded systems. Groups will design a complete embedded system. CourseProfile (ATLAS)

EECS 475. Introduction to Cryptography
Prerequisite: (EECS 203 or MATH 312 or MATH 412) and (EECS 180 or EECS 183 or EECS 280) and EECS 376 & EQ.  Minimum grade of C required for enforced prerequisites. (4 credits)Covers fundamental concepts, algorithms, and protocols in cryptography. Topics: ancient ciphers, Shannon theory, symmetric encryption, public key encryption, hash functions, digital signatures, key distribution. Highlights AES, RSA, Discrete Log, Elliptic Curves. Emphasizes rigorous mathematical study in terms of algorithmic complexity. Includes necessary background from algorithms, probability, number theory and algebra. CourseProfile (ATLAS)

EECS 476. Data Mining
Prerequisite: [EECS 281 and (MATH 214 or MATH 217 or MATH 296 or MATH 417 or MATH 419, or ROB 101) (minimum grade of C)] or [EECS 403 (minimum grade of B)] or graduate standing in CSE. Minimum grade of “C” required for enforced prerequisites. (4 credits).Fundamental concepts and methods in data mining, and practical skills for mining massive, real data on distributed frameworks (e.g., Hadoop). Topics include big data systems, frequent itemsets, similarity and cluster analysis, classification, dimensionality reduction, mining of networks, time series and data streams, and applications (e.g., social network analysis, web search). CourseProfile (ATLAS)

EECS 477. Introduction to Algorithms
Prerequisite: EECS 281  and EECS 376 Minimum grade of “C” required for enforced prerequisites. (4 credits).
Fundamental techniques for designing efficient algorithms and basic mathematical methods for analyzing their performance. Paradigms for algorithm design: divide-and-conquer, greedy methods, graph search techniques, dynamic programming. Design of efficient data structures and analysis of the running time and space requirements of algorithms in the worst and average cases. CourseProfile (ATLAS)

EECS 478. Logic Circuit Synthesis and Optimization
Prerequisite: EECS 203, EECS 270, and senior standing or graduate standing. Minimum grade of “C” required for enforced prerequisites. (4 credits)
Advanced design of logic circuits. Technology constraints. Theoretical foundations. Computer-aided design algorithms. Two-level and multilevel optimization of combinational circuits. Optimization of finite-state machines. High-level synthesis techniques: modeling, scheduling and binding. Verification and testing. Emerging technologies. Lab projects on CAD software development. CourseProfile (ATLAS)

EECS 480. Social Computing Systems
Prerequisite: EECS 485 or 493. Minimum grade of “C” required for enforced prerequisites. (4 credits) 
Design and creation of computing systems that mediate, facilitate , or augment social interactions.  Introduces social computing research, and relevant web-based tools for creating systems that allow multiple users to interact.  A team project provides experience designing a system with multiple stake holders and constraints, and building a complex interactive multi-user system. CourseProfile (ATLAS)

EECS 481. Software Engineering
Prerequisite: EECS 281. Minimum grade of “C” required for enforced prerequisite. (4 credits)
Pragmatic aspects of the production of software systems, dealing with structuring principles, design methodologies and informal analysis. Emphasis is given to development of large, complex software systems. A term project is usually required. CourseProfile (ATLAS)

EECS 482. Introduction to Operating Systems
Prerequisite: EECS 281 and EECS 370 or graduate standing in CSE. Minimum grade of “C” required for enforced prerequisites. (4 credits)
Operating system design and implementation: multi-tasking; concurrency and synchronization; inter-process communication; deadlock; scheduling; resource allocation; memory and storage management; input-output; file systems; protection and security. Students write several substantial programs dealing with concurrency and synchronization in a multi-task environment, with file systems and with memory management. CourseProfile (ATLAS)

EECS 483. Compiler Construction
Prerequisite: EECS 281 and EECS 370 or graduate standing. Minimum grade of “C” required for enforced prerequisites. (4 credits)Introduction to compiler construction. Topics covered will include the following: lexical scanning, parsing (top-down and bottom-up), abstract syntax trees, semantic analysis, code generation and optimization. Students will build a working compiler for a high-level programming language. CourseProfile (ATLAS)

EECS 484. Database Management Systems
Prerequisite: EECS 281 (minimum grade of “C”) or EECS 403 (minimum grade of “B”) or graduate standing in CSE. (4 credits)
Concepts and methods for the design, creation, query and management of large enterprise databases. Functions and characteristics of the leading database management systems. Query languages such as SQL, forms, embedded SQL, and application development tools. Database design, integrity, normalization, access methods, query optimization, transaction management and concurrency control and recovery. CourseProfile (ATLAS)

EECS 485. Web Systems
Prerequisite: EECS 281 or graduate standing in CSE. Minimum grade of “C” required. (4 credits) (EECS major or Informatics major only)
Concepts surrounding web systems, applications, and internet scale distributed systems. Topics covered include client/server protocols, security, information retrieval and search engines, scalable data processing, and fault tolerant systems. The course has substantial projects involving development of web applications and web systems. CourseProfile (ATLAS)

EECS 486. Informational Retrieval and Web Search
Prerequisite: EECS 281.  Minimum grade of “C” for enforced prerequisite. (4 credits)
Covers background and recent advances in information retrieval (IR): indexing, processing, querying, classifying data.  Basic retrieval models, algorithms, and IR system implementations. Focuses on textual data, but also looks at images/videos, music/audio, and geospatial information. Web search, including Web crawling, link analysis, search engine development, social media, and crowdsourcing. CourseProfile (ATLAS)

EECS 487. Introduction to Natural Language Processing
Prerequisite: EECS 281.  Minimum grade of “C” for enforced prerequisite. (Credit cannot be obtained for both EECS 487 and EECS 595.) (4 credits)
Fundamental theories and practical methods in natural language processing (NLP). Topics include syntax and parsing, lexical semantics and compositional semantics, discourse analysis, as well as applications in information extraction, sentiment analysis, question answering, summarization, dialogue systems, machine translation, and text generation. CourseProfile (ATLAS)

EECS 489. Computer Networks
Prerequisite: EECS 281 and EECS 370 or graduate standing in CSE. Minimum grade of “C” required for enforced prerequisite. (4 credits)
Protocols and architectures of computer networks with a specific focus on the Internet. Topics include socket programming, naming and addressing, video streaming and content distribution, flow and congestion control, routing, and cloud, datacenter, and software-defined networks. Students write several substantial programs implementing protocols at different layers of the network stack. CourseProfile (ATLAS)

EECS 490. Programming Languages
Prerequisite: EECS 281. (4 credits)
Fundamental concepts in programming languages. Course covers different programming languages including functional, imperative, object-oriented, and logic programming languages; different programming language features for naming, control flow, memory management, concurrency, and modularity; as well as methodologies, techniques and tools for writing correct and maintainable programs. CourseProfile (ATLAS)

EECS 491. Introduction to Distributed Systems
Prerequisite: EECS 482 or graduate standing in CSE. Minimum grade of “C” required for enforced prerequisite. (4 credits)
Distributed systems offer higher performance, greater fault-tolerance, and better scalability than single-computer systems, but are challenging to develop.  Topics covered:  abstractions for simplifying development of distributed systems, techniques used to implement these abstractions, and case studies on the use of these techniques in real-world systems. CourseProfile (ATLAS)

EECS 492. Introduction to Artificial Intelligence
Prerequisite: EECS 281.  Minimum grade of “C” required for enforced prerequisite. (4 credits) (Not for graduate credit) 
Introduction to the core concepts of AI, organized around building computational agents. Emphasizes the application of AI techniques.  Topics include search, logic, knowledge representation, reasoning, planning, decision making under uncertainty, and machine learning. CourseProfile (ATLAS)

EECS 493. User Interface Development
Prerequisite: EECS 281 or graduate standing in CSE.  Minimum grade of “C” required for enforced prerequisite. (4 credits)
Concepts and techniques for designing computer system user interfaces to be easy to learn and use, with an introduction to their implementation. Task analysis, design of functionality, display and interaction design, and usability evaluation. Interface programming using an object-oriented application framework. Fluency in a standard object-oriented programming language is assumed. CourseProfile (ATLAS)

EECS 494. Computer Game Design and Development
Prerequisite: EECS 281. Minimum grade of “C” required for enforced prerequisite. (4 credits)
Design, development, and application of digital games. Topics include: game engines, design patterns, shaders and graphics programming, agile development methods, iterative game/experience design, project management and resource allocation, virtual reality, classic games, multidisciplinary relationships, product exhibition, and portfolio construction. Students work in teams to develop and exhibit new games. CourseProfile (ATLAS)

EECS 495. Software Development for Accessibility
Prerequisite: EECS 281. Minimum grade of “C” required for enforced prerequisite. (4 credits)
Emphasizes team-based development of large, complex, software systems using established software development methodology. Systems will incorporate state-of-the-art technology dealing with disability, illness, and accessibility. Real world projects, usually in partnership with hospitals for specific disabled clients. CourseProfile (ATLAS)

EECS 496. Major Design Experience Professionalism
Prerequisite: Senior standing. (2 credits) 
Design principles for multidisciplinary team projects, team strategies, entrepreneurial skills, ethics, social and environmental awareness, and life long learning. (4 cr.). CourseProfile (ATLAS)

EECS 497. Human-Centered Software and Design and Development
Prerequisite: EECS 281. Minimum grade of “C”. (4 credits) 
Team-based, user-centered design and development of complex software systems incorporating effective design strategies and project management methodologies. Topics include customer discovery, contextual inquiry, prototyping, process models, creative problem solving, inclusive thinking, team dynamics, social concerns, and testing strategies. Teams of 3-5 students complete projects based primarily on their individual interests. CourseProfile (ATLAS)

EECS 498. Special Topics
Prerequisite: Permission of instructor. (1-4 credits)
Topics of current interest selected by the faculty. Lecture, seminar or laboratory. CourseProfile (ATLAS)

EECS 499. Directed Study
Prerequisite: Senior standing in EECS. (1-4 credits)
Provides an opportunity for undergraduate students to work in on substantial research problems in EECS or areas of special interest such as design problems. For each hour of credit, it is expected that the student will work an average of three or four hours per week and that the challenges will be comparable with other 400 level EECS classes. Oral presentation and/or written report due at end of term. Not open to graduate students. CourseProfile (ATLAS)

500 Level Courses

EECS 500. Tutorial Lecture Series in System Science
Prerequisite: Graduate standing; mandatory satisfactory/ unsatisfactory. (1 credit)
Students are introduced to the frontiers of System Science research. Sections 01, 02 and 03 are devoted, respectively, to Communications, Control, and Signal Processing. The tutorials are delivered by leaders of the respective research fields, invited from academia and industry. The presentations are self-contained and accessible to all graduate students in System Science. CourseProfile (ATLAS)

EECS 501. Probability and Random Processes
Prerequisite: EECS 301 or graduate standing. (4 credits)
Introduction to probability and random processes. Topics include probability axioms, sigma algebras, random vectors, expectation, probability distributions and densities, Poisson and Wiener processes, stationary processes, autocorrelation, spectral density, effects of filtering, linear least-squares estimation and convergence of random sequences. CourseProfile (ATLAS)

EECS 502. Stochastic Processes
Prerequisite: EECS 501. (3 credits)
Correlations and spectra. Quadratic mean calculus, including stochastic integrals and representations, wide-sense stationary processes (filtering, white noise, sampling, time averages, moving averages, autoregression). Renewal and regenerative processes, Markov chains, random walk and run, branching processes, Markov jump processes, uniformization, reversibility and queuing applications.CourseProfile (ATLAS)

EECS 503. Introduction to Numerical Electromagnetics
Prerequisite: EECS 330. (3 credits)
Introduction to numerical methods in electromagnetics including finite difference, finite element and integral equation methods for static, harmonic and time dependent fields; use of commercial software for analysis and design purposes; applications to open and shielded transmission lines, antennas, cavity resonances and scattering. CourseProfile (ATLAS)

EECS 504. Foundations of Computer Vision 
Prerequisite: Undergraduate Calculus, Linear Algebra, Probability and Programming. (3 credits) (Credit cannot be obtained in both EECS 442 and EECS 504.)
The course lays a framework for the extraction of useful information from images.  Topics include representations of visual content (e.g., functions, points, graphs); visual invariance; mathematical and computational models of visual content; optimization methods for vision. Theoretical treatment and concrete examples, e.g., feature learning, segmentation image stitching, both covered. CourseProfile (ATLAS)

EECS 505. Computational Data Science and Machine Learning 
Prerequisite: EECS 301 or MATH 425 or STATS 250 or STATS 412 or STATS 426 or IOE 265 or graduate standing. Minimum grade of C required for enforced prerequisites. (4 credits) (Students who have previously enrolled in 551 or 453 cannot get credit for 505.)
Introduction to computational methods for identifying patterns and outliers in large data sets. Topics include the singular and eigenvalue decomposition, independent component analysis, graph analysis, clustering, linear, regularized, sparse and non-linear model fitting, deep, convolutional and recurrent neural networks. Students program methods; lectures and labs emphasize computational thinking and reasoning. CourseProfile (ATLAS)

EECS 506. Design of Power Electronics
Prerequisite: EECS 418 or graduate standing. Minimum grade of “C”. (3 credits)
The course presents both the theoretical and practical design, analysis, construction, and measurement of circuits and components in different types of power converters. The course will teach concepts and present case studies through lectures, homework, design problems, and a final project. CourseProfile (ATLAS)

EECS 507. Introduction to Embedded System Research
Advisory Prerequisites: A prior >= 400-level course on computer system or sensor design and analysis. Sufficient time to read and understand two 30-page research papers per week. Minimum grade of “C”.
Establish a foundation in research related to embedded system analysis, design, and synthesis. Lectures, assigned reading, and student presentations used to survey fundamental embedded systems topics. The second half-semester focuses on an important and timely research topic. Survey-only (3 credit) and project (4 credit) versions. CourseProfile (ATLAS)

EECS 508. Control and Modeling of Power Electronics
Prerequisite: EECS 418 or graduate standing. Minimum grade of “C”. (3 credits)

The course presents both the theoretical  and practical modeling and control of power converters. Topics include small-signal models; digital and analog control; switched, sampled-data, and averaged models; large signal considerations; distributed power; and tools for computer modeling and simulation. CourseProfile (ATLAS)

Prerequisite: None. (3 credits)
This course will cover the latest advances in bioMEMS, with specific attention to Microsystems targeting development biology and cell culture.  We will use an organism’s development –from genome to multicellular tissue– as a framework for teaching bioMEMS devices:  from microPCR chips to microfluidic mixers to tissue scaffolds.  The aim is to provide students familiar with microfabrication and Microsystems with a context from which to view and evaluate bioMEMS devices and innovations.  We will cover implantable and diagnostic microsystems in the later part of the course. CourseProfile (ATLAS)

Prerequisite: EECS 414. (4 credits)
This course cover the principles of operation, design, fabrication and technology trends of micro-electromechanical devices for high frequency applications with a focus on communications. Micro-devices covered include resonators, switches, filters, tunable passive devices and reconfigurable modules. The physical phenomena limiting the performance and scaling of RF MEMS devices are discussed. CourseProfile (ATLAS)

EECS 511. Integrated Analog/Digital Interface Circuits
Prerequisite: EECS 413 or permission of instructor. (4 credits)
This course covers most of the well known analog to digital conversion schemes. These include the flash, folding, multi-step and pipeline Nyquist rate, architectures. Oversampling converters are also discussed. Practical design work is a significant part of this course. Students design and model complete converters. CourseProfile (ATLAS)

EECS 512. Amorphous and Microcrystalline Semiconductor Thin Film Devices
Prerequisite: EECS 421 and/or permission of instructor. (3 credits)
Introduction and fundamentals of physical, optical and electrical properties of amorphous and microcrystalline semiconductor based devices: MIM structures, Schottky diodes, p-i-n junctions, heterojunctions, MIS structures, thin-film transistors, solar cells, threshold and memory switching devices and large area x-ray radiation detectors. CourseProfile (ATLAS)

EECS 513. Flat Panel Displays
Prerequisite: EECS 423, EECS 512 and/or permission of instructor. (3 credits)
Introduction and fundamentals to the passive, active, reflective and emissive flat panel display technologies. This course will discuss the physics, operating principles, properties and technology of the flat panel displays. CourseProfile (ATLAS)

EECS 514. Advanced MEMS Devices and Technologies
Prerequisite: EECS 414. (4 credits)
Advanced micro electro mechanical systems (MEMS) devices and technologies. Transduction techniques, including piezoelectric, electrothermal, and resonant techniques. Chemical, gas, and biological sensors, microfluidic and biomedical devices. Micromachining technologies such as laser machining and microdrilling, EDM, materials such as SiC and diamond. Sensor and actuator analysis and design through CAD. CourseProfile (ATLAS)

EECS 515. Integrated Microsystems
Prerequisite: EECS 414. (4 credits)
Review of interface electronics for sense and drive and their influence on device performance, interface standards, MEMS and circuit noise sources, packaging and assembly techniques, testing and calibration approaches and communication in integrated microsystems. Applications, including RF MEMS, optical MEMS, bioMEMS, and microfluidics. Design project using CAD and report preparation. CourseProfile (ATLAS)

EECS 516 (BIOMEDE 516). Medical Imaging Systems
Prerequisite: EECS 351. (3 credits)
Principles of modern medical imaging systems. For each modality the basic physics is described, leading to a systems model of the imager. Fundamental similarities between the imaging equations of different modalities will be stressed. Modalities covered include radiography, x-ray computed tomography (CT), NMR imaging (MRI) and real-time ultra-sound. CourseProfile (ATLAS)

EECS 517 (NERS 578). Physical Processes in Plasmas
Prerequisite: EECS 330. (3 credits)
Plasma physics applied to electrical gas discharges used for material processing. Gas kinetics; atomic collisions; transport coefficients; drift and diffusion; sheaths; Boltzmann distribution function calculation; plasma simulation; plasma diagnostics by particle probes, spectroscopy and electromagnetic waves; analysis of commonly used plasma tools for materials processing. CourseProfile (ATLAS)

EECS 518 (AOSS 595). Magnetosphere and Solar Wind
Prerequisite: Graduate standing. (3 credits)
General principles of magnetohydrodynamics; theory of the expanding atmospheres; properties of solar wind, interaction of solar wind with the magneto-sphere of the Earth and other planets; bow shock and magnetotail, trapped particles, auroras. CourseProfile (ATLAS)

EECS 519 (NERS 575). Plasma Generation and Diagnostics Laboratory
Prerequisite: preceded or accompanied by a course covering electromagnetism. (4 credits)
Laboratory techniques for plasma ionization and diagnosis relevant to plasma processing, propulsion, vacuum electronics, and fusion. Plasma generation includes: high voltage-DC, radio frequency and electron beam sustained discharges. Diagnostics include: Langmuir probes, microwave cavity perturbation, microwave interferometry, laser schlieren and optical emission spectroscopy. Plasma parameters measured are: electron/ion density and electron temperature. CourseProfile (ATLAS)

EECS 520. Solid State Physics
Prerequisite: PHYSICS 453 or graduate standing. (4 credits)
Crystal structure; Phonons; Introduction to Quantum Mechanics, Free electron Fermi gas; Low dimensional conductor; Electronic structure – Energy bands; Properties of semiconductors; Dielectrics response; Light absorption and emission; Magnetic effects; Superconductivity. CourseProfile (ATLAS)

EECS 521. Solid State Devices
Prerequisite: EECS 421. (3 credits)
Physics of operation of three terminal device structures important for high frequency analog or high speed digital applications. Emphasis on proven field-effect and bipolar-junction transistors, also including current and speculative nanoelectronic devices. Detailed study of static current-voltage characteristics and models for small and large signal behavior. CourseProfile (ATLAS)

EECS 522. Analog Integrated Circuits
Prerequisite: EECS 413. (4 credits)
Review of integrated circuit fabrication technologies and BJT and MOS transistor models. Detailed analysis and design of analog integrated circuits, including power amplifiers, voltage references, voltage regulators, rectifiers, oscillators, multipliers, mixers, phase detectors and phase-locked loops. Design projects. Lectures and discussion. CourseProfile (ATLAS)

EECS 523. Digital Integrated Technology
Prerequisite: (EECS 423 or EECS 425) and EECS 311 and EECS 320. (4 credits)
Integrated circuit fabrication overview, relationships between processing choices and device performance characteristics. Long-channel device I-V review, short-channel MOSFET I-V characteristics including velocity saturation, mobility degradation, hot carriers, gate depletion. MOS device scaling strategies, silicon-on-insulator, lightly-doped drain structures, on-chip interconnect parasitics and performance. Major CMOS scaling challenges. Process and circuit simulation. CourseProfile (ATLAS)

EECS 524. Organic Electronic Devices and Applications
Prerequisite: Permission of instructor or graduate standing. (3 credits)
Organic semiconductors optical/electrical properties, how organics are deposited/patterned to achieve thin-film device structures, device physics, engineering and applications (light emission from OLEDs, various structures/adaptations for high efficiency displays/lighting), organic thin-film transistor physics, applications and organic solar cells: status, efficiency limits, reliability, as an energy harvesting technology. CourseProfile (ATLAS)

EECS 525. Advanced Solid State Microwave Circuits
Prerequisite: EECS 411 and (EECS 421 or EECS 521). (3 credits)
General properties and design of linear and nonlinear solid state microwave circuits including: amplifier gain blocks, low-noise, broadband and power amplifiers, oscillators, mixer and multiplier circuits, packaging, system implementation for wireless communication. CourseProfile (ATLAS)

EECS 526. Plasmonics
Advisory Prerequisite: EECS 230, PHYSICS 240, graduated standing or permission of instructor. (3 credits) 
Plasmonics is the study of optical phenomena related to the electromagnetic response of conductors. This course will provide basic knowledge to understand and apply principles of plasmonics. Students will be introduced to nanofabrication and characterization techniques.  Optical, electronic, magnetic, thermal and biomedical applications of plasmonics will be discussed. CourseProfile (ATLAS)

EECS 528. Principles of Microelectronics Process Technology
Prerequisite: EECS 421 and EECS 423. (3 credits)
Theoretical analysis of the chemistry and physics of process technologies used in micro-electronics fabrication. Topics include: semiconductor growth, material characterization, lithography tools, photo-resist models, thin film deposition, chemical etching, plasma etching, electrical contact formation, micro-structure processing and process modeling. CourseProfile (ATLAS)

EECS 529. Semiconductor Lasers and LEDs
Prerequisite: EECS 429. (3 credits)
Optical processes in semiconductors, spontaneous emission, absorption gain, stimulated emission. Principles of light-emitting diodes, including transient effects, spectral and spatial radiation fields. Principles of semiconducting lasers; gain-current relationships, radiation fields, optical confinement and transient effects. CourseProfile (ATLAS)

EECS 530 (APPPHYS 530). Electromagnetic Theory I
Prerequisite: EECS 330 or Physics 438. (3 credits)
Maxwell’s equations, constitutive relations and boundary conditions. Potentials and the representation of electromagnetic fields. Uniqueness, duality, equivalence, reciprocity and Babinet’s theorems. Plane, cylindrical, and spherical waves. Waveguides and elementary antennas. The limiting case of electro- and magneto-statics. CourseProfile (ATLAS)

EECS 531. Antenna Theory and Design
Prerequisite: EECS 330. (3 credits)
Theory of transmitting and receiving antennas. Reciprocity. Wire antennas: dipoles, loops and traveling-wave antennas. Analysis and synthesis of linear arrays. Phased arrays. Input impedance and method of moments. Mutual impedance. Aperture antennas: slot, Babinet’s principle. Microstrip antennas. Horns, reflector and lens antennas. CourseProfile (ATLAS)

EECS 532 (CLIMATE 587). Microwave Remote Sensing I: Radiometry
Prerequisite: EECS 330, graduate standing. (3 credits)
Theory, systems and applications of active and passive microwave remote sensing:  radiative transfer; blackbody radiation; microwave radiometry; atmospheric propagation and emission; radiometer receivers; surface and volume scattering and emission; radar systems; resolution techniques; calibration; synthetic aperture radar; scatterometers; applications to meteorology, oceanography and hydrology. CourseProfile (ATLAS)

EECS 533. Microwave Measurements Laboratory
Prerequisite: EECS 330, Graduate Standing. (3 credits)
Advanced topics in microwave measurements: power spectrum and noise measurement, introduction to state-of-the-art microwave test equipment, methods for measuring the dielectric constant of materials, polarimetric radar cross section measurements, near field antenna pattern measurements, electromagnetic emission measurement (EM compatibility). Followed by a project that will include design, analysis, and construction of a microwave subsystem. CourseProfile (ATLAS)

EECS 534. Analysis of Electric Power Distribution Systems and Loads
Advisory Prerequisite: EECS 463 or graduate standing. (3 credits)
This course covers the fundamentals of electric power distribution systems and electric loads, including distribution grid components, topologies, and operational strategies; three-phase unbalanced power flow; electric load modeling, analysis, and control; and emerging topics such as photovoltaic and electric vehicle interconnection, distribution automation, and advanced metering infrastructure. CourseProfile (ATLAS)

EECS 535. Power System Dynamics and Control
Advisory Prerequisite: EECS 463, or permission of instructor or graduate standing. (3 credits)
The course introduces angle and voltage stability concepts and considers control strategies for improving dynamic performance. It provides an overview of nonlinear dynamical systems, Lyapunov methods and bifurcation analysis. Models of dynamical devices are developed. Small disturbance (linear) analysis techniques are presented, along with methods for assessing large disturbance (nonlinear) behavior. CourseProfile (ATLAS)

EECS 536. Power System Markets & Optimization
Prerequisite: EECS 463, or permission of instructor or graduate standing. Minimum grade of “C”. (3 credits)
This course covers the fundamentals of electric power system markets, including the economic principles they are based upon. It also covers the optimization methods required to solve planning and operational problems including economic dispatch, optimal power flow, and unit commitment. Problems are placed in the context of real electricity markets. CourseProfile (ATLAS)

EECS 537 (APPPHYS 537). Classical Optics
Prerequisite: EECS 330 and EECS 334. (3 credits)
Theory of electromagnetic, physical, and geometrical optics. Classical theory of dispersion. Linear response, Kramers-Kronig relations, and pulse propagation. Light scattering. Geometrical optics and propagation in inhomogeneous media. Dielectric waveguides. Interferometry and theory of coherence. Diffraction, Fresnel and Fraunhofer. Gaussian beams and ABCD law. CourseProfile (ATLAS)

EECS 538 (APPPHYS 550) (PHYSICS 650). Optical Waves in Crystals
Prerequisite: EECS 434. (3 credits)
Propagation of laser beams: Gaussian wave optics and the ABCD law. Manipulation of light by electrical, acoustical waves; crystal properties and the dielectric tensor; electro-optic, acousto-optic effects and devices. Introduction to nonlinear optics; harmonic generation, optical rectification, four-wave mixing, self-focusing and self-phase modulation. CourseProfile (ATLAS)

EECS 539 (APPPHYS 551) (PHYSICS 651). Lasers
Prerequisite: EECS 537 and EECS 538. (3 credits)
Complete study of laser operation: the atom-field interaction; homogeneous and inhomogeneous broadening mechanisms; atomic rate equations; gain and saturation; laser oscillation; laser resonators, modes, and cavity equations; cavity modes; laser dynamics, Q-switching and modelocking. Special topics such as femto-seconds lasers and ultrahigh power lasers.
CourseProfile (ATLAS)

EECS 540 (APPPHYS 540). Applied Quantum Mechanics I
Prerequisite: Permission of instructor. (3 credits)
Introduction to nonrelativistic quantum mechanics. Summary of classical mechanics, postulates of quantum mechanics and operator formalism, stationary state problems (including quantum wells, harmonic oscillator, angular momentum theory and spin, atoms and molecules, band theory in solids), time evolution, approximation methods for time independent and time dependent interactions including electromagnetic interactions, scattering. CourseProfile (ATLAS)

EECS 541 (APPPHYS 541). Applied Quantum Mechanics II
Prerequisite: EECS 540. (3 credits)
Continuation of nonrelativistic quantum mechanics. Advanced angular momentum theory, second quantization, non-relativistic quantum electrodynamics, advanced scattering theory, density matrix formalism, reservoir theory.
CourseProfile (ATLAS)

EECS 542. Advanced Topics in Computer Vision
Advisory Prerequisite: EECS 442 or EECS 504 or permission of instructor. (3 credits)
The course discusses advanced topics and current research in computer vision. Topics will be selected from various subareas such as physics based vision, geometry, motion and tracking, reconstruction, grouping and segmentation, recognition, activity and scene understanding, statistical methods and learning, systems and applications. CourseProfile (ATLAS)

EECS 543. Knowledge-Based Systems
Prerequisite: EECS 281 and graduate standing or permission of instructor. (3 credits)
Techniques and principles for developing application software based on explicit representation and manipulation of domain knowledge, as applied to areas such as pattern matching, problem-solving, automated planning and natural-language processing. Discussion of major programming approaches used in the design and development of knowledge-based systems. CourseProfile (ATLAS)

EECS 544. Analysis of Societal Networks
Advisory Prerequisite: EECS 301 or MATH 425 or STATS 425 or Graduate standing. Minimum grade of “C” required for advised prerequisite. (3 credits) (Credit restrictions: credit cannot be obtained in both EECS 444 and EECS 544) 
In the modern world we depend on the efficiency of a myriad of societal networks to transact many activities. This course analyzes them (how they are connected, how they form, and how processes and transactions occur on them) using mathematical tools from graph theory, linear algebra, probability and game theory. CourseProfile (ATLAS)

EECS 545. Machine Learning
Advisory Prerequisite: Coursework in probability, linear algebra, and programming. (Credit Exclusions: No credit to a student who has taken EECS 445 or 553) (3 credits)
Fundamentals of supervised, unsupervised, and sequential learning, including linear and nonlinear regression, logistic regression, support vector machines and kernel methods, decision trees, ensemble methods, neural networks and deep learning, dimension reduction, clustering, and probabilistic models. Emphasis on implementation and application to real-world data. Includes algorithms and derivations from fundamental principles. CourseProfile (ATLAS)

EECS 546 (APPPHYS 546). Ultrafast Optics
Prerequisite: EECS 537. (3 credits)
Propagation of ultrashort optical pulses in linear and nonlinear media, and through dispersive optical elements. Laser mode-locking and ultrashort pulse generation. Chirped-pulse amplification. Experimental techniques for high time resolution. Ultrafast Optoelectronics. Survey of ultrafast high field interactions. CourseProfile (ATLAS)

EECS 547 (SI 652). Incentives and Strategic Behavior in Computational Systems
Advisory Prerequisite: EECS 281 or SI 502 or permission of instructor. (3 credits)
Modeling and analysis of strategic decision environments from combined computational and economic perspectives. Essential elements of game theory, including solution concepts and equilibrium computation. Design and analysis of mechanisms for problems motivated by areas such as electronic commerce, social computing, social choice, and information elicitation. CourseProfile (ATLAS)

EECS 548 (SI 649). Information Visualizaiton
Advisory Prerequisite: EECS 493 or equivalent or Graduate standing. (3 credits) 
Introduction to information visualization.  Topics include data and image models, multidimensional and multivariate data, design principles for visualization, hierarchical, network, textual and collaborative visualization, the visualization pipeline, data processing for visualization, visual representations, visualization system interaction design, and impact of perception.  Emphasizes construction of systems using graphics application programming interfaces (APIs) and analysis tools. CourseProfile (ATLAS)

EECS 549 (SI 650). Information Retrieval
Prerequisite: SI 507 or SI 507 Waiver or SI 508 or CSE Grad Standing. Minimum grade requirement of C- for enforced prerequisites. (3 credits) 
Information is everywhere. We encounter it in our everyday lives in the form of E-mail, newspapers, television, the Web, and even in conversations with each other. Information is hidden in a variety of media: text, images, sounds, videos. While casual information consumers can simply enjoy its abundance and appreciate the existence of search engines that can help them find what they want, information professionals are responsible for building the underlying technology that search engines use. Building a search engine involves a lot more than indexing some documents — information retrieval is the study of the interaction between users and large information environments. It covers concepts such as information need, documents and queries, indexing and searching, retrieval evaluation, multimedia and hypertext search, Web search, as well as bibliographical databases. In this course, students go over some classic concepts of information retrieval and then quickly jump to the current state of the art in the field, where crawlers, spiders, and hard-of-hearing personal butlers roam. CourseProfile (ATLAS)

EECS 550. Information Theory
Prerequisite: EECS 501. (3 credits)
Measures of information, such as entropy, conditional entropy, mutual and directed information and Kullback-Leibler divergence; fundamental limits to the performance of communication systems, including source coding (data compression) and channel coding (reliable transmission through noisy media); elementary source and channel coding techniques; information theoretic bounds on the performance of estimation/decision systems. CourseProfile (ATLAS)

EECS 551. Matrix Methods for Signal Processing, Data Analysis and Machine Learning
Prerequisite: EECS 351 or Graduate Standing. Min grade of “C”. Students who have previously enrolled in 453 or 505 cannot get credit for 551. (4 credits)
Theory and application of matrix methods to signal processing, data analysis and machine learning. Theoretical topics include subspaces, eigenvalue and singular value decomposition, projection theorem, constrained, regularized and unconstrained least squares techniques and iterative algorithms. Applications such as image deblurring, ranking of webpages, image segmentation and compression, social networks, circuit analysis, recommender systems and handwritten digit recognition. Applications and theory are covered in greater depth than in EECS 453. CourseProfile (ATLAS)

EECS 552 (APPPHYS 552). Fiber Optics: Internet to Biomedical Applications
Prerequisite: Any one of EECS 334, EECS 429, EECS 434, EECS 529, EECS 537, EECS 538, EECS 539 or permission of instructor. (3 credits)
This course covers the basics of fibers and applications in fields as diverse as high power and broadband lasers, bio-medical diagnostics and therapeutics, telecommunications and internet communications. Propagation, optical amplification and nonlinearities in fibers are discussed, and examples include transmission systems and lasers. Biomedical applications include dermatology, cardiology and opthamology. CourseProfile (ATLAS)

EECS 553. Machine Learning (ECE) 
Advisory Prerequisite: Graduate coursework in probability and linear algebra. (3 credits) (Students may not receive credit for both EECS 553 and EECS 545)
Fundamentals of supervised, unsupervised, and sequential learning, including linear and nonlinear regression, logistic regression, support vector machines and kernel methods, decision trees, ensemble methods, neural networks and deep learning, dimension reduction, clustering, and probabilistic models. Emphasis on algorithms and their derivation from fundamental principles, includes applications to real-world data. CourseProfile (ATLAS)

EECS 554. Introduction to Digital Communication and Coding
Prerequisite: EECS 216 and EECS 301. (3 credits)
Digital transmission of information across discrete and analog channels. Sampling; quantization; noiseless source codes for data compression: Huffman’s algorithm and entropy; block and convolutional channel codes for error correction; channel capacity; digital modulation methods: PSK, MSK, FSK, QAM; matched filter receivers. Performance analysis: power, bandwidth, data rate and error probability. CourseProfile (ATLAS)

EECS 555. Digital Communication Theory
Prerequisite: EECS 501, EECS 554. (3 credits)
Theory of digital modulation and coding. Optimum receivers in Gaussian noise. Signal space and decision theory. Signal design. Bandwidth and dimensionality. Fundamental limits in coding and modulation. Capacity and cutoff rate. Block, convolutional and trellis coding. Continuous phase modulation. Filtered channels and intersymbol interference. Equalization. Spread-spectrum. Fading channels. Current topics. CourseProfile (ATLAS)

EECS 556. Image Processing
Advisory Prerequisite: EECS 501; Corequisite:  EECS 453 or EECS 551. (3 credits)
Theory and application of digital image processing. Sampling, filtering, 2D Fourier transforms, interpolation, edge detection, enhancement, denoising, restoration, segmentation, random field models of images, Bayesian methods, wavelets and sparsity models. Applications include optical imaging, biomedical images, video and image compression.  Student projects based on recent image processing literature.CourseProfile (ATLAS)

EECS 557. Communication Networks
Prerequisite: Graduate standing, preceded by EECS 301 or accompanied by EECS 501. (3 credits)
System architectures. Data link control: error correction, protocol analysis, framing. Message delay: Markov processes, queuing, delays in statistical multiplexing, multiple users with reservations, limited service, priorities. Network delay: Kleinrock independence, reversibility, traffic flows, throughput analysis, Jackson networks. Multiple access networks: ALOHA and splitting protocols, carrier sensing, multi-access reservations. CourseProfile (ATLAS)

EECS 558. Stochastic Control
Prerequisite: EECS 501, EECS 560. (3 credits)
Analysis and optimization of controlled stochastic systems. Models: linear and nonlinear stochastic controlled systems, controlled Markov chains. Optimization of systems described by Markov processes; dynamic programming under perfect and imperfect information, finite and infinite horizons. System identification: off-line, recursive. Stochastic adaptive control: Markov chains, self-tuning regulators, bandit problems. CourseProfile (ATLAS)

EECS 559. Optimization Methods in Signal Processing and Machine Learning 
Advisory Prerequisite: EECS 551 and EECS 501. (3 credits)
Theory and application of optimization methods for signal and image processing and machine learning problems. Algorithms include gradient-based methods, proximal methods, and duality-based methods. Applications include signal denoising, compressed sensing, matrix completion, robust regression, and classifier design. CourseProfile (ATLAS)

EECS 560 (AEROSP 550) (CEE 571) (MECHENG 564). Linear Systems Theory
Prerequisite: Graduate standing. (4 credits)
Linear spaces and linear operators. Bases, subspaces, eigenvalues and eigenvectors, canonical forms. Linear differential and difference equations. Mathematical representations: state equations, transfer functions, impulse response, matrix fraction and polynomial descriptions. System-theoretic concepts: causality, controllability, observability, realizations, canonical decomposition, stability. CourseProfile (ATLAS)

EECS 561 (MECHENG 561). Design of Digital Control Systems
Prerequisite: EECS 460 or MECHENG 461. (3 credits) 
Sampling and data reconstruction. Z-transforms and state variable descriptions of discrete-time systems. Modeling and identification. Analysis and design using root locus, frequency response and state space techniques. Linear quadratic optimal control and state estimation. Quantization and other nonlinearities. CourseProfile (ATLAS)

EECS 562 (AEROSP 551). Nonlinear Systems and Control
Prerequisite: Graduate standing. (3 credits)
Introduction to the analysis and design of nonlinear systems and nonlinear control systems. Stability analysis using Liapunov, input-output and asymptotic methods. Design of stabilizing controllers using a variety of methods: linearization, absolute stability theory, vibrational control, sliding modes and feedback linearization. CourseProfile (ATLAS)

EECS 563. Hybrid Systems, Analysis, and Control
Advisory Prerequisite: (EECS 562) or (EECS 560 and permission of instructor.) (3 credits)
Introduction to analysis and design of hybrid systems and hybrid control systems. Hybrid system modeling formalisms, specifications (automata theory, temporal logics), verification (barrier certificates, reachable sets, abstraction-based methods) and control synthesis. Stability of switched/hybrid systems. Applications of convex geometry and convex optimization in control. Model-predictive control of hybrid systems. CourseProfile (ATLAS)

EECS 564. Estimation, Filtering, and Detection
Prerequisite: EECS 501. (3 credits)
Principles of estimation, linear filtering and detection. Estimation: linear and nonlinear minimum mean squared error estimation, and other strategies. Linear filtering: Wiener and Kalman filtering. Detection: simple, composite, binary and multiple hypotheses. Neyman-Pearson and Bayesian approaches. CourseProfile (ATLAS)

EECS 565. Linear Feedback Control Systems
Prerequisite: EECS 460 or AEROSP 348 or MECHENG 461 and AEROSP 550 (EECS 560). (3 credits)
Control design concepts for linear multivariable systems. Review of single variable systems and extensions to multivariable systems. Purpose of feedback. Sensitivity, robustness, and design tradeoffs. Design formulations using both frequency domain and state space descriptions. Pole placement/observer design. Linear quadratic Gaussian based design methods. Design problems unique to multivariable systems. CourseProfile (ATLAS)

EECS 566. Discrete Event Systems
Prerequisite: Graduate standing (3 credits)
Modeling, analysis, and control of discrete event dynamical systems.  Modeling formalisms considered include state machines, Petri nets, and recursive processes.  Supervisory control theory; notions of controllable and observable languages.  Analysis and control of Petri nets. Communicating sequential processes.  Applications to database, management, manufacturing, and communication protocols. CourseProfile (ATLAS)

EECS 567 (MFG 567) (MECHENG 567). Robot Kinematics and Dynamics
Prerequisite: Graduate standing or permission of instructor (3 credits)
Geometry, kinematics, differential kinematics, dynamics, and control of robot manipulators. The mathematical tools required to describe spatial motion of a rigid body will be presented in full. Motion planning including obstacle avoidance is also covered. CourseProfile (ATLAS)

EECS 568 (NAVARCH 568). Mobile Robotics: Methods and Algorithms
Prerequisite: Graduate Standing or permission of instructor. (4 credits)
Theory and applications of probabilistic techniques for autonomous mobile robotics. This course will present and critically examine contemporary algorithms for robot perception (using a variety of modalities), state estimation, mapping, and path planning. Topics include Bayesian filtering; stochastic representations of the environment; motion and sensor models for mobile robots; algorithms for mapping, localization, planning and control in the presence of uncertainty; application to autonomous marine, ground and air vehicles. CourseProfile (ATLAS)

EECS 569 (MFG 564). Production Systems Engineering
Prerequisite: None. (3 credits)
Production Systems Engineering (PSE) investigates fundamental laws that govern production systems and utilizes them for analysis, design, and continuous improvement.  the topics covered include quantitative methods for analysis and design, improvability, measurement-based management, and the PSE Toolbox.  the skills acquired will make students marketable as engineering managers of manufacturing organizations. CourseProfile (ATLAS)

EECS 570. Parallel Computer Architecture
Prerequisite: EECS 470. (4 credits)
Architectures for explicit parallelism. Multithreaded processors, small- and large-scale multiprocessor systems. Shared-memory coherence and consistency. Effect of architecture on communication latency, bandwidth, and overhead. Latency tolerance techniques. Interconnection networks. Case studies. Term projects. CourseProfile (ATLAS)

EECS 571. Principles of Real-Time Computing
Prerequisite: EECS 470, EECS 482 or permission of instructor. (4 credits)
Principles of real-time computing based on high performance, ultra reliability and environmental interface. Architectures, algorithms, operating systems and applications that deal with time as the most important resource. Real-time scheduling, communications and performance evaluation. CourseProfile (ATLAS)

EECS 573. Microarchitecture
Prerequisite: EECS 470 or permission of instructor. (3 credits)
Graduate-level introduction to the foundations of high performance microprocessor implementation. Problems involving instruction supply, data supply and instruction processing. Compile-time vs. run-time tradeoffs. Aggressive branch prediction. Wide-issue processors, in-order vs. out-of-order execution, instruction retirement. Case studies taken from current microprocessors. CourseProfile (ATLAS)

EECS 574. Computational Complexity
Prerequisite: EECS 376 or graduate standing. (4 credits)
Fundamentals of the theory of computation and complexity theory. Computability, undecidability, and logic. Relations between complexity classes, NP-completeness, P-completeness, and randomized computation. Applications in selected areas such as cryptography, logic programming, theorem proving, approximation of optimization problems, or parallel computing. CourseProfile (ATLAS)

EECS 575. Advanced Cryptography
Prerequisite: EECS 203 or equivalent (EECS 574 recommended). (4 credits)
A rigorous introduction to the design of cryptosystems and to cryptanalysis. Topics include cryptanalysis of classical cryptosystems; theoretical analysis of one-way functions; DES and differential cryptanalysis; the RSA cryptosystem; ElGamal, elliptic, hyperelliptic and hidden mononomial cryptosystems; attacks on signature schemes, identification schemes and authentication codes; secret sharing; and zero knowledge. CourseProfile (ATLAS)

EECS 576. Advanced Data Mining
Advisory Prerequisite: EECS 281 and (MATH 214 or 217 or 296 or 417 or 419 or ROB 101) and (STATS 412 or MATH 425), or graduate standing. (4 credits)
Advanced topics in data mining. A mix of lectures, readings, and a semester-long group project will familiarize the students with recent methods for analyzing large-scale, real-world data and networks, and applications in various domains (e.g., web science, social science, neuroscience). CourseProfile (ATLAS)

EECS 578. Correct Operation for Processors and Embedded Systems
Prerequisite: EECS 470 or graduate standing or permission of instructor.
 Minimum grade required for course enforced prerequisite is C. (4 credits) Graduate-level introduction to topics in correctness of modern processors, embedded systems, and accelerator designs (e.g., GPUs). Robust and reliable design  techniques. Hardware security assurance. Design verification: simulation, formal techniques, and post-silicon validation. Quality of services and energy management for correctness of implementation. Term projects. CourseProfile (ATLAS)

EECS 579. Digital System Testing
Prerequisite: Graduate standing. (4 credits)
Overview of fault-tolerant computing. Fault sources and models. Testing process. Combinational circuit testing. D-Algorithm and PODEM. Sequential circuit testing. Checking experiments. RAM and microprocessor testing. Fault simulation. Design for testability. Testability measures. Self-testing circuits and systems. CourseProfile (ATLAS)

EECS 582. Advanced Operating Systems
Prerequisite: EECS 482. (4 credits)
Course discusses advanced topics and research issues in operating systems. Topics will be drawn from a variety of operating systems areas such as distributed systems and languages, networking, security and protection, real-time systems, modeling and analysis, etc. CourseProfile (ATLAS)

EECS 583. Advanced Compilers
Prerequisite: EECS 281 and 370 (EECS 483 is also recommended) (4 credits)
In-depth study of compiler back-end design for high-performance architectures. Topics include control-flow and data-flow analysis, optimization, instruction scheduling, register allocation. Advanced topics include memory hierarchy management, instruction-level parallelism, predicated and speculative execution. The class focus is processor-specific compilation techniques, thus familiarity with both computer architecture and compilers is recommended. CourseProfile (ATLAS)

EECS 584. Advanced Database Systems
Prerequisite: EECS 484 or permission of instructor. (4 credits)
Advanced topics and research issues in database management systems. Distributed databases, advanced query optimization, query processing, transaction processing, data models and architectures. Data management for emerging application areas, including bioinformatics, the internet, OLAP and data mining. A substantial course project allows in-depth exploration of topics of interest. CourseProfile (ATLAS)

EECS 586. Design and Analysis of Algorithms
Prerequisite: EECS 281. (4 credits)
Design of algorithms for nonnumeric problems involving sorting, searching, scheduling, graph theory and geometry. Design techniques such as approximation, branch-and-bound, divide-and-conquer, dynamic programming, greed and randomization applied to polynomial and NP-hard problems. Analysis of time and space utilization. CourseProfile (ATLAS)

EECS 587. Parallel Computing
Prerequisite: EECS 281 and graduate standing. (4 credits)
The development of programs for parallel computers. Basic concepts such as speedup, load balancing, latency, system taxonomies. Design of algorithms for idealized models. Programming on parallel systems such as shared or distributed memory machines, networks. Grid Computing. Performance analysis. Course includes a substantial term project. CourseProfile (ATLAS)

EECS 588. Computer and Network Security
Prerequisite: EECS 482 or EECS 489 or graduate standing. (4 credits)
Survey of advanced topics and research issues in computer and network security. Topics will be drawn from a variety of areas such as mandatory and discretionary security policies, secure storage, security kernels, trust management, preventing software vulnerabilities, applied cryptography, network security. CourseProfile (ATLAS)

EECS 589. Advanced Computer Networks
Prerequisite: EECS 489. (4 credits)
Advanced topics and research issues in computer networks. Topics include routing protocols, multicast delivery, congestion control, quality of service support, network security, pricing and accounting and wireless access and mobile networking. Emphasis is placed on performance trade-offs in protocol and architecture designs. Readings assigned from research publications. A course project allows in-depth exploration of topics of interest.
CourseProfile (ATLAS)

EECS 590. Advanced Programming Languages
Prerequisite: EECS 281 or equivalent. (4 credits)
Fundamental concepts in Programming Languages (PL) as well as recent topics and trends in PL research. Topics include semantics, type systems, program verification using theorem provers, software model checking, and program analysis. Course focuses on applying PL concepts to improve software reliability. Course includes a semester-long individual research project. CourseProfile (ATLAS)

EECS 591. Distributed Systems
Prerequisite: EECS 482 and graduate standing. (4 credits)
Principles and practice of distributed system design. Computations, consistency semantics and failure models. Programming paradigms including group communication, RPC, distributed shared memory, and distributed objects. Operating system kernel support; distributed system services including replication, caching, file system management, naming, clock synchronization and multicast communication. Case studies. CourseProfile (ATLAS)

EECS 592. Foundations of Artificial Intelligence
Advisory Prerequisite: Graduate standing. (4 credits) (Credit cannot be obtained for both EECS 492 and EECS 592.)
An advance introduction to AI emphasizing its theoretical underpinnings.  Topics include search, logic, knowledge representation, reasoning planning, decision making under uncertainty, and machine learning.` CourseProfile (ATLAS)

EECS 593. Human-Computer Interaction
Prerequisite: EECS 203, MATH 425 (Stat 425). (3 credits)
Principles (e.g., human-centered systems design, usability, accessibility) and methods (e.g., requirements gathering, functional prototyping, user study evaluation) of technical Human-Computer Interaction (HCI) research. Survey of HCI research threads including Human-AI Interaction, Social Computing, Behavior Modeling, Education Technologies. Group assignments give students exposure to HCI research methods. CourseProfile (ATLAS)

EECS 595 (LING 541) (SI 561). Natural Language Processing
Prerequisite: Senior Standing. (3 credits)
Linguistic fundamentals of natural language processing (NLP), part of speech tagging, hidden Markov models, syntax and parsing, lexical semantics, compositional semantics, word sense disambiguation, machine translation. Additional topics such as sentiment analysis, text generation, and deep learning for NLP. CourseProfile (ATLAS)

EECS 596. Master of Engineering Team Project
Prerequisite: Enrollment in the Masters of Engineering program in EECS. (1-6 credits)
To be elected by EECS students pursuing the Master of Engineering degree. Students are expected to work in project teams. May be taken more than once up to a total of 6 credit hours. CourseProfile (ATLAS)

EECS 597 (SI 760) (LING 702). Language and Information
Advisory Prerequisite: EECS 380 or concurrent election of one of SI 503 or LING 541; and Graduate Standing. (3 credits)
This course introduces a body of quantitative techniques for modeling and analyzing natural language and for extracting useful information from texts.  The theory includes Hidden Markov Models and the noisy channel model, information theory, supervised and unsupervised machine learning, and probabilistic context-free and context-sensitive grammars.  Aspects of natural language analysis include phrasal lexicon induction, part of speech assignment, entity recognition, parsing, and statistical machine translation. CourseProfile (ATLAS)

EECS 598. Special Topics in Electrical Engineering and Computer Science
Prerequisite: Permission of instructor or counselor. (1-4 credits)
Topics of current interest in electrical engineering and computer science. Lectures, seminar or laboratory. Can be taken more than once for credit. CourseProfile (ATLAS)

EECS 599. Directed Study
Prerequisite: Prior arrangement with instructor; mandatory satisfactory/unsatisfactory. (1-4 credits)
Individual study of selected advanced topics in electrical engineering and computer science. May include experimental work or reading. Primarily for graduate students. To be graded on satisfactory/unsatisfactory basis ONLY. CourseProfile (ATLAS)

600 Level Courses

EECS 600 (IOE 600). Function Space Methods in System Theory
Prerequisite: MATH 419. (3 credits)
Introduction to the description and analysis of systems using function analytic methods. Metric spaces, normed linear spaces, Hilbert spaces, resolution spaces. Emphasis on using these concepts in systems problems. CourseProfile (ATLAS)

EECS 601. Introduction to CSE Graduate Research  
Prerequisite: Graduate Standing. (1 credit)
An introduction for incoming Ph.D. students and research-focused Master’s students to a wide range of topics critical to academic research. Rotating speakers will give perspective on the research process, time management, publishing in CS, managing the highs and lows of grad school, advisor interactions, career paths, etc. CourseProfile (ATLAS)

EECS 605. Data Science and Machine Learning Design Laboratory  
Advisory Prerequisite: EECS 505 or 551 or graduate equivalent. (4 credits)
This course uses a sequence of hands-on projects to bring into sharper focus the following concepts in the data-to-decision cycle: 1. how smart (or bad) data can positively (or negatively) affect decisions in the design and operation of an engineering system; 2. how to acquire such data, clean and store it via appropriate pre-processing and post-processing it for aiding reproducibility; 3. how to display, render, deploy and interpret it in the context of a real or simulated close-up loop type cloud based engineering system; and finally, 4. how to communicate the shortcomings and vulnerabilities of such systems, including plug-and-play systems using pre-trained off-the-shelf deep learning models, when integrated into a decision-making system; 5. conceptualization and execution of an open-ended, reproducible cloud-based design project. CourseProfile (ATLAS)

EECS 620. Electronic and Optical Properties of Semiconductors
Prerequisite: EECS 520 or EECS 540. (4 credits)
The course discusses in detail the theory behind important semiconductor-based experiments such as Hall effect and Hall mobility measurement; velocity-field measurement; photoluminescence; gain; pump-probe studies; pressure and strain-dependent studies. Theory will cover: Bandstructure in quantum wells; effect of strain on bandstructure; transport theory; Monte Carlo methods for high field transport; excitons, optical absorption, luminescence and gain. CourseProfile (ATLAS)

EECS 627. VLSI Design II
Prerequisite: EECS 427. (4 credits)
Advanced very large scale integrated (VLSI) circuit design. Design methodologies (architectural simulation, hardware description language design entry, silicon compilation, and verification), microarchitectures, interconnect, packaging, noise sources, circuit techniques, design for testability, design rules, VLSI technologies (silicon and GaAs) and yield. Projects in chip design. CourseProfile (ATLAS)

EECS 628. Advanced High Performance VLSI Design
Prerequisite: EECS 627 or equivalent. (3-4 credits)
Advanced issues in VLSI design addressing the areas of high performance, low power and reliability. Topics covered include recent approaches in leakage control, high speed on-chip communication, memory design, soft error failures, noise analysis and control, error tolerant design and new circuit families. (Students will complete an advanced project.) (A 4-credit option is available with addition of a substantial design and simulation component to the project.) CourseProfile (ATLAS)

EECS 631. Electromagnetic Scattering
Prerequisite: EECS 530 and graduate standing. (3 credits)
Boundary conditions, field representations. Low and high frequency scattering. Scattering by half plane (Wiener-Hopf method) and wedge (Maliuzhinets method); edge diffraction. Scattering by a cylinder and sphere: Watson transformation, Airy and Fock functions, creeping waves. Geometrical and physical theories of diffraction. CourseProfile (ATLAS)

EECS 633. Numerical Methods in Electromagnetics 
Prerequisite: EECS 530. (3 credits) 
Numerical techniques for antennas and scattering; integral representation: solutions of integral equations: method of moments, Galerkin’s technique, conjugate gradient FFT; finite element methods for 2-D and 3-D simulations; hybrid finite element/boundary integral methods; applications: wire, patch and planar arrays; scattering composite structures. CourseProfile (ATLAS)

EECS 634 (APPPHYS 611) (Physics 611). Nonlinear Optics
Prerequisite: EECS 537 or EECS 538 or EECS 530. (3 credits)
Formalism of wave propagation in nonlinear media; susceptibility tensor; second harmonic generation and three-wave mixing; phase matching; third order nonlinearities and four-wave mixing processes; stimulated Raman and Brillouin scattering. Special topics: nonlinear optics in fibers, including solitons and self-phase modulation. CourseProfile (ATLAS)

EECS 638 (APPPHYS 609) (PHYSICS 542). Quantum Theory of Light
Prerequisite: Quantum mechanics, electrodynamics, atomic physics. (3 credits)
The atom-field interaction; density matrix; quantum theory of radiation including spontaneous emission; optical Bloch equations and theory of resonance fluorescence; coherent pulse propagation; dressed atoms and squeezed states; special topics in nonlinear optics. CourseProfile (ATLAS)

EECS 643 (PSYCH 643). Theory of Neural Computation
Prerequisite: Graduate standing or permission of instructor. (2-4 credits)
This is a graduate course introducing computational models of information processing in mammalian central nervous system.  Following a brief overview, the course will examine: (1) Biological principles governing brain computation (e.g., population coding, computation maps, adaptive plasticity, self-organization and modularization, etc.); (2) Mechanisms underlying single neuron computation, via either passive membrane properties (equivalent cylinder model and cable equation for dendrites; integrate-and-fire or Lapique model) or active membrane properties (Hodgkins-Huxley dynamics; F-N reduced system and phase-space analysis); (3) Architectures of artificial neural network (connectionism), including models of simple perception, multi-layered feed-forward network (with supervised, back-propagated error correction learning rule), associative network (Hopfield network and Boltman machine with unsupervised, Hebbian learning rule), and reinforcement (partially supervised) learning algorithms. CourseProfile (ATLAS)

EECS 644 (PSYCH 644). Computational Modeling of Cognition
Prerequisite: Graduate standing or permission of instructor. (2-4 credits)
This course will examine computational models of human cognitive processes. Course goals include learning about important computational models of specific cognitive domains and evaluating the appropriateness and utility of different computational approaches to substantive problems in cognition. CourseProfile (ATLAS)

EECS 650. Channel Coding Theory
Prerequisite: EECS 501 and MATH 419. (3 credits)
The theory of channel coding for reliable communication and computer memories. Error correcting codes; linear, cyclic and convolutional codes; encoding and decoding algorithms; performance evaluation of codes on a variety of channels. CourseProfile (ATLAS)

EECS 659. Adaptive Signal Processing
Prerequisite: EECS 564. (3 credits)
Theory and applications of adaptive filtering in systems and signal processing. Iterative methods of optimization and their convergence properties: transversal filters; LMS (gradient) algorithms. Adaptive Kalman filtering and least-squares algorithms. Specialized structures for implementation: e.g., least-squares lattice filters, systolic arrays. Applications to detection, noise canceling, speech processing and beam forming. CourseProfile (ATLAS)

EECS 662 (MECHENG 662). Advanced Nonlinear Control
Prerequisite: EECS 562 or MECHENG 548. (3 credits)
Geometric and algebraic approaches to the analysis and design of nonlinear control systems. Nonlinear controllability and observability, feedback stabilization and linearization, asymptotic observers, tracking problems, trajectory generation, zero dynamics and inverse systems, singular perturbations and vibrational control. CourseProfile (ATLAS)

EECS 670. Special Topics in Computer Architecture
Prerequisite: Permission of instructor. (3 credits)
Current topics of interest in computer architecture. This course may be repeated for credit. CourseProfile (ATLAS)

EECS 674. Special Topics in Theoretical Computer Science
Prerequisite: Permission of instructor. (3 credits)
Current topics of interest in theoretical computer science. This course may be repeated for credit. CourseProfile (ATLAS)

EECS 692. Advanced Artificial Intelligence
Prerequisites: EECS 592 or EECS 492. Minimum grade of “C” required for enforced prerequisites.(4 credits)
Exploration of advanced topics in Artificial Intelligence, intended as preparation for research in the field.  Emphasizes research methods and practice, through explicit instruction, analysis of current literature, and a term project devoted to replicating published findings.  Coursework comprises extensive reading, research and writing assignments, presentations, quizzes, and the replication project. CourseProfile (ATLAS)

EECS 695 (PSYCH 740). Neural Models and Psychological Processes
Prerequisite: Permission of instructor. (3 credits)
Consideration of adaptively and biologically oriented theories of human behavior.  Emphasis on both the potential breadth of application and intuitive reasonableness of various models. There is a bias toward large theories and small simulations. CourseProfile (ATLAS)

EECS 698. Master’s Thesis
Prerequisite: Election of an EECS master’s thesis option. (1-6 credits)
To be elected by EE and EES students pursuing the master’s thesis option. May be taken more than once up to a total of 6 credit hours. To be graded on a satisfactory/unsatisfactory basis ONLY. CourseProfile (ATLAS)

EECS 699. Research Work in Electrical Engineering and Computer Science
Prerequisite: Graduate standing, permission of instructor; mandatory satisfactory/unsatisfactory. (1-6 credits)
Students working under the supervision of a faculty member plan and execute a research project. A formal report must be submitted. May be taken for credit more than once up to a total of 6 credit hours. To be graded satisfactory/ unsatisfactory ONLY. CourseProfile (ATLAS)

700 Level Courses

EECS 700. Special Topics in System Theory
Prerequisite: Permission of instructor (to be arranged)
CourseProfile (ATLAS)

EECS 720. Special Topics in Solid-State Devices, Integrated Circuits, and Physical Electronics
Prerequisite: Permission of instructor. (1-4 credits)
Special topics of current interest in solid-state devices, integrated circuits, microwave devices, quantum devices, noise, plasmas. This course may be taken for credit more than once. CourseProfile (ATLAS)

EECS 730. Special Topics in Electromagnetics
Prerequisite: ermission of instructor. (1-4 credits) (to be arranged)
CourseProfile (ATLAS)

EECS 735. Special Topics in the Optical Sciences
Prerequisite: Graduate standing, permission of instructor (to be arranged) (1-4 credits)
Key topics of current research interest in ultrafast phenomena, short wavelength lasers, atomic traps, integrated optics, nonlinear optics and spectroscopy. This course may be taken for credit more than once under different instructors. CourseProfile (ATLAS)

EECS 750. Special Topics in Communication and Information Theory
Prerequisite: Permission of instructor. (to be arranged)
CourseProfile (ATLAS)

EECS 755. Special Topics in Signal Processing
Prerequisite: Permission of instructor. (to be arranged) (1-4 credits)
Advanced topics in Signal and/or image processing. The specific topics vary with each offering. This course may be taken for credit more than once. CourseProfile (ATLAS)

EECS 760. Special Topics in Control Theory
Prerequisite: Permission of instructor. (to be arranged)
CourseProfile (ATLAS)

EECS 765. Special Topics in Stochastic Systems and Control
Prerequisite: Permission of instructor. (to be arranged) (3 credits)
Advanced topics on stochastic systems such as stochastic calculus, nonlinear filtering, stochastic adaptive control, decentralized control and queuing networks. CourseProfile (ATLAS)

800 Level Courses

EECS 820. Seminar in Solid-State Electronics
Prerequisite: Graduate standing, permission of instructor. (1 credit)
Advanced graduate seminar devoted to discussing current research topics in areas of solid-state electronics. Specific topics vary each time the course is offered. Course may be elected more than once. CourseProfile (ATLAS)

900 Level Courses

EECS 990. Dissertation/Pre-Candidate
(2-8 credits); (1-4 credits)
Dissertation work by doctoral student not yet admitted to status as candidate. The defense of the dissertation, that is, the final oral examination, must be held under a full-term candidacy enrollment. CourseProfile (ATLAS)

EECS 995. Dissertation/Candidate
Prerequisite: Graduate School authorization for admission as a doctoral candidate. (8 credits); (4 credits)
Election for dissertation work by a doctoral student who has been admitted to candidate status. The defense of the dissertation, that is, the final oral examination, must be held under a full-term candidacy enrollment. CourseProfile (ATLAS)