Contact: Betsy Dodge

Undergraduate Registrar

Michigan Engineering

Student Affairs

(734) 647-7117

145A Chrysler

100 Level Courses

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

EECS 183. Elementary Programming Concepts
Prerequisite: none. (Credit for only one: EECS 183, ENGR 101) (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.

200 Level Courses

EECS 203 (CS 203). Discrete Mathematics
Prerequisite: (MATH 115 or 116 or 119 or 120 or 121 or 156 or 175 or 176 or 185 or 186 or 214 or 215 or 216 or 217 or 255 or 256 or 285 or 286 or 295 or 296 or 417 or 419.) Minimum grade of C required for enforced prerequisites.  (4 credits)
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.

EECS 215. Introduction to Electronic Circuits
Prerequisite: MATH 116, ENGR 101, Corequisite PHYSICS 240 (or 260). Cannot receive credit for both EECS 314 and EECS 215. (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.

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

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

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

EECS 270. Introduction to Logic Design
Prerequisite: EECS 183 or ENGR 101 or equivalent. (4 credits)
Binary and non-binary systems, Boolean algebra, digital design techniques, logic gates, logic minimization, standard combinational circuits, sequential circuits, flip-flops, synthesis of synchronous sequential circuits, PLAs, ROMs, RAMs, arithmetic circuits, computer-aided design. Laboratory includes design and CAD experiments.

EECS 280. Programming and Introductory Data Structures
Prerequisite: ENGR 101 or ENGR 151 or EECS 182 or EECS 183. Minimum grade of "C" required for enforced prerequisites. (4 credits)
Techniques and 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.

EECS 281. Data Structures and Algorithms
Prerequisite: EECS 203 or Math 465 or Math 565 and EECS 280. Minimum grade of "C" required for enforced prerequisites. (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.

EECS 282. Information Systems Design and Programming
Prerequisite: EECS 182 or EECS 183 or ENGR 101 AND Math 115. (4 credits)
Techniques for algorithm development and programming. Learning a programming language, such as Java, which is suitable for designing enterprise-scale information systems; data structures including stacks, queues, trees and dictionaries; recursion; program complexity; object-oriented design; handling exceptions, debugging and testing; introduction to database design with JDBC and SQL.

EECS 285. A Programming Language or Computer System
Prerequisite: some programming experience. (2 credits)
A course covering a complex computer system or programming language. Programming problems will be assigned. Specific languages or systems to be offered will be announced in advance.

300 Level Courses

EECS 301. Probabilistic Methods in Engineering
Advised 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.

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.

EECS 312. Digital Integrated Circuits
Prerequisite: EECS 215 and Math 216. (4 credits)
Design and analysis of static CMOS inverters and complex combinational logic gates.  Dynamic logic families, pass-transistor logic, ratioed logic families.  Sequential elements (latches, flip-flops). Bipolar-based logic; ECL, BiCMOS.  Memories; SRAM, DRAM, EEPROM, PLA. I/O circuits and interconnect effects.  Design project(s).

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.

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.

EECS 330. Electromagnetics II
Prerequisite: EECS 230. (4 credits)
Time-varying electromagnetic fields and Maxwell's equations. Plane-wave propagation, reflection and transmission. Geometric optics. Radiation and antennas. System applications of electromagnetic waves. Laboratory segment consists of experiments involving microwave and optical measurements and the design of practical systems.

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.

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

EECS 370. Introduction to Computer Organization
Prerequisite: (EECS 203 or Math 465 or Math 565 or EECS 270) and (EECS 280 or EECS 283). (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.

EECS 373. Design of Microprocessor Based Systems
Prerequisite: EECS 270 and EECS 370 and junior standing. (4 credits)
The principles of hardware and software microcomputer interfacing; digital logic design and implementation.  Experiments with specially designed laboratory facilities.  The introduction to digital development equipment and logic analyzers.  Assembly language programming.

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

EECS 381. Object Oriented and Advanced Programming
Prerequisite: EECS 281 and EECS 370. (4 credits)
Programming techniques in Standard C++ for large-scale, complex, or high-performance software. Encapsulation, automatic memory management, exceptions, generic programming with templates and function objects, Standard Library algorithms and containers.  Using single and multiple inheritance and polymorphism for code reuse and extensibility; basic design idioms, patterns, and notation.

EECS 382. Internet-scale Computing
Prerequisite: EECS 281 or EECS 282. (4 credits)
Systems-level programming techniques and concepts for the design of software systems: computer memory model; pointer safety; concurrent programming using threads; coding vulnerabilities and secure coding; network programming and remote procedure calls; reading/writing objects to disk; client-server and distributed systems. No C++ background assumed. Programming labs in C++.

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

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

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.

400 Level Courses

EECS 402. Computer Programming For Scientists and Engineers 
Prerequisite: Senior or graduate standing (3 credits)
Presents concepts and hands-on experience for designing and writing programs using one or more programming languages currently important in solving real-world problems. Intended for senior undergraduates and graduate students in science or engineering fields. Not available for credit to EECS majors; will not substitute for Eng. 101.

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.

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.

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.

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.

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.

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.

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 analysist. Drive, snubber circuits. Laboratory experience with power electronic circuits.

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 prpulsion drives for electric/hybrid vehicles, generators for wind turbines, and high-speed motor/alternators for flywheel energy storage systems. Laboratory experience with electric drives.

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

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

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.

EECS 427. VLSI Design I
Prerequisite: (EECS 270 and EECS 312 and EECS 320) or graduate standing. (4 credits)
Design techniques for rapid implementations of very large-scale integrated (VLSI) circuits, MOS technology and logic. Structured design. Design rules, layout procedures. Design aids: layout, design rule checking, logic and circuit simulation. Timing. Testability. Architectures for VLSI. Projects to develop and lay out circuits.

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.

EECS 430 (AOSS 431). Radiowave Propagation and Link Design
Prerequisite: EECS 330. (4 credits)
Fundamentals of electromagnetic propagation and radiation; radiowave propagation in different environments (near Earth, troposphere, ionosphere, indoor and urban); antenna parameters; practical antennas; link analysis; system noise; fading and multipath interference. Course includes lectures, labs and a project in which student teams develop and implement practical wireless systems.

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.

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.

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.

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

EECS 442. Computer Vision
Prerequisite: EECS 281 or graduate standing. Minimum grade of "C" required for enforced prerequisites. (4 credits)
This course is an introduction to 2D and 3D computer vision. topics include: cameras models, the geometry of multiple views; shape reconstruction methods from visual cues: stereo, shading, shadow, contours; low-level image processing methodologies such as edge detection, feature detection; mid-level vision techniques (segmentation and clustering); Basic high-level vision problems: face detection, object and scene recognition, object categorization, and human tracking.

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 major GPA of 3.5 or better and are declared CS through LSA.

EECS 445. Introduction to Machine Learning
Prerequisite: EECS 281. (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).

EECS 452. Digital Signal Processing Design Laboratory
Prerequisite: EECS 280, and (EECS 451 or EECS 455) or graduate standing. (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).

EECS 453. Applied Matrix Algorithms for Signal Processing, Data Analysis and Machine Learning
Prerequisite: Enforced: EECS 301 or MATH 425 or STATS 425 or STATS 412 or STATS 426 or IOE 265 or equivalent.  Advisory: EECS 451.  Credit cannot be received for both EECS 453 and EECS 551. (4 credits)
Theory and application of matrix algorithms to signal processing, data analysis and machine learning. Theoretical topics include subspaces, eigenvalue and singular value decomposition, projection theorem, constrained, regularized and unconstrained least squares techniques and iterative algorithms. Applications such as image deblurring, ranking of webpages, image segmentation and compression, social networks, circuit analysis, recommender systems and handwritten digit recognition. Greater emphasis on applications than in EECS 551.

EECS 455. Digital Communication Signals and Systems
Prerequisite: EECS 216 and EECS 301 or graduate standing. (4 credits)
Digital transmission techniques in data communications, with application to computer and space communications; design and detection of digital signals for low error rate; forward and feedback transmission techniques; matched filters; modems, block and convolutional coding; Viterbi decoding. Discussion on Discrete-time LTI systems, Discrete-time Fourier Transforms (DTFT) along with homework problems.

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

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.

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

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.

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

EECS 467. Autonomous Robotics
Prerequisite: EECS 281. (4 credits)
A theoretical and hands-on introduction to robotics from a computer science perspective. Topics: kinematics, inverse kinematics, sensors, sensor processing, motion planning, control, Kalman filters, dynamics, embedded systems, real time operating systems, state estimation and mapping and artificial intelligence methods. Emphasizes laboratory design and programming of robotic systems.

EECS 470. Computer Architecture
Prerequisite: EECS 370 and EECS 270 or graduate standing. (4 credits)
Basic concepts of computer architecture and organization. Computer evolution. Design methodology. Performance evaluation. Elementary queuing models. CPU architecture instruction sets. ALU design. Hardware and micro-programmed control. Nanoprogramming. Memory hierarchies. Virtual memory. Cache design. Input-output architectures. Interrupts and DMA. I/O processors. Parallel processing. Pipelined processors. Multiprocessors.

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.

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

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

EECS 478. Logic Circuit Synthesis and Optimization
Prerequisite: EECS 203, EECS 270, and senior standing or graduate standing. (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.

EECS 480. Logic and Formal Verification
Prerequisite: EECS 281 and (EECS 376 or EECS 270). (4 credits)
An introduction to current methodologies for verifying computer systems. Topics covered include logic and theorem proving; transition systems; temporal logic and the mu-calculus; modeling sequential and concurrent systems; model checking methods; binary decision diagrams; and controlling state explosion. Students will complete a project using current model checking technology.

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

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

EECS 483. Compiler Construction
Prerequisite: EECS 281 and EECS 370 or graduate standing.  Minimum grade of "C" required for enforced prerequisite. (4 credits)
Introduction to compiling techniques including parsing algorithms, semantic processing and optimization. Students implement a compiler for a substantial programming language using a compiler generating system.

EECS 484. Database Management Systems
Prerequisite: EECS 281 or graduate standing in CSE. Minimum grade of "C" required for enforced prerequisite. (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.

EECS 485. Web Systems
Prerequisite: EECS 281 or graduate standing in CSE. Minimum grade of "C" required for enforced prerequisite. (4 credits)
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.

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

EECS 487. Interactive Computer Graphics
Prerequisite: EECS 281 or graduate standing. Minimum grade of "C" for enforced prerequisite. (4 credits)
Computer graphics hardware, line drawing, rasterization, anti-aliasing, graphical user interface (GUI), affine geometry, projective geometry, geometric transformation, polygons, curves, splines, solid models, lighting and shading, image rendering, ray tracing, radiosity, hidden surface removal, texture mapping, animation, virtual reality and scientific visualization.

EECS 489. Computer Networks
Prerequisite: EECS 482 or graduate standing in CSE. Minimum grade of "C" required for enforced prerequisite. (4 credits)
Protocols and architectures of computer networks. Topics include client-server computing, socket programming, naming and addressing, media access protocols, routing and transport protocols, flow and congestion control, and other application-specific protocols. Emphasis is placed on understanding protocol design principles. Programming problems to explore design choices and actual implementation issues assigned.

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

EECS 492. Introduction to Artificial Intelligence
Prerequisite: EECS 281.  Minimum grade of "C" required for enforced prerequisite. (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.

EECS 493. User Interface Development
Prerequisite: EECS 281 or graduate standing in CSE.  Minimum grade of "C" required for enforced prerequisitse. (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.

EECS 494. Computer Game Design and Development
Prerequisite: EECS 281. Minimum grade of "C" required for enforced prerequisite. (4 credits)
Concepts and methods for the design and development of computer games. Topics include: history of games, 2D graphics and animation, sprites, 3D animation, binary space partition trees, software engineering, game design, interactive fiction, user interfaces, artificial intelligence, game SDK's, networking, multi-player games, game development environments, commercialization of software.

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. Each student must take (simultaneously) Tech Comm 496 (2 cr.) and one of the approved 400-level team project courses in computing (4 cr.).

EECS 497. EECS Major Design Projects
Prerequisite: senior standing, EECS 281, EECS 370, Tech Comm 300, and at least four credit hours of Upper Level Electives in either Computer Science or Computer Engineering. (4 credits)
Professional problem-solving methods developed through intensive group studies. Normally one significant design project is chosen for entire class requiring multiple EECS disciplines and teams. Use of analytic, computer, design, and experimental techniques where applicable are used. Projects are often interdisciplinary allowing non-EECS seniors to also take the course (consult with instructor).

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

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

500 Level Courses

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

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

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

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

EECS 504. Foundations of Computer Vision 
Prerequisite: Undergraduate Calculus, Linear Algebra, Probability and Programming. (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.

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

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

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

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

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

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

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

EECS 516 (BIOMEDE 516). Medical Imaging Systems
Prerequisite: EECS 451. (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.

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

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

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

EECS 520. Solid State Physics
Prerequisite: PHYS 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.

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

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.

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.

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

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

EECS 527. Layout Synthesis and Optimization
Prerequisite: EECS 281 or EECS 478 or graduate standing. (3 or 4 credits)
Theory of circuit partitioning, floorplanning and placement algorithms. Techniques for routing and clock tree design. Timing analysis and cycle time optimization. Topics in low-power design. Large-scale optimization heuristics, simulated annealing and AI techniques in CAD. Modern physical design methodologies and CAD software development.

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

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

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

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

EECS 532 (AOSS 587). Microwave Remote Sensing I: Radiometry
Prerequisite: EECS 330, graduate standing. (3 credits)
Radiative transfer theory: blackbody radiation; microwave radiometry; atmospheric propagation and emission; radiometer receivers; surface and volume scattering and emission; applications to meteorology, oceanography and hydrology.

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

EECS 534. Design and Characterization of Microwave Devices and Monolithic Circuits
Prerequisite: graduate standing EECS 421 or EECS 525. (4 credits)
Theory and design of passive and active microwave components and monolithic integrated circuits including: microstrip, lumped inductors and capacitors, GaAs FETs, varactor and mixer diodes, monolithic phase shifters, attenuators, amplifiers and oscillators.
Experimental characterization of the above components using network analyzer, spectrum analyzer, power and noise meters. Lecture and laboratory.

EECS 535. Optical Information Processing
Prerequisite: EECS 334. (3 credits)
Theory of image formation with holography; applications of holography; white light interferometry; techniques for optical digital computing; special topics of current research interest.

EECS 536. Classical Statistical Optics
Prerequisite: EECS 334 or EECS 434, and EECS 301 or MATH 425. (3 credits)
Applications of random variables to optics; statistical properties of light waves. Coherence theory, spatial and temporal. Information retrieval; imaging through inhomogeneous media; noise processes in imaging and interferometric systems.

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

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

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

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

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

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

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

EECS 545. Machine Learning
Prerequisite: EECS 492. (3 credits)
Survey of recent research on learning in artificial intelligence systems. Topics include learning based on examples, instructions, analogy, discovery, experimentation, observation, problem-solving and explanation. The cognitive aspects of learning will also be studied.

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

EECS 547 (SI 652). Electronic Commerce
Prerequisites: EECS 281 or SI 502 or permission of instructor. (3 credits)
Introduction to the design and analysis of automated commerce systems, from both a technological and social perspective. Infrastructure supporting search for commerce opportunities, negotiating terms of trade and executing transactions. Issues of security, privacy, incentives and strategy.

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

EECS 549 (SI 650). Information Retrieval
Advised Prerequisites: EECS 502 or equivalent. (3 credits) 
Information retrieval studies the interaction between users and large information environments.  An in-depth survey of the field from classic concepts to state-of-the-art applications such as crawlers and spiders.  Topics include information need, documents and queries, indexing and searching, retrieval evaluation, multimedia ans hypertext search, Web search, and bibliographical databases.

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

EECS 551. Matrix Methods for Signal Processing, Data Analysis and Machine Learning
Prerequisite: EECS 451 or graduate Standing. Credit cannot be received for both EECS 453 and 551. (4 credits)
Theory and application of matrix methods to signal processing, data analysis and machine learning. Theoretical topics include subspaces, eigenvalue and singular value decomposition, projection theorem, constrained, regularized and unconstrained least squares techniques and iterative algorithms. Applications such as image deblurring, ranking of webpages, image segmentation and compression, social networks, circuit analysis, recommender systems and handwritten digit recognition. Applications and theory are covered in greater depth than in EECS 453.

EECS 552 (APPPHYS 552). Fiber Optics: Internet to Biomedical Applications
Prerequisite: Any one of EECS 334, EECS 429, EECS 434, EECS 529, EECS 537, EECS 538, EECS 539 or permission of instructor. (3 credits)
This course covers the basics of fibers and applications in fields as diverse as highpower 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.

EECS 553. Theory and Practice of Data Compression
Prerequisite: EECS 501. (3 credits)
Introduction to lossy and lossless source coding for data compression. Techniques: scalar and vector quantization; transform and differential coding; variable-length, Lempel-Ziv and arithmetic lossless coding. Theory: entropy for lossless coding; high-resolution theory for lossy coding. Particular attention to compression of images (JPEG), video (MPEG), speech (CELP) and audio (MP3). (A project is asigned.)

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

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

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

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

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

EECS 559. Advanced Signal Processing
Prerequisite: EECS 551 and EECS 501. (3 credits)
Estimators of second order properties of random processes: nonparametric and model-based techniques of spectral estimation, characterization of output statistics for nonlinear systems, time-frequency representations. Performance evaluation using asymptotic techniques and Monte Carlo simulation. Applications include speech processing, signal extrapolation, multidimensional spectral estimation, and beamforming.

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

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

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

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

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

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

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

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

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

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.

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.

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.

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

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

EECS 578. Correct Operation for Processors and Embedded Systems
Prerequisite: EECS 470 or graduate standing or permission of instructor. Minimum grade required for course enforced prerequisite is C. (4 credits)
Graduate-lvel 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.

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.

EECS 580. Advanced Computer Graphics
Prerequisite: EECS 487 (or equivalent) or graduate standing. (4 credits)
Geometric modeling: spline curves and surfaces, subdivision surfaces, polygonal meshes, point-based and implicit surfaces. Real-time rendering: fixed and programmable pipeline, shadows. Acceleration algorithms: culling and level-of-detail. Collision detection. Delaunary triangulations and Voronoi diagrams. Non-photorealistic rendering. Pattern synthesis. Image-based rendering.

EECS 581. Software Engineering Tools
Prerequisite: EECS 481 or equivalent programming experience. (3 credits)
Fundamental areas of software engineering including life-cycle-paradigms, metrics and tools. Information hiding architecture, modular languages, design methodologies, incremental programming and very high level languages.

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

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

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

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

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

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

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

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

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

EECS 592. Foundations of Artificial Intelligence
Advised prerequisite: Graduate standing. (4 credits)
An advance introduction to AI emphasizing its theoretical underpinnings.  Topics include search, logic, knowledge representation, reasoning planning, decision making under uncertainty, and machine learning.`

EECS 594. Introduction to Adaptive Systems
Prerequisite: EECS 203, MATH 425 (Stat 425). (3 credits)
Programs and automata that "learn" by adapting to their environment; programs that utilize genetic algorithms for learning. Samuel's strategies, realistic neural networks, connectionist systems, classifier systems and related models of cognition. Artificial intelligence systems, such as NETL and SOAR, are examined for their impact upon machine learning and cognitive science.

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

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

EECS 597 (SI 760) (LING 702). Language and Information
Advised Prerequisite: EECS 380 or concurrent election of one of SI 503 or LING 541; and Graduate Standing. (3 credits)
This course introduces a body of quantitative techniques for modeling and analyzing natural language and for extracting useful information from texts.  The theory includeds 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.

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

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

600 Level Courses

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

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

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.

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

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

EECS 632. Microwave Remote Sensing II - Radar
Prerequisite: EECS 532. (3 credits)
Radar equation; noise statistics; resolution techniques; calibration; synthetic aperture radar; scatterometers; scattering models; surface and volume scattering; land and oceanographic applications.

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

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

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

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

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

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

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

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

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

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

EECS 682. Special Topics in Software Systems
Prerequisite: permission of instructor. (3 credits)
Current topics of interest in software systems. This course may be repeated for credit.

EECS 684. Current Topics in Databases
Prerequisite: EECS 484. (3 credits)
Research issues in database systems chosen for in-depth study. Selected topics such as spatial, temporal, or real-time databases; data mining, data warehousing or other emerging applications. Readings from recent research papers. Group projects.

EECS 691. Mobile Computing
Prerequisite: EECS 582 or EECS 589 or EECS 591 or equivalent. (3 credits)
In-depth study of research issues in mobile and pervasive computing systems. Topics include location and context awareness, mobile data access, resource management, consistency protocols, mobile and ad hoc networking, networked sensors, security and privacy.

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

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

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

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

700 Level Courses

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

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

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

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

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

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

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

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

EECS 767 (SI 767). Advanced Natural Language Processing and Information Retrieval
Prerequisite: SI 661, SI 761, or SI 760 or permission of instructor. (3 credits)
This course covers recent research in the areas of Computational Linguistics.  Natural Language Processing and Information Retrieval.  Given that a relevant textbook doesn't exist, the course reading list will include a large number of recent papers.

EECS 770. Special Topics in Computer Systems
Prerequisite: permission of instructor. (to be arranged)

EECS 792. Special Topics in Artificial Intelligence 
Prerequisite: Graduate standing. (3 credits)
Research issues in artificial intelligence chosen for in-depth study.  Selected topics such as computational decision-making, knowledge representation, planning, design, multi-agent systems, cognitive architectures, AI in the arts, and rationality.  Readings from recent research papers.

800 Level Courses

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

EECS 892. Seminar in Artificial Intelligence
Prerequisite: EECS 592 or equivalent. (2 credits)
Advanced graduate seminar devoted to discussing current research papers in artificial intelligence. The specific topics vary each time the course is offered.

900 Level Courses

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

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