Electrical Engineering and Computer Science Courses (EECS)

*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 110. Discover Computer Science 
Advisory Prerequisite: None. Enforced Prerequisite: No credit in EECS 280 or EECS 281. (2 credits).
Introduction to basic CS concepts (variables, conditionals, loops, functions) using an introductory
programming language, such as Python. Students interact with researchers and computing professionals to learn about real-world, interdisciplinary applications of CS. Intended for students without prior programming experience to (optionally) take prior to EECS 183 or ENGR 101. CourseProfile (ATLAS)

EECS 180. Exam/Transfer Introductory Computer Programming Credit 
Credit Exclusion: 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
Advisory Prerequisite: None. Enforced Prerequisite: No credit in EECS 280 or EECS 281. Credit Exclusion: 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 requirement 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. Projects are overseen and graded by faculty and may also involve mentoring by representatives from industrial, governmental and/or non-profit organizations. CourseProfile (ATLAS)

EECS 201. Computer Science Pragmatics
Prerequisite: EECS 180 or EECS 183 or ENGR 101 or ENGR 151 or ROB 102 or preceded or accompanied by (EECS 280 or EECS 281). Minimum grade requirement of “C” 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
Enforced 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 requirement of “C” 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 requirement of “C” 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. Advisory Prerequisite: 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 and PHYSICS 240; C or better, No OP/F) or (Co-requisite: EECS 215; C or better, No OP/F). (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
Advisory Prerequisite: Prior or concurrent enrollment in PHYSICS 240 (or PHYSICS 260) or EECS 230. Enforced Prerequisite: None. (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 or ROB 102; or (preceded or accompanied by EECS 280). Minimum grade requirement of “C” 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. CourseProfile (ATLAS)

EECS 280. Programming and Introductory Data Structures
Prerequisite: ENGR 101 or ENGR 151 or EECS 180 or EECS 183 or ROB 102. Minimum grade requirement of “C” 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 requirement of “C” for enforced prerequisites. Advisory 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 requirement of “C” 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 requirement of “C” 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. CourseProfile (ATLAS)

EECS 312. Digital Integrated Circuits
Prerequisite: EECS 215 and Math 216. Minimum grade requirement of “C” 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 requirement 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. CourseProfile (ATLAS)

EECS 367 (ROB 380). Introduction to Autonomous Robotics
Advisory Prerequisite: None. Enforced Prerequisite: EECS 281 and (MATH 214 or MATH 217 or MATH 296 or MATH 417 or MATH 419 or ROB 101); No OP/F. Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C ” for enforced prerequisites. Credit Exclusions: Only 1 course may earn credit from ROB 320, ROB 380, ROB 511, and EECS 367. (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 requirement of “C” 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 requirement of “C” 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
Advisory Prerequisite: EECS 201 and 370. Enforced Prerequisite: EECS 281; (C or better, No OP/F). Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” for enforced prerequisites. (4 credits)
Introduction to the principles and practices of computer security as applied to software, host systems, and networks. 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. CourseProfile (ATLAS

EECS 390. Programming Paradigms
Prerequisite: EECS 281; (C or better, No OP/F). Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” 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: Graduate standing.
Advisory Prerequisite: Intended for graduate students in science or engineering fields. Not available for credit to undergraduate students; will not substitute for Eng. 101. (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. CourseProfile (ATLAS)

EECS 403. Graduate Foundations of Data Structures and Algorithms
Prerequisite: Graduate Standing and [EECS 402 and (EECS 203 or MATH 403 or 465 or 565); (C or better; No OP/F)] Minimum grade requirement of “C” 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. 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 415 (NERS 471). Introduction to Plasmas and Fusion
Advisory Prerequisite: PHYSICS 240 or PHYSICS 260 and junior standing (or by permission). Enforced Prerequisite: None. (3 credits)
Single particle orbits in electric and magnetic fields, moments of Boltzmann equation and introduction to fluid theory. Wave phenomena in plasmas. Diffusion of plasma in electric and magnetic fields. Analysis of laboratory plasmas and magnetic confinement devices and applications, including fusion and plasma materials semiconductor processing. Introduction to plasma kinetic theory. 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. 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. Micro/Nano Device Fabrication and Characterization
Prerequisite: Senior undergraduate or graduate standing. (4 credits)
Basic principles and hands-on experience with semiconductor micro/nano-fabrication technologies. Students will perform computer simulations of fabrication steps, and will practice some of the key processing steps used in fabricating different devices in modern IC manufacturing. Students will test and/or analyze electrical properties of various devices and compare results to theory. 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. CourseProfile (ATLAS)

EECS 427. VLSI Design I
Prerequisite: (EECS 270 and EECS 312) or graduate standing. Minimum grade requirement of “C” 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. 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. Extended Reality for Social Impact
Advisory Prerequisite: None. Enforced Prerequisite: EECS 281; (C or better, No OP/F). Minimum grade requirement of “C” for enforced prerequisite. (4 credits)
Design, development, and application of virtual and augmented reality software for social impact. Topics
include: virtual reality, augmented reality, game engines, ethics / accessibility, interaction design patterns, agile project management, stakeholder outreach, XR history / culture, and portfolio construction. Student teams develop and exhibit socially impactful new VR / AR applications. 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 requirement of “C” 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 requirement of “C” for enforced prerequisites. (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 requirement of “C” 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
Prerequisite: [(EECS 281 and (MATH 214 or 217 or 296 or 417 or 419, or ROB 101)); (C or better, No OP/F)]. Enrollment in one minor elective allowed for Computer Science Minors. Advisory Prerequisite: STATS 250 or equivalent. Minimum grade requirement of “C” for enforced prerequisites. (Credit Exclusions: No credit to a student who has taken EECS 453 or 545 or 553.) (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). For each topic, mathematical principles, key algorithmic ideas, and implementation will be highlighted. CourseProfile (ATLAS)

EECS 448. Applied Machine Learning for Modeling Human Behavior
Enforced 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 in CSE. Minimum grade requirement of “C” for enforced prerequisites. (4 credits)
Machine learning, with a focus on human behavior, across multiple modalities including speech and text. Teams complete projects based primarily on their individual interests centered on modeling an aspect of human behavior. Prior experience with speech/language or other data modeling is not needed. CourseProfile (ATLAS)

EECS 449. Conversational Artificial Intelligence
Prerequisite: EECS 281; (C or better, No OP/F). Advisory Prerequisite: EECS 485 or EECS 493. Minimum grade requirement of “C” for enforced prerequisites. (4 credits)
The science and art of creating conversational AI spans multiple areas in computer science. Students will
learn about and leverage advances in these areas to create conversational virtual assistants spanning natural
language processing, dialogue management, response generation, and other applications. CourseProfile (ATLAS)

EECS 452. Digital Signal Processing Design Laboratory
Prerequisite: EECS 280, and (EECS 351 or EECS 455) or graduate standing. Minimum grade requirement of “C” for enforced prerequisites. (4 credits)
Architecture features of single-chip DSP processors are introduced in lecture. Laboratory exercises using two different state-of-the-art fixed-point processors include sampling, A/D and D/A conversion, digital waveform generators, real-time FIR and II filter implementation. The central component of this course is a 12-week team project in real-time DSP Design (including software and hardware development). Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. CourseProfile (ATLAS)

EECS 453. Principles of Machine Learning
Prerequisite: EECS 280 and (STATS 250 or STATS 280 or STATS 412 or STATS 426 or EECS 301 or IOE 265 or TO 301) and (EECS 351 or MATH 214 or 217 or 296 or 417 or 419 or ROB 101). (C or better, No OP/F). Minimum grade requirement of “C” for enforced prerequisites. (Credit Exclusions: No Credit to a student who has taken EECS 445 or 545 or 553). (4 credits)
Covers fundamental principles of machine learning, including unsupervised learning (e.g., clustering, mixture models, dimension reduction), supervised learning (e.g., regression, classification, neural networks & deep learning), and reinforcement learning. For each topic, mathematical principles, key algorithmic ideas, and basic theoretical insights will be highlighted. CourseProfile (ATLAS)

EECS 455. Wireless Communications Systems
Prerequisite: EECS 216 and EECS 301 or graduate standing. Minimum grade requirement of “C” 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 456. Internet Foundations
Prerequisite: EECS 300 or EECS 270 or graduate standing or permission of instructor. Minimum grade requirement of “C” for enforced prerequisites. (4 credits)
Fundamentals of the internet are introduced. Four layers of the internet are described, including the application, transport, network and link layers. TCP and UDP protocols in the transport layer are studied, along with IP in the network layer. Routers are described that perform the IP functions. Ethernet, WiFi and cellular technologies are covered for the link layer. 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 (C or better, No OP/F), or graduate standing. Minimum grade requirement of “C” for enforced prerequisite. (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. 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 Graduate Standing. Minimum grade requirement of “C” 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
Prerequisite: EECS 280 and MATH 215 and (junior standing or senior standing) or graduate standing). Minimum grade requirement of “C” for enforced prerequisites. Advisory Prerequisite: EECS 281 and (MATH 214 or MATH 217 or MATH 417 or MATH 419 or ROB 101) or permission of instructor. (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 requirement of “C” 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 requirement of “C” 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 471. Applied Parallel Programming with GPUs
Prerequisite: EECS 281 and EECS 370; (C or better, No OP/F) or Graduate Standing in CSE. Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” for enforced prerequisites. (4 credits)
Parallel computing and application development for massively parallel processors such as GPUs. Focuses on forms of parallelism, programming models such as CUDA, mapping computations to parallel hardware, efficient data structures, and paradigms for efficient parallel algorithms. Students will gain hands-on experience in programming assignments and projects. 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 376; (C or better, No OP/F) or Graduate Standing in CSE. Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” 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. Emphasizes attack models, precise definitions of security, reductions, and proof techniques. 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. Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” 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
Advisory Prerequisite: None. Enforced Prerequisite: EECS 281 and EECS 376; (C or better, No OP/F). Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” for enforced prerequisites. Credit Exclusion: No credit to a student who has taken CSE 586. (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 requirement of “C” 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 479. Introduction to Quantum Computing
Advisory Prerequisite: MATH 214 or other linear algebra introduction. Enforced Prerequisite: EECS 280 and 370; (C or better, No OP/F) or graduate standing in CSE. Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” for enforced prerequisites. (4 credits)
A practical approach towards exploring how each layer of the computing stack is impacted by quantum
computing. Quantum logic design using classical oracles, phase kickback, and entanglement. Quantum algorithms including Deutsch-Jozsa, Grover’s, and Shor’s. Error correction schemes including Shor and Steane codes. Building fault-tolerant architectures. Several programming assignments. CourseProfile (ATLAS)

EECS 480. Social Computing Systems
Prerequisite: EECS 485 or 493. Minimum grade requirement of “C” 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; (C or better, No OP/F) or Graduate Standing in CSE. Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” 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 requirement of “C” for enforced prerequisites. Enrollment in one minor elective allowed for Computer Science Minors. (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 in CSE. Minimum grade requirement of “C” for enforced prerequisites. Enrollment in one minor elective allowed for Computer Science Minors. (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. Enrollment in one minor elective allowed for Computer Science Minors. (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 requirement of “C” for enforced prerequisites. Enrollment in one minor elective allowed for Computer Science Minors. (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; (C or better, No OP/F) or Graduate Standing in CSE. Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement 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
Advisory Prerequisite: EECS 281 or graduate standing in CSE and (C or better). Enforced Prerequisite: None. Credit Exclusion: No credit to a student who has taken EECS 487 or CSE 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. Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” 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 or graduate standing in CSE. Minimum grade requirement of “C” for enforced prerequisite. Enrollment in one minor elective allowed for Computer Science Minors. (4 credits)
Programming languages are rich mathematical structures and powerful user interfaces. Student will learn about modern languages from the perspective of both language designers and users, building up from mathematical first principles, and covering human factors in language design, language prototyping, and techniques for reasoning about program behavior. CourseProfile (ATLAS)

EECS 491. Introduction to Distributed Systems
Enforced Prerequisite: EECS 281; (C or better, No OP/F) or graduate standing in CSE. Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” for enforced prerequisite. (4 credits)
Design and implementation of scalable, performant, and reliable distributed systems. Covers 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. Includes topics such as replicated state machines, reasoning about time in distributed systems, replication, concurrency control, data consistency models, techniques for scaling, and multi-tenancy. CourseProfile (ATLAS)

EECS 492. Introduction to Artificial Intelligence
Advisory Prerequisite: None. Enforced Prerequisite: EECS 281; (C or better, No OP/F). Enrollment in one minor elective allowed for Computer Science Minors. Minimum grade requirement of “C” for enforced prerequisite. Credit Exclusion: Credit for only one: EECS 492 or CSE 592. (4 credits)  
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 requirement of “C” for enforced prerequisite. Enrollment in one minor elective allowed for Computer Science Minors. (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 requirement of “C” 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. Accessible Computing
Prerequisite: EECS 281 (C or better, No OP/F). Minimum grade requirement of “C” for enforced prerequisite. (4 credits)
Team-based development of technology systems focused on disability, accessibility, or chronic illness. Students work closely with people with disabilities to develop technologies addressing a specific need. Covers design methods and problem-solving strategies; human factors; human-machine interfaces; community perspectives; social and ethical aspects; and accessible technology for disability or chronic illness. 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. CourseProfile (ATLAS)

EECS 497. Human-Centered Software and Design and Development
Prerequisite: EECS 281. Minimum grade requirement of “C” for enforced prerequisites. (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 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

ECE 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)

ECE 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)

ECE 502. Stochastic Processes
Prerequisite: ECE 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)

ECE 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. (Credit Exclusions: No credit to a student who has taken EECS 442 or EECS 504.) (3 credits)
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)

ECE 505. Computational Data Science and Machine Learning 
Enforced Prerequisite: EECS 301 or MATH 425 or STATS 250 or STATS 412 or STATS 426 or IOE 265 or graduate standing. Minimum grade requirement of “C” for enforced prerequisites. Credit Exclusions: Students cannot earn credit for both ECE 505 and ECE 551. (4 credits)
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)

ECE 506. Design of Power Electronics
Prerequisite: EECS 418 or graduate standing. Minimum grade requirement of “C” for enforced prerequisites. (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. (3-4 credits)
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)

ECE 508. Control and Modeling of Power Electronics
Prerequisite: EECS 418 or graduate standing. Minimum grade requirement of “C” for enforced prerequsites. (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)

ECE 509. BioMEMS
Prerequisite: None. (3 credits)
Covers 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)

ECE 510 (NERS 675). Plasma Chemistry and Plasma Surface Interactions
Prerequisite: ECE 517, permission of instructor, or graduate standing. (3 credits)
Focuses on the plasma chemistry and plasma-surface interactions occurring in low temperature plasmas as used in, for example, materials processing, chemical conversion, biotechnology, environmental remediation, and photon sources. Emphasis is on the atomic and molecular processes that produce chemically reactive species by electron and ion-molecule collisions, neutral-neutral reactions; and reactions with inorganic, organic and liquid surfaces. Plasma-surface interactions will be addressed that result in deposition, etching and sputtering. Radiation transport producing photoionization and photodissociation, and trapping will be discussed. CourseProfile (ATLAS)

ECE 511. Integrated Analog/Digital Interface Circuits
Prerequisite: EECS 413 or permission of instructor. (4 credits)
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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. CourseProfile (ATLAS)

ECE 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)

ECE 513. Flat Panel Displays
Prerequisite: EECS 423, ECE 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)

ECE 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)

ECE 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)

ECE 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)

ECE 517 (NERS 578). Low Temperature Plasmas
Advisory Prerequisite: (PHYSICS 240 or PHYSICS 260) and (MATH 216 or MATH 286 or MATH 296). Enforced Prerequisite: None. (3 credits)
Addresses the science and technology of low temperature, partially ionized, non-equilibrium plasmas as used for materials processing, biotechnology/medicine, environment/energy, lasers, displays and lighting. The course topics include the fundamentals of electron-atom/molecule collisions, electron and ion transport; and electrostatic, magnetostatic and electromagnetic interactions with plasmas. Fundamental aspects of the kinetics of plasmas, electron energy distributions and diagnostics are addressed. Applications of these fundamentals to electrical discharges and plasma sources are discussed. CourseProfile (ATLAS)

ECE 518 (SPACE 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)

ECE 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)

ECE 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)

ECE 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)

ECE 524 (APPPHYS 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)

ECE 525. Advanced Solid State Microwave Circuits
Prerequisite: EECS 411 and (EECS 421 or ECE 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. CourseProfile (ATLAS)

ECE 526. Plasmonics
Advisory Prerequisite: EECS 230, PHYSICS 240, graduated standing or permission of instructor. Enforced Prerequisite: None. (3 credits) 
This 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)

ECE 527. Power Semiconductor Devices
Advisory Prerequisite: None. Enforced Prerequisite: EECS 320 or EECS 421 or graduate standing. Minimum grade requirement of “C” for enforced prerequisites. (4 credits) 
Introduction to power semiconductor devices. Analysis of DC and switching behavior of power MOSFETs, IGBT, HEMT, thyristor, Schottky diode, PiN diode, and emerging devices. Power semiconductor materials, device fabrication, packaging, and thermal modeling. Use of commercial numerical simulation software to model power device performance. CourseProfile (ATLAS)

ECE 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)

ECE 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)

ECE 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)

ECE 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)

ECE 532 (CLIMATE 587) (SPACE 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)

ECE 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)

ECE 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)

ECE 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)

ECE 536. Power System Markets & Optimization
Prerequisite: EECS 463, or permission of instructor or graduate standing. Minimum grade requirement of “C” for enforced prerequisites. (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)

ECE 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)

ECE 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)

ECE 539 (APPPHYS 551) (PHYSICS 651). Lasers
Prerequisite: ECE 537 and ECE 538 and Graduate Standing. (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)

ECE 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)

ECE 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. Enforced Prerequisite: None. (3 credits)
Advanced topics in computer vision. Topics are selected from large-scale vision and language foundation
models, generative methods such as denoising diffusion and energy-based models, discriminative methods such as contrastive learning and few-shot classification, neural net architectures, model optimization and compression, current research on recognition, detection, segmentation, tracking, inferring depth, reconstructing scenes in 2D, 3D, and 4D, multimodal perception and robotics. CourseProfile (ATLAS)

CSE 543 (ROB 543). Ethics for AI and Robotics
Prerequisite: Graduate standing.
Advisory Prerequisite: Coursework in artificial intelligence or robotics. (4 credits)
Ethical issues raised by AI and Robotics. Foundations in philosophical ethics and game theory; trust, cooperation, and the well-being of society; safety and autonomous vehicles; privacy and surveillance; fairness and bias; jobs and economic inequality; regulation of AI. CourseProfile (ATLAS)

ECE 544. Analysis of Societal Networks
Advisory Prerequisite: EECS 301 or MATH 425 or STATS 425 or Graduate standing. Minimum grade requirement of “C” for advised prerequisite. (Credit Exclusions: No credit to a student who has taken EECS 444 and EECS 544.) (3 Credits)
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 (CSE)
Advisory Prerequisite: Coursework in probability, linear algebra, and programming. (Credit Exclusions: No credit to a student who has taken EECS 445, 453, 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)

ECE 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)

CSE 547 (SI 652). Incentives and Strategic Behavior in Computational Systems
Prerequisite: None. (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)

CSE 548 (SI 649). Information Visualizaiton
Advisory Prerequisite: SI 582, 618 and 622 are strongly encouraged. EECS 493 or graduate standing and (C or better) or equivalent. Prerequisite: {[SI 506; (C- or better) or SI 506 Waiver] and [Co-requisite: SI 507; (C- or better) or SI Waiver]} or SI 508; (C- or better); or Graduate Standing. Minimum grade requirement of “C” for enforced prerequisite. (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)

CSE 549 (SI 650). Information Retrieval
Prerequisite: SI 507 or SI 507 Waiver or Graduate Standing. (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)

ECE 550. Information Theory
Prerequisite: ECE 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)

ECE 551. Matrix Methods for Signal Processing, Data Analysis and Machine Learning
Advisory Prerequisite: EECS 351 or Graduate Standing. Enforced Prerequisite: None. Credit Exclusions: Students cannot earn credit for both ECE 505 and ECE 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, matrix completion, recommender systems and handwritten digit recognition. CourseProfile (ATLAS)

ECE 552 (APPPHYS 552). Fiber Optics: Internet to Biomedical Applications
Prerequisite: Any one of EECS 334, EECS 429, EECS 434, ECE 529, ECE 537, ECE 538, ECE 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. CourseProfile (ATLAS)

ECE 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)

ECE 555. Digital Communication Theory
Prerequisite: ECE 501, ECE 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)

ECE 556. Image Processing
Advisory Prerequisite: ECE 501; Corequisite: EECS 453 or ECE 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. Projects are overseen/graded by faculty and may also involve mentoring by representatives from external organizations. CourseProfile (ATLAS)

ECE 557. Communication Networks
Prerequisite: Graduate standing, preceded by EECS 431 or accompanied by ECE 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)

ECE 558. Stochastic Control
Prerequisite: ECE 501, ECE 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)

ECE 559. Optimization Methods in Signal Processing and Machine Learning 
Advisory Prerequisite: ECE 551 or ECE 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)

ECE 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)

ECE 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)

ECE 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)

ECE 563. Hybrid Systems, Analysis, and Control
Advisory Prerequisite: (EECS 562) or (ECE 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)

ECE 564. Estimation, Filtering, and Detection
Prerequisite: ECE 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)

ECE 565. Linear Feedback Control Systems
Prerequisite: EECS 460 or AEROSP 348 or MECHENG 461 and AEROSP 550 (ECE 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)

ECE 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) (ROB 510). 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) (ROB 530). 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)

ECE 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)

CSE 572. Randomness and Computation
Prerequisite: EECS 376 (B+ or better, No OP/F); or Graduate Standing. Advisory Prerequisite: Coursework in probability and algorithms. (4 credits)
Fundamentals of randomness and its pervasive use in computer science, including the probabilistic method, the design and analysis of algorithms, computational complexity, cryptography, combinatorics, logic and proof systems, and related topics. 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)

CSE 574. Computational Complexity
Prerequisite: EECS 376 (B+ or better, No OP/F); or Graduate Standing. Advised Prerequisite: Coursework in probability and algorithms. (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)

CSE 575. Advanced Cryptography
Prerequisite: EECS 376 (B+ or better, No OP/F); or Graduate Standing. (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)

CSE 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)

CSE 577. Formal Verification of Hardware and Software Systems
Advisory Prerequisite: None. Enforced Prerequisite: EECS 270 or EECS 281 or EECS 376; (C or better, No OP/F) or graduate standing. Minimum grade requirement of “C” for enforced prerequisite. (4 credits)
Scalable formal automated reasoning for checking the compliance of a state transition system with its safety requirements. Focus is on application to discrete finite-state systems that model hardware and software as well as infinite-state systems that model distributed protocols. Topics include propositional satisfiability (SAT) and SAT modulo theories (SMT) solving, predicate and data abstraction, and minimal unsatisfiable subset (MUS) extraction. Includes hands-on use of state-of-the-art formal verification tools. CourseProfile (ATLAS)

EECS 578. Correct Operation for Processors and Embedded Systems
Prerequisite: EECS 470 or graduate standing or permission of instructor. Minimum grade requirement of “C” for enforced prerequisite. (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)

CSE 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)

CSE 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)

CSE 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)

CSE 585. Advanced Scalable Systems
Advisory Prerequisite: Students are expected to have systems programming skills and must have taken at least one undergraduate-level systems-related course. Enforced Prerequisite: EECS 482 or 483 or 484 or 485 or 489 or 491; (C or better, No OP/F) or Graduate Standing in CSE. Minimum grade requirement of “C” for enforced prerequisite. (4 credits)
Advanced topics and research issues in cloud computing that deal with massive computation, data, and user base. Topics include challenges faced when designing, developing, and deploying web-scale distributed systems for emerging systems for Big Data and AI/ML workloads running in the cloud, observed through diverse perspectives such as operating systems, networking, distributed systems, compiler and programming language, database, security/privacy, etc. CourseProfile (ATLAS)

CSE 586. Design and Analysis of Algorithms
Prerequisite: EECS 376 (B+ or better, No OP/F); or Graduate Standing. Advised Prerequisites: EECS 281 or EECS 403. (Credit Exclusions: No credit to a student who has taken EECS 477). (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)

CSE 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)

CSE 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)

CSE 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)

CSE 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)

CSE 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)

CSE 592. Foundations of Artificial Intelligence
Advisory Prerequisite: Graduate standing. (4 credits) (Credit Exclusions: No credit to a student who has taken 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)

CSE 593. Human-Computer Interaction
Prerequisite: Graduate standing. (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)

CSE 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)

ECE 596. Master of Engineering Team Project
Prerequisite: Enrollment in the Masters of Engineering program in ECE. (1-6 credits)
To be elected by ECE 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)

CSE 597 (SI 565) (LING 702). Language and Information
Advisory Prerequisite: Background in computation and probability. (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)

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

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

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

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

600 Level Courses

ECE 600 (IOE 600). Function Space Methods in System Theory
Prerequisite: (ECE 551 or MATH 419) or MATH 451. (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)

CSE 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)

ECE 602. Reinforcement Learning Theory  
Prerequisite: None. Advisory Prerequisite: ECE 501. (3 credits)
Basic theories and principles of reinforcement learning, and model-based and model-free reinforcement learning algorithms. Topics: Value iteration, policy iteration, Q-learning, SARSA, policy-gradient, variance reduction, linear and nonlinear function approximation, deep reinforcement learning, exploration-exploitation, convergence analysis, regret analysis. CourseProfile (ATLAS)

ECE 605. Data Science and Machine Learning Design Laboratory  
Advisory Prerequisite: ECE 505 or ECE 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)

ECE 620. Electronic and Optical Properties of Semiconductors
Prerequisite: ECE 520 or ECE 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)

ECE 631. Electromagnetic Scattering
Prerequisite: ECE 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)

ECE 633. Numerical Methods in Electromagnetics 
Prerequisite: ECE 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)

ECE 634 (APPPHYS 611) (Physics 611). Nonlinear Optics
Prerequisite: ECE 530 or ECE 537 or ECE 538, Graduate Standing. (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)

ECE 638 (PHYSICS 542). Quantum Optics
Prerequisite: PHYSICS, 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)

CSE 643 (PSYCH 643). Theory of Neural Computation
Prerequisite: Graduate standing and 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)

CSE 644 (PSYCH 644). Computational Modeling of Cognition
Prerequisite: Graduate standing. (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)

ECE 650. Channel Coding Theory
Prerequisite: ECE 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)

ECE 659. Adaptive Signal Processing
Prerequisite: ECE 559 or ECE 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)

ECE 662 (AEROSP 672) (MECHENG 662). Advanced Nonlinear Control
Prerequisite: ECE 562/AEROSP 551 or MECHENG 648. (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)

CSE 670. Special Topics in Computer Architecture
Advisory Prerequisite: CSE 570, graduate standing, and permission of instructor. (3 credits)
Current topics of interest in computer architecture. This course may be repeated for credit. CourseProfile (ATLAS)

CSE 692. Advanced Artificial Intelligence
Prerequisites: CSE 592 or EECS 492 (C or better, No OP/F). Minimum grade requirement of “C” 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)

CSE 695 (PSYCH 740). Neural Models and Psychological Processes
Prerequisite: Graduate standing and 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)

CSE 698. Master’s Thesis
Prerequisite: Election of a CSE, Master’s Thesis Option. May be elected for a maximum of 6 credit hours. (1-6 credits)
To be elected by CSE 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)

ECE 698. Master’s Thesis
Prerequisite: Election of an ECE master’s thesis option. (1-6 credits)
To be elected by ECE 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)

CSE 699. Research Work in CSE
Prerequisite: Graduate standing, permission of instructor. (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)

ECE 699. Research Work in ECE
Prerequisites: None. (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

ECE 700. Special Topics in System Theory
Prerequisite: Permission of instructor (to be arranged). (1-16 credits)
Special topics of current interest in system theory. CourseProfile (ATLAS)

ECE 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)

ECE 730. Special Topics in Electromagnetics
Prerequisite: Permission of instructor. (1-4 credits)
Special topics of current interest in electromagnetics. CourseProfile (ATLAS)

ECE 735. Special Topics in the Optical Sciences
Prerequisite: Graduate standing and permission of instructor. (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)

ECE 750. Special Topics in Communication and Information Theory
Prerequisite: Permission of instructor. (1-16 credits)
Special topics of current interest related to communication and information theory. CourseProfile (ATLAS)

ECE 755. Special Topics in Signal Processing
Prerequisite: Permission of instructor. (1-4 credits)
Advanced topics in Signal and/or image processing. The specific topics vary with each offering. CourseProfile (ATLAS)

ECE 760. Special Topics in Control Theory
Prerequisite: Permission of instructor.
Special topics of current interest related to control theory. CourseProfile (ATLAS)

ECE 765. Special Topics in Stochastic Systems and Control
Prerequisite: Permission of instructor. (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

ECE 820. Seminar in Solid-State Electronics
Prerequisite: Graduate standing and 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

CSE 990. Dissertation/Pre-Candidate
Prerequisite: Election for dissertation work by doctoral students not yet admitted as a Candidate. (1-8 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)

ECE 990. Dissertation/Pre-Candidate
Prerequisites: None. (1-8 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)

CSE 995. Dissertation/Candidate
Prerequisite: Graduate School authorization for admission as a doctoral candidate. (4-8 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)

ECE 995. Dissertation/Candidate
Prerequisites: None. (4-8 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)