header-about

EECS Course Descriptions

EECS 132. Introduction to Programming in Java (3)
Introduction to computer programming and problem solving with the Java language. Computers, operating systems, and Java applications; software development; conditional statements; loops; methods; arrays; classes and objects; object-oriented design; unit testing; strings and text I/O; inheritance and polymorphism; GUI components; application testing; abstract classes and intLimiterfaces; exception handling; files and streams; GUI event handling; generics; collections; threads; comparison of Java to C, C++, and C#.

EECS 216. Fundamental System Concepts (3)
Develops framework for addressing problems in science and engineering that require an integrated, interdisciplinary approach, including the effective management of complexity and uncertainty. Introduces fundamental system concepts in an integrated framework. Properties and behavior of phenomena regardless of the physical implementation through a focus on the structure and logic of information flow. Systematic problem solving methodology using systems concepts. Recommended preparation: MATH 224.


EECS 233. Introduction to Data Structures (4)
The programming language Java; pointers, files, and recursion. Representation and manipulation of data: one way and circular linked lists, doubly linked lists; the available space list. Different representations of stacks and queues. Representation of binary trees, trees and graphs. Hashing; searching and sorting. Laboratory. Prereq: ENGR 132.


EECS 245. Electronic Circuits (4)
Analysis of time-dependent electrical circuits. Dynamic waveforms and elements: inductors, capacitors, and transformers. First- and second-order circuits, passive and active. Analysis of sinusoidal steady state response using phasors. Laplace transforms and pole-zero diagrams. S-domain circuit analysis. Two-port networks, impulse response, and transfer functions. Introduction to nonlinear semiconductor devices: diodes, BJTs, and FETs. Gain-bandwidth product, slew-rate and other limitations of real devices. SPICE simulation and laboratory exercises reinforce course materials. Prereq: ENGR 210. Prereq or Coreq: MATH 224.


EECS 246. Signals and Systems (4)
The sinusoidal steady state and phasor analysis. Bode plots and their relationship to the frequency domain representation of signals. Gain-bandwidth product, slew-rate and other limitations of real devices. Filter design. Frequency domain considerations including Fourier series and Fourier transforms. Sampling theorem. The Discrete Fourier Transform. The z-transform and digital signal processing. Accompanying laboratory exercises which reinforce classroom lectures. Prereq: ENGR 210. Prereq or Coreq: MATH 224.


EECS 251. Numerical Methods (3)
Introduction to basic concepts and algorithms used in the numerical solution of common problems including solving non-linear equations, solving systems of linear equations, interpolation, fitting curves to data, integration and solving ordinary differential equations. Computational error and the efficiency of various numerical methods are discussed in some detail. Most homework requires the implementation of numerical methods on a computer. Recommended preparation: ENGR 131 and MATH 122.


EECS 281. Logic Design and Computer Organization (4)
Fundamentals of digital systems in terms of both computer organization and logic level design. Organization of digital computers; information representation; boolean algebra; analysis and synthesis of combinational and sequential circuits; datapaths and register transfers; instruction sets and assembly language; input/output and communication; memory. Prereq: ENGR 131 or EECS 132.


EECS 290. Introduction to Computer Game Design and Implementation (3)
This class begins with an examination of the history of video games and of game design. Games will be examined in a systems context to understand gaming and game design fundamentals. Various topics relating directly to the implementation of computer games will be introduced including graphics, animation, artificial intelligence, user interfaces, the simulation of motion, sound generation, and networking. Extensive study of past and current computer games will be used to illustrate course concepts. Individual and group projects will be used throughout the semester to motivate, illustrate and demonstrate the course concepts and ideas. Group game development and implementation projects will culminate in classroom presentation and evaluation. Prereq: EECS 132.

EECS 293. Software Craftsmanship (4)
A course to improve programming skills, software quality, and the software development process. Software design; Version control; Control issues and routines; Pseuodo-code programming process and developer testing; Defensive programming; Classes; Debugging; Self-documenting code; Refactoring. Prereq: EECS 233.

EECS 296. Independent Projects (1 - 3) Independent projects in Computer Engineering, Computer Science, Electrical Engineering and Systems and Control Engineering. Recommended Preparation: ENGR 131 or EECS 132. Prereq: Limited to freshmen and sophomore students.

EECS 297. Special Topics (1 - 3)
Special topics in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Limited to freshmen and sophomore students. Prereq: Limited to freshmen and sophomores.


EECS 301. Digital Logic Laboratory (2)
This course is an introductory experimental laboratory for digital networks. The course introduces students to the process of design, analysis, synthesis and implementation of digital networks. The course covers the design of combinational circuits, sequential networks, registers, counters, synchronous/asynchronous Finite State Machines, register based design, and arithmetic computational blocks. Prereq: EECS 281.


EECS 302. Discrete Mathematics (3)
A general introduction to basic mathematical terminology and the techniques of abstract mathematics in the context of discrete mathematics. Topics introduced are mathematical reasoning, Boolean connectives, deduction, mathematical induction, sets, functions and relations, algorithms, graphs, combinatorial reasoning. Offered as EECS 302 and MATH 304. Prereq: MATH 122 or MATH 124 or MATH 126.


EECS 304. Control Engineering I with Laboratory (3)

Analysis and design techniques for control applications. Linearization of nonlinear systems. Design specifications. Classical design methods: root locus, bode, nyquist. PID, lead, lag, lead-lag controller design. State space modeling, solution, controllability, observability and stability. Modeling and control demonstrations and experiments single-input/single-output and multivariable systems. Control system analysis/design/implementation software.

The course will incorporate the use of Grand Challenges in the areas of Energy Systems, Control Systems, and Data Analytics in order to provide a framework for problems to study in the development and application of the concepts and tools studied in the course. Various aspects of important engineering skills relating to leadership, teaming, emotional intelligence, and effective communication are integrated into the course.Prereq: EECS 246 or equivalent.


EECS 305. Control Engineering I Laboratory (1)
A laboratory course based on the material in EECS 304. Modeling, simulation, and analysis using MATLAB. Physical experiments involving control of mechanical systems, process control systems, and design of PID controllers. Recommended preparation: EECS 212 or equivalent and EECS 304.


EECS 306. Control Engineering II with Laboratory (3)
Advanced techniques for control of dynamic systems. State-space modeling, analysis, and controller synthesis; introduction to nonlinear control systems: phase plane methods, bang-bang control, time-optimal control; describing functions analysis and design techniques; discrete time systems and controllers. Advanced control design methods implementation. Recommended preparation: EECS 304.


EECS 309. Electromagnetic Fields I (3)
Maxwell’s integral and differential equations, boundary conditions, constitutive relations, energy conservation and Pointing vector, wave equation, plane waves, propagating waves and transmission lines, characteristic impedance, reflection coefficient and standing wave ratio, in-depth analysis of coaxial and strip lines, electro- and magneto-quasistatics, simple boundary value problems, correspondence between fields and circuit concepts, energy and forces. Prereq: PHYS 122. Prereq or Coreq: MATH 224.


EECS 310. Electromechanical Energy Conversion (4)
Electromechanical dynamics, modeling and control. Forces in quasistatic magnetic systems. Energy conversion properties of rotating machines. Analysis and control of DC servomotors, AC servomotors, reluctance machines, inductance machines, and magnetic bearing. Analysis of electromagnetic sensors. Electronic communication, torque linearization through computer controls and flux-vector control. Electromechanical properties are measured in the lab and high-performance controls are constructed and tested. Recommended preparation: EECS 309.


EECS 311. Electromagnetic Fields II (3)
Boundary value problems, guided electromagnetic waves, rectangular and circular waveguides, strip lines, losses in waveguiding structures, scattering, wave optics and wave propagation in anisotropic media, ferrites and plasmas, resonant systems, cavities, microwave networks, multiport networks, scattering matrix formulation, radiation and antennas, radiation from dipoles, apertures and simple arrays. Recommended preparation: EECS 309.

EECS 312. Introduction to Electric Power Systems (3)
This course is intended to be an introduction to three-phase electric power systems. Modeling of system components including generators, transformers, loads, transmission lines. The per-unit system. One-line diagrams and equivalent circuits. Real and reactive power. Phasor diagrams. Voltage and frequency regulation. Load-flow analysis. Short-circuit calculations. Fault analysis using the techniques of symmetrical component analysis.


EECS 313. Signal Processing (3)

Fourier series and transforms. Analog and digital filters. Fast-Fourier transforms, sampling, and modulation for discrete time signals and systems. Consideration of stochastic signals and linear processing of stochastic signals using correlation functions and spectral analysis.

The course will incorporate the use of Grand Challenges in the areas of Energy Systems, Control Systems, and Data Analytics in order to provide a framework for problems to study in the development and application of the concepts and tools studied in the course. Various aspects of important engineering skills relating to leadership, teaming, emotional intelligence, and effective communication are integrated into the course.Prereq: EECS 246.


EECS 314. Computer Architecture (3)
This course provides students the opportunity to study and evaluate a modern computer architecture design. The course covers topics in fundamentals of computer design, performance, cost, instruction set design, processor implementation, control unit, pipelining, communication and network, memory hierarchy, computer arithmetic, input-output, and an introduction to RISC and super-scalar processors. Prereq: EECS 281.


EECS 315. Digital Systems Design (4)
This course gives students the ability to design modern digital circuits. The course covers topics in logic level analysis and synthesis, digital electronics: transistors, CMOS logic gates, CMOS lay-out, design metrics space, power, delay. Programmable logic (partitioning, routing), state machine analysis and synthesis, register transfer level block design, datapath, controllers, ASM charts, microsequencers, emulation and rapid protyping, and switch/logic-level simulation. Prereq: EECS 281.


EECS 316. Computer Design (3)
Methodologies for systematic design of digital systems with emphasis on programmable logic implementations and prototyping. Laboratory which uses modern design techniques based on hardware description languages such as VHDL, CAD tools, and Field Programmable Gate Arrays (FPGAs). Prereq: EECS 281, EECS 315.


EECS 318. VLSI/CAD (4)
With Very Large Scale Integration (VLSI) technology there is an increased need for Computer-Aided Design (CAD) techniques and tools to help in the design of large digital systems that deliver both performance and functionality. Such high performance tools are of great importance in the VLSI design process, both to perform functional, logical, and behavioral modeling and verification to aid the testing process. This course discusses the fundamentals in behavioral languages, both VHDL and Verilog, with hands-on experience. Prereq: EECS 281, EECS 315.


EECS 319. Applied Probability and Stochastic Processes for Biology (3)
Applications of probability and stochastic processes to biological systems. Mathematical topics will include: introduction to discrete and continuous probability spaces (including numerical generation of pseudo random samples from specified probability distributions), Markov processes in discrete and continuous time with discrete and continuous sample spaces, point processes including homogeneous and inhomogeneous Poisson processes and Markov chains on graphs, and diffusion processes including Brownian motion and the Ornstein-Uhlenbeck process. Biological topics will be determined by the interests of the students and the instructor. Likely topics include: stochastic ion channels, molecular motors and stochastic ratchets, actin and tubulin polymerization, random walk models for neural spike trains, bacterial chemotaxis, signaling and genetic regulatory networks, and stochastic predator-prey dynamics. The emphasis will be on practical simulation and analysis of stochastic phenomena in biological systems. Numerical methods will be developed using both MATLAB and the R statistical package. Student projects will comprise a major part of the course. Offered as BIOL 319, EECS 319, MATH 319, BIOL 419, EBME 419, and PHOL 419. Prereq: MATH 224 or MATH 223 and BIOL 300 or BIOL 306 and MATH 201 or MATH 307 or consent of instructor.


EECS 321. Semiconductor Electronic Devices (4)
Energy bands and charge carriers in semiconductors and their experimental verifications. Excess carriers in semiconductors. Principles of operation of semiconductor devices that rely on the electrical properties of semiconductor surfaces and junctions. Development of equivalent circuit models and performance limitations of these devices. Devices covered include: junctions, bipolar transistors, Schottky junctions, MOS capacitors, junction gate and MOS field effect transistors, optical devices such as photodetectors, light-emitting diodes, solar cells and lasers. Laboratory experiments to characterize some of the above devices. Recommended preparation: EECS 309.


EECS 322. Integrated Circuits and Electronic Devices (3)
Technology of monolithic integrated circuits and devices, including crystal growth and doping, photolithography, vacuum technology, metalization, wet etching, thin film basics, oxidation, diffusion, ion implantation, epitaxy, chemical vapor deposition, plasma processing, and micromachining. Basics of semiconductor devices including junction diodes, bipolar junction transistors, and field effect transistors. Recommended preparation: EECS 321.


EECS 324. Simulation Techniques in Engineering (3)
This course examines the computer-based modeling and simulation of continuous dynamical system behavior in a variety of systems including electric power systems, industrial control systems, and signal processing that are represented by a set of differential equations need to be solved numerically in order to compute and represent their behavior for study. In addition to these applications, there are many other important applications of these tools in computer games, virtual worlds, weather forecasting, and population models, to name a few examples. Numerical integration techniques are developed to perform these computations. Multiple computational engines such as Matlab, Simulink, Unity, and physics engines etc. are also examined as examples of commonly used software to solve for and visualize continuous-time system behavior.  

The course will incorporate the use of Grand Challenges in the areas of Energy Systems, Control Systems, and Data Analytics in order to provide motivation and a framework for problems to study in the development and application of the concepts and tools studied in the course. Various aspects of important engineering skills relating to leadership, teaming, emotional intelligence, and effective communication are integrated into the course.Prereq: MATH 224.


EECS 325. Computer Networks I (3)
An introduction to computer networks and the Internet. Applications: http, ftp, e-mail, DNS, socket programming. Transport: UDP, TCP, reliable data transfer, and congestion control. Network layer: IP, routing, and NAT. Link layer: taxonomy, Ethernet, 802.11. Prereq: EECS 233 and junior standing.


EECS 326. Instrumentation Electronics (3)
A second course in instrumentation with emphasis on sensor interface electronics. General concepts in measurement systems, including accuracy, precision, sensitivity, linearity, and resolution. The physics and modeling of resistive, reactive, self-generating, and direct-digital sensors. Signal conditioning for same, including bridge circuits, coherent detectors, and a variety of amplifier topologies: differential, instrumentation, charge, and transimpedance. Noise and drift in amplifiers and resistors. Practical issues of interference, including grounding, shielding, supply/return, and isolation amplifiers. Prereq: ENGR 210 and EECS 246 or EBME 308 or EMAE 350.


EECS 337. Compiler Design (4)
Design and implementation of compilers and other language processors. Scanners and lexical analysis; regular expressions and finite automata; scanner generators; parsers and syntax analysis; context free grammars; parser generators; semantic analysis; intermediate code generation; runtime environments; code generation; machine independent optimizations; data flow and dependence analysis. There will be a significant programming project involving the use of compiler tools and software development tools and techniques. Prereq: EECS 233 and EECS 281.


EECS 338. Introduction to Operating Systems and Concurrent Programming (4)
Intro to OS: OS Structures, processes, threads, CPU scheduling, deadlocks, memory management, file system implementations, virtual machines, cloud computing. Concurrent programming: fork, join, concurrent statement, critical section problem, safety and liveness properties of concurrent programs, process synchronization algorithms, semaphores, monitors.  UNIX systems programming: system calls, UNIX System V IPCs, threads, RPCs, shell programming. Pre-requisite: EECS 233.


EECS 339. Web Data Mining (3)
Web crawling technology, web search and information extraction, unsupervised and semi-supervised learning techniques and their application to web data extraction, social network analysis, various pagerank algorithms, link analysis, web resource discovery, web, resource description framework (RDF), XML, Web Ontology Language (OWL). Prereq: EECS 338, EECS 341 and either EECS 302 or MATH 304.


EECS 340. Algorithms (3)

Fundamentals in algorithm design and analysis. Loop invariants, asymptotic notation, recurrence relations, sorting algorithms, divide-and-conquer, dynamic programming, greedy algorithms, elementary graph algorithms. Prereq: EECS 233 and (EECS 302 or MATH 304).


EECS 341. Introduction to Database Systems (3)
Relational model, ER model, relational algebra and calculus, SQL, OBE, security, views, files and physical database structures, query processing and query optimization, normalization theory, concurrency control, object relational systems, multimedia databases, Oracle SQL server, Microsoft SQL server. Prereq: EECS 233 and either EECS 302 or MATH 304.


EECS 342. Introduction to Global Issues (3)
This systems course is based on the paradigm of the world as a complex system. Global issues such as population, world trade and financial markets, resources (energy, water, land), global climate change, and others are considered with particular emphasis put on their mutual interdependence. A reasoning support computer system which contains extensive data and a family of models is used for future assessment. Students are engaged in individual, custom-tailored, projects of creating conditions for a desirable or sustainable future based on data and scientific knowledge available. Students at CWRU will interact with students from fifteen universities that have been strategically selected in order to give global coverage to UNESCO’S Global-problematique Education Network Initiative (GENIe) in joint, participatory scenario analysis via the internet.


EECS 343. Theoretical Computer Science (3)
Introduction to mathematical logic, different classes of automata and their correspondence to different classes of formal languages, recursive functions and computability, assertions and program verification, denotational semantics. MATH/EECS 343 and MATH 410 cannot both be taken for credit. Offered as EECS 343 and MATH 343. Prereq: EECS 302 or MATH 304.


EECS 344. Electronic Analysis and Design (3)
The design and analysis of real-world circuits. Topics include: junction diodes, non-ideal op-amp models, characteristics and models for large and small signal operation of bipolar junction transistors (BJTs) and field effect transistors (FETs), selection of operating point and biasing for BJT and FET amplifiers. Hybrid-pi model and other advanced circuit models, cascaded amplifiers, negative feedback, differential amplifiers, oscillators, tuned circuits, and phase-locked loops. Computers will be extensively used to model circuits. Selected experiments and/or laboratory projects. Recommended preparation: EECS 245.


EECS 345. Programming Language Concepts (3)
This course examines the four main programming paradigms: imperative, object-oriented, functional, and logical. it is assumed that students will come to the course with significant exposure to imperative programming. The course will teach the functional paradigm in depth, enhance the students' knowledge of the object-oriented and imperative paradigms, and introduce the logical paradigm. The course will explore language syntax, semantics, names/scopes, types, expressions, assignment, subprograms, abstraction and inheritance. This exploration will have several forms. Students will study the programming language concepts at a theoretical level, use the concepts in functional language programming, and implement the concepts by designing language interpreters. Pre-requisites: EECS 233 and (EECS 302 or MATH 304). 


EECS 346. Engineering Optimization (3)

Optimization techniques including linear programming and extensions; transportation and assignment problems; network flow optimization; quadratic, integer, and separable programming; geometric programming; and dynamic programming. Nonlinear optimization topics: optimality criteria, gradient and other practical unconstrained and constrained methods. Computer applications using engineering and business case studies.

The course will incorporate the use of Grand Challenges in the areas of Energy Systems, Control Systems, and Data Analytics in order to provide a framework for problems to study in the development and application of the concepts and tools studied in the course. Various aspects of important engineering skills relating to leadership, teaming, emotional intelligence, and effective communication are integrated into the course. Recommended preparation: MATH 201.


EECS 350. Operations and Systems Design (3)
Introduction to design, modeling, and optimization of operations and scheduling systems with applications to computer science and engineering problems. Topics include, forecasting and time series, strategic, tactical, and operational planning, life cycle analysis, learning curves, resources allocation, materials requirement and capacity planning, sequencing, scheduling, inventory control, project management and planning. Tools for analysis include: multi-objective optimization, queuing models, simulation, and artificial intelligence.


EECS 351. Communications and Signal Analysis (3)
Fourier transform analysis and sampling of signals. AM, FM and SSB modulation and other modulation methods such as pulse code, delta, pulse position, PSK and FSK. Detection, multiplexing, performance evaluation in terms of signal-to-noise ratio and bandwidth requirements. Prereq: EECS 246.


EECS 352. Engineering Economics and Decision Analysis (3)

Economic analysis of engineering projects, focusing on financial decisions concerning capital investments. Present worth, annual worth, internal rate of return, benefit/cost ratio. Replacement and abandonment policies, effects of taxes, and inflation. Decision making under risk and uncertainty. Decision trees. Value of information.

The course will incorporate the use of Grand Challenges in the areas of Energy Systems, Control Systems, and Data Analytics in order to provide a framework for problems to study in the development and application of the concepts and tools studied in the course. Various aspects of important engineering skills relating to leadership, teaming, emotional intelligence, and effective communication are integrated into the course.


EECS 354. Digital Communications (3)
Fundamental bounds on transmission of information. Signal representation in vector space. Optimum reception. Probability and random processes with application to noise problems, speech encoding using linear prediction. Shaping of base-band signal spectra, correlative coding and equalization. Comparative analysis of digital modulation schemes. Concepts of information theory and coding. Applications to data communication. Prereq: EECS 246.


EECS 359. Bioinformatics in Practice (3)
This course covers basic computational methods of organizing and analyzing biological data, targeting senior and junior level students from both mathematical/computational sciences and life sciences. The aim of the course is to provide the students with basic skills to be able to understand molecular biology data and associated abstractions (sequences, structure, gene expression, molecular network data), access to available resources (public databases, computational tools on the web). Implement basic computational methods for biological data analysis, and use understanding of these methods to solve other problems that arise in biological data analysis. Topics covered include DNA and protein sequence databases, pairwise sequence alignment and sequence search (dynamic programming, BLAST), multiple sequence alignment (HMMs, CLUSTAL-W), sequence clustering, motif finding, pattern matching, phylogenetic analysis (tree reconstruction, neighbor joining, maximum parsimony, maximum likelihood), gene finding, functional annotation, biological ontologies, analysis of gene expression data, and network biology (protein protein interactions, topology, modularity). Junior or Senior standing.


EECS 360. Manufacturing and Automated Systems (3)
Formulation, modeling, planning, and control of manufacturing and automated systems with applications to computer science and engineering problems. Topics include, design of products and processes, location/spatial problems, transportation and assignment, product and process layout, group technology and clustering, cellular and network flow layouts, computer control systems, reliability and maintenance, and statistical quality control. Tools and analysis include: multi-objective optimization, artificial intelligence, and heuristics for combinatorial problems. Offered as EECS 360 and EECS 460.


EECS 365. Complex Systems Biology (3)
Complex Systems Biology is an interdisciplinary course based on systems science, engineering, biology, and medicine. The objective is to provide students with an understanding of the current state of systems biology and major challenges ahead. The biological phenomena across the level of complexity will be considered from molecular to organisms and ecology to provide universality of the systems concepts for understanding the functions and behavior of biological systems. Case studies are used and a course project is required to be completed. Prereq: Junior Standing.


EECS 366. Computer Graphics (3)
Theory and practice of computer graphics: Basic elements of a computer graphics rendering pipeline. Fundamentals of input and display devices. Geometrical transformations and their matrix representations. Homogeneous coordinates, projective and perspective transformations. Algorithms for clipping, hidden surface removal, and anti-aliasing. Rendering algorithms: introduction to local and global shading models, color, and lighting models for reflection, refraction, transparency. Real-time rendering methods and animation. Prereq: EECS 233.


EECS 370. Intelligent Networks and Systems (3)
This course covers the development of the next-generation intelligent networks. It involves an in-depth study of design, planning, optimization, and analysis for communications information networks. It will include design and optimization of telecommunication networks and protocols. The course provides applications of Artificial Intelligence methodologies including mathematical learning, neural networks, clustering, modeling and automating human decision making process, and mobile agents to the design of intelligent networks. There will be weekly homework/reading assignments, some presentations by students, and a large project. Offered as EECS 370 and EECS 470.

EECS 371. Applied Circuit Design (4)
This course will consist of lectures and lab projects designed to provide students with an opportunity to consolidate their theoretical knowledge of electronics and to acquaint them with the art and practice of circuit and product design. The lectures will cover electrical and electronic circuits and many electronic and electrical devices and applications. Examples include mixed-signal circuits, power electronics, magnetic and piezo components, gas discharge devices, sensors, motors and generators, and power systems. In addition, there will be discussion of professional topics such as regulatory agencies, manufacturing, testing, reliability, and product cost. Weekly labs will be true "design" opportunities representing real-world applications. A specification or functional description will be provided, and the students will design the circuit, select all components, construct a breadboard, and test. The objective will be functional, pragmatic, cost-effective designs. Prereq: EECS 245.
 

EECS 374. Advanced Control and Energy Systems (3)
This course introduces applied quantitative robust and nonlinear control engineering techniques to regulate automatically renewable energy systems in general and wind turbines in particular. The course also studies the fundamentals for dynamic multidisciplinary modeling and analysis of large multi-megawatt wind turbines (mechanics, aerodynamics, electrical systems, control concepts, etc.). The course combines lecture sessions and lab hours. The 400-level includes an experimental lab competition, where the object is to design, implement, and experimentally validate a control strategy to regulate a real system in the laboratory (helicopter control competition or similar); it will also include additional project design reports. Offered as EECS 374 and EECS 474. Prereq: EECS 304.

EECS 375 Applied Control (3)
This course provides a practical treatment of the study of control engineering systems. It emphasizes best practices in industry so that students learn what aspects of plant and control system design are critical. The course develops theory and practice for digital computer control systems; PID controller design (modes, forms and tuning methods); Control structure design (feed-forward, cascade control, predictive control, disturbance observers, multi-loop configurations, multivariable control); Actuators, sensors and common loops; Dynamic performance evaluation; and some advanced control techniques (quantitative robust control, gain-scheduling and adaptive control) to achieve a good performance over a range of operating conditions. Offered as EECS 375 and EECS 475. Prereq: EECS 304. Recommended preparation: EECS 374 or EECS 474.

EECS 376. Mobile Robotics (4)
Design of software systems for mobile robot control, including: motion control; sensory processing; localization and mapping; mobile-robot planning and navigation; and implementation of goal-directed behaviors. The course has a heavy lab component involving a sequence of design challenges and competitions performed in teams. Prereq: ENGR 131 or EECS 233.

EECS 381. Hybrid Systems (3)
Today, the most interesting computer code and microprocessor designs are "embedded" and hence interact with the physical world, producing a mixture of digital and analog domains. The class studies an array of tools for understanding and designing these "hybrid systems." Topics include: basics of language and finite state automata theory, discrete-event dynamic systems, Petri nets, timed and hybrid automata, and hybrid dynamical systems. Simulation, verification, and control concepts and languages for these models. Prereq: MATH 224 and either EECS 246 or EECS 302 or MATH 304.

EECS 382. Microprocessor-Based Design (3) (Last Taught: Fall 2004)
Microprocessor architectures, memory design, timing, polled and interrupt driven I/O, microprocessor support devices, microcontrollers, integrated hardware/software design considerations. Recommended preparation: ENGR 210 and EECS 281.

EECS 390. Advanced Game Development Project (3)
This game development project course will bring together an interdisciplinary group of advanced undergraduate students in the fields of Electrical Engineering and Computer Science, Art, Music, and English to focus on the design and development of a complete, fully-functioning computer game (as an interdisciplinary team). The student teams are given complete liberty to design their own fully functional games from their original concept to a playable finished product, i.e., from the initial idea through to the wrapped box. The student teams will experience the entire game development cycle as they execute their projects. Responsibilities include creating a game idea, writing a story, developing the artwork, designing characters, implementing music and sound effects, programming and testing the game, and documenting the entire project. Recommended preparation: Junior or Senior standing and consent of instructor.


EECS 391. Introduction to Artificial Intelligence (3)
This course is an introduction to artificial intelligence.  We will study the concepts that underlie intelligent systems.  Topics covered include problem solving with search, constraint satisfaction, adversarial games, knowledge representation and reasoning using propositional and first order logic, reasoning under uncertainty, introduction to machine learning, automated planning, reinforcement learning and natural language processing.   Recommended: basic knowledge of probability and statistics. Prerequisite: ENGR 131/EECS 132.


EECS 393. Software Engineering (3)
Topics: Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; programming practices; software validation techniques; software maintenance practices; software engineering ethics. Undergraduates work in teams to complete a significant software development project. Graduate students are required to complete a research project. Offered as EECS 393 and EECS 493. Pre-requisite: EECS 233. Counts as SAGES Senior Capstone.

 

EECS 394. Introduction to Information Theory (3)
This course is intended as an introduction to information and coding theory with emphasis on the mathematical aspects.  It is suitable for advanced undergraduate and graduate students in mathematics, applied mathematics, statistics, physics, computer science and electrical engineering.Course content: Information measures-entropy, relative entropy, mutual information, and their properties.  Typical sets and sequences. asymptotic equipartition property, data compression.  Channel coding and capacity: channel coding theorem.  Differential entropy, Gaussian channel, Shannon-Nyquist theorem. Information theory inequalities (400 level). Additional topics, which may include compressed sensing and elements of quantum information theory. Recommended Preparation: MATH 201 or MATH 307. Offered as MATH 394, EECS 394, MATH 494 and EECS 494. Prereq: MATH 223 and MATH 380 or requisites not met permission.

 

EECS 395. Senior Project in Computer Science (4)
Capstone course for computer science (BS major) seniors. Material from previous and concurrent courses used to solve computer programming problems and to develop software systems. Professional engineering topics such as project management, engineering design, communications, and professional ethics. Requirements include periodic reporting of progress, plus a final oral presentation and written report. Scheduled formal project presentations during last week of classes. Prereq: Senior Standing. SAGES Senior Capstone.

EECS 396. Independent Projects (1 - 6)


EECS 397. Special Topics (1 - 6)
Special topics in electrical, computer, and systems and control engineering.


EECS 398. Engineering Projects I (4)
Capstone course for electrical, computer and systems and control engineering seniors. Material from previous and concurrent courses used to solve engineering design problems. Professional engineering topics such as project management, engineering design, communications, and professional ethics. Requirements include periodic reporting of progress, plus a final oral presentation and written report. Scheduled formal project presentations during last week of classes. Recommended preparation: Senior standing. SAGES Senior Cap


EECS 399. Engineering Projects II (3)
Continuation of EECS 398. Material from previous and concurrent courses applied to engineering design and research. Requirements include periodic reporting of progress, plus a final oral presentation and written report. Recommended preparation: EECS 398 or concurrent enrollment.


EECS 400T. Graduate Teaching I (0)
This course will provide the Ph.D. candidate with experience in teaching undergraduate or graduate students. The experience is expected to involve direct student contact but will be based upon the specific departmental needs and teaching obligations. This teaching experience will be conducted under the supervision of the faculty member who is responsible for the course, but the academic advisor will assess the educational plan to ensure that it provides an educational experience for the student. Students in this course may be expected to perform one or more of the following teaching related activities: grading homeworks, quizzes, and exams, having office hours for students, tutoring students. Recommended preparation: Ph.D. student in EECS department.


EECS 401. Digital Signal Processing (3)
Characterization of discrete-time signals and systems. Fourier analysis: the Discrete-time Fourier Transform, the Discrete-time Fourier series, the Discrete Fourier Transform and the Fast Fourier Transform. Continuous-time signal sampling and signal reconstruction. Digital filter design: infinite impulse response filters, finite impulse response filters, filter realization and quantization effects. Random signals: discrete correlation sequences and power density spectra, response of linear systems. Recommended preparation: EECS 313.


EECS 405. Data Structures and File Management (3)
Fundamental concepts: sequential allocation, linked allocation, lists, trees, graphs, internal sorting, external sorting, sequential, binary, interpolation search, hashing file, indexed files, multiple level index structures, btrees, hashed files. Multiple attribute retrieval; inverted files, multi lists, multiple-key hashing, hd trees. Introduction to data bases. Data models. Recommended preparation: EECS 233 and MATH 304.


EECS 408. Introduction to Linear Systems (3)
Analysis and design of linear feedback systems using state-space techniques. Review of matrix theory, linearization, transition maps and variations of constants formula, structural properties of state-space models, controllability and observability, realization theory, pole assignment and stabilization, linear quadratic regulator problems, observers, and the separation theorem. Recommended preparation: EECS 304.


EECS 409. Discrete Event Systems (3)
A broad range of system behavior can be described using a discrete event framework. These systems are playing an increasingly important role in modeling, analyzing, and designing manufacturing systems. Simulation, automata, and queuing theory have been the primary tools for studying the behavior of these logically complex systems; however, new methods and techniques as well as new modeling frameworks have been developed to represent and to explore discrete event system behavior. The class will begin by studying simulation, the theory of languages, and finite state automata, and queuing theory approaches and then progress to examining selected additional frameworks for modeling and analyzing these systems including Petrinets, perturbation analysis, and Min-Max algebras.


EECS 412. Electromagnetic Fields III (3)
Maxwell’s equations, macroscopic versus microscopic fields, field interaction with materials in terms of polarization vectors P and M. Laplace’s and Poisson’s equations and solutions, scalar and vector potentials. Wave propagation in various types of media such as anisotropic and gyrotropic media. Phase and group velocities, signal velocity and dispersion. Boundary value problems associated with wave-guide and cavities. Wave solutions in cylindrical and spherical coordinates. Radiation and antennas.


EECS 413. Nonlinear Systems I (3)
This course will provide an introduction to techniques used for the analysis of nonlinear dynamic systems. Topics will include existence and uniqueness of solutions, phase plane analysis of two dimensional systems including Poincare-Bendixson, describing functions for single-input single-output systems, averaging methods, bifurcation theory, stability, and an introduction to the study of complicated dynamics and chaos. Recommended preparation: Concurrent enrollment in EECS 408.


EECS 415. Integrated Circuit Technology I (3)
Review of semiconductor technology. Device fabrication processing, material evaluation, oxide passivation, pattern transfer technique, diffusion, ion implantation, metallization, probing, packaging, and testing. Design and fabrication of passive and active semi-conductor devices. Recommended preparation: EECS 322.


EECS 416. Convex Optimization for Engineering (3)
This course will focus on the development of a working knowledge and skills to recognize, formulate, and solve convex optimization problems that are so prevalent in engineering. Applications in control systems; parameter and state estimation; signal processing; communications and networks; circuit design; data modeling and analysis; data mining including clustering and classification; and combinatorial and global optimization will be highlighted. New reliable and efficient methods, particular those based on interior-point methods and other special methods to solve convex optimization problems will be emphasized. Implementation issues will also be underscored. Recommended preparation: MATH 201 or equivalent.


EECS 417. Introduction to Stochastic Control (3)
Analysis and design of controllers for discrete-time stochastic systems. Review of probability theory and stochastic properties, input-output analysis of linear stochastic systems, spectral factorization and Weiner filtering, minimum variance control, state-space models of stochastic systems, optimal control and dynamic programming, statistical estimation and filtering, the Kalman-Bucy theory, the linear quadratic Gaussian problem, and the separation theorem. Recommended preparation: EECS 408.


EECS 418. System Identification and Adaptive Control (3) (Last Taught: Spring 2003)
Parameter identification methods for linear discrete time systems: maximum likelihood and least squares estimation techniques. Adaptive control for linear discrete time systems including self-tuning regulators and model reference adaptive control. Consideration of both theoretical and practical issues relating to the use of identification and adaptive control.


EECS 419. Computer System Architecture (3)
Interaction between computer systems hardware and software. Pipeline techniques - instruction pipelines - arithmetic pipelines. Instruction level parallelism. Cache mechanism. I/O structures. Examples taken from existing computer systems.


EECS 420. Solid State Electronics I (3) (Last Taught: Spring 2002)
Quantum mechanics and solid state physics. Crystal structures, electrons in periodic structures, band structures, transport phenomenon, nonequilibrium process, lattice dynamics, scattering mechanisms, surface and interface physics; physics of semiconductor electronic devices. Recommended preparation: EECS 321.


EECS 421. Optimization of Dynamic Systems (3)
Fundamentals of dynamic optimization with applications to control. Variational treatment of control problems and the Maximum Principle. Structures of optimal systems; regulators, terminal controllers, time-optimal controllers. Sufficient conditions for optimality. Singular controls. Computational aspects. Selected applications. Recommended preparation: EECS 408. Offered as EECS 421 and MATH 434.


EECS 422. Solid State Electronics II (3)
Advanced physics of semiconductor devices. Review of current transport and semiconductor electronics. Surface and interface properties. P-N junction. Bipolar junction transistors, field effect transistors, solar cells and photonic devices.


EECS 423. Distributed Systems (3)
Introduction to distributed systems; system models; network architecture and protocols; interprocess communication; client-server model; group communication; TCP sockets; remote procedure calls; distributed objects and remote invocation; distributed file systems; file service architecture; name services; directory and discovery services; distributed synchronization and coordination; transactions and concurrency control; security; cryptography; replication; distributed multimedia systems. Recommended preparation: EECS 338.


EECS 424. Introduction to Nanotechnology (3)
An exploration of emerging nanotechnology research. Lectures and class discussion on 1) nanostructures: superlattices, nanowires, nanotubes, quantum dots, nanoparticles, nanocomposites, proteins, bacteria, DNA; 2) nanoscale physical phenomena: mechanical, electrical, chemical, thermal, biological, optical, magnetic; 3) nanofabrication: bottom up and top down methods; 4) characterization: microscopy, property measurement techniques; 5) devices/applications: electronics, sensors, actuators, biomedical, energy conversion. Topics will cover interdisciplinary aspects of the field. Offered as EECS 424 and EMAE 424.


EECS 425. Computer Networks I (3)
An introduction to computer networks and the Internet. Applications: http, ftp, e-mail, DNS, socket programming. Transport: UDP, TCP, reliable data transfer, and congestion control. Network layer: IP, routing and NAT. Link layer: taxonomy, Ethernet, 802.11. Recommended preparation: EECS 338 or consent of instructor.


EECS 426. MOS Integrated Circuit Design (3)
Design of digital and analog MOS integrated circuits. IC fabrication and device models. Logic, memory, and clock generation. Amplifiers, comparators, references, and switched-capacitor circuits. Characterization of circuit performance with/without parasitics using hand analysis and SPICE circuit simulation. Recommended preparation: EECS 344 and EECS 321.

EECS 427. Optoelectronic and Photonic Devices (3)

In this course, we will study the optical transitions, absorptions, and gains in semiconductors. We will discuss the optical processes in semiconductor bulk, as well as low dimensional structures such as quantum well and quantum dot. The fundamentals, technologies, and applications of optoelectronic devices (e.g. light-emitting diodes, semiconductor lasers, solar cells and photodetectors) will be introduced. We will learn the current state-of-the-art of these devices. Recommended preparation: EECS 321

EECS 428. Computer Communications Networks II (3)
Introduction to topics and methodology in computer networks and middleware research. Traffic characterization, stochastic models, and self-similarity. Congestion control (Tahoe, Reno, Sack). Active Queue Management (RED, FQ) and explicit QoS. The Web: overview and components, HTTP, its interaction with TCP, caching. Overlay networks and CDN. Expected work includes a course-long project on network simulation, a final project, a paper presentation, midterm, and final test. Recommended preparation: EECS 425 or permission of instructor.


EECS 433. Database Systems (3)
Basic issues in file processing and database management systems. Physical data organization. Relational databases. Database design. Relational Query Languages, SQL. Query languages. Query optimization. Database integrity and security. Object-oriented databases. Object-oriented Query Languages, OQL. Recommended preparation: EECS 341 and MATH 304.


EECS 434. Microfabricated Silicon Electromechanical Systems (3)
Topics related to current research in microelectromechanical systems based upon silicon integrated circuit fabrication technology: fabrication, physics, devices, design, modeling, testing, and packaging. Bulk micromachining, surface micromachining, silicon to glass and silicon-silicon bonding. Principles of operation for microactuators and microcomponents. Testing and packaging issues. Recommended preparation: EECS 322 or EECS 415.


EECS 435. Data Mining (3)
Data Mining is the process of discovering interesting knowledge from large amounts of data stored either in databases, data warehouses, or other information repositories. Topics to be covered includes: Data Warehouse and OLAP technology for data mining, Data Preprocessing, Data Mining Primitives, Languages, and System Architectures, Mining Association Rules from Large Databases, Classification and Prediction, Cluster Analysis, Mining Complex Types of Data, and Applications and Trends in Data Mining. Recommended preparation436246">EECS 436. Advances in Databases (3)
Advanced topics in databases will be covered in this course. Query optimization in object-oriented databases, temporal databases, issues in multimedia databases, databases and Web, graphical query interfaces. Basic knowledge in databases is required. Recommended preparation: EECS 433.


EECS 437. Advanced Topics in Data Mining and Bioinformatics (3)
This course will cover a large number of active data mining and bioinformatics research areas, which include but not limited to: text mining, sequence analysis, network/graph mining, microarray analysis, and mining mobile objects. Students are expected to understand various methods and approaches employed in these research areas and have critical thinking on the advantages and disadvantages of these approaches. In addition, students need to complete a course-long project which exhibits the independent research capability in these data mining and bioinformatics areas. Recommended preparation: EECS 340, EECS 435.


EECS 438. Biomedical Microdevices (3)
Recent advances in large scale molecular biology have created the technological need for miniaturized instrumentation that can interact with macromolecules, cells, and tissue with high throughput and in many cases massively parallel formats. This course covers several applications of microfabricated devices to current problems in biology and medicine. The course material includes applications of miniaturization technologies for medical diagnostics and macromolecule assays, drug discovery, cellular activity monitoring and growth, and tissue engineering.


EECS 439. Web Data Mining (3)
Web crawling technology, web search and information extraction, unsupervised and semi-supervised learning techniques and their application to web data extraction, social network analysis, various pagerank algorithms, link analysis, web resource discovery, web, resource description framework (RDF), XML, Web Ontology Language (OWL). Recommended preparation: EECS 338, EECS 341.


EECS 440. Machine Learning (3)
Machine learning is a subfield of Artificial Intelligence that is concerned with the design and analysis of algorithms that “learn” and improve with experience, while the broad aim behind research in this area is to build systems that can simulate or even improve on certain aspects of human intelligence, algorithms developed in this area have become very useful in analyzing and predicting the behavior of complex systems. Machine learning algorithms have been used to guide diagnostic systems in medicine, recommend interesting products to customers in e-commerce, play games at human championship levels, and solve many other very complex problems. This course is focused on algorithms for machine learning: their design, analysis and implementation. We will study different learning settings, including supervised, semi-supervised and unsupervised learning. We will study different ways of representing the learning problem, using propositional, multiple-instance and relational representations. We will study the different algorithms that have been developed for these settings, such as decision trees, neural networks, support vector machines, k-means, harmonic functions and Bayesian methods. We will learn about the theoretical tradeoffs in the design of these algorithms, and how to evaluate their behavior in practice. At the end of the course, you should be able to:
*Recognize situations where machine learning algorithms are applicable
*Understand, represent and formulate the learning problem
*Apply the appropriate algorithm(s), or if necessary, design your own, with an understanding of the tradeoffs involved
*Correctly evaluate the behavior of the algorithm when solving the problem.
Prereq: EECS 391 or EECS 491 or consent of instructor


EECS 441. Internet Applications (3)
This course exposes students to research in building and scaling internet applications. Covered topics include Web services, scalable content delivery, applications of peer-to-peer networks, and performance analysis and measurements of internet application platforms. The course is based on a collection of research papers and protocol specifications. Students are required to read the materials, present a paper in class, prepare short summaries of discussed papers, and do a course project (team projects are encouraged). Prereq: EECS 325 or EECS 425.

 

EECS 442. Causal Learning from Data (3)
This course introduces key concepts and and techniques for characterizing, from observational or experimental study data and from background information, the causal effect of a specific treatment, exposure, or intervention (e.g., a medical treatment) upon an outcome of interest (e.g., disease status). The fundamental problem of causal inference is the impossibility of observing the effects of different and incompatible treatments on the same individual or unit.  This problem is overcome by estimating an average causal effect over a study population.  Making valid causal inferences with observational data is especially challenging, because of the greater potential for biases (confounding bias, selection bias, and measurement bias) that can badly distort causal effect estimates.  Consequently, this topic has been the focus of intense cross-disciplinary research in recent years.  Causal inference techniques will be illustrated by applications in several fields such as computer science, engineering, medicine, public health, biology, genomics, neuroscience, economics, and social science.  Course grading will be based on quizzes, homeworks, a class presentation, and a causal data analysis project.

Specific topics: treatments, exposures, and interventions; causal effects and causal effect measures; confounding bias; potential outcomes and counterfactuals; randomized experiments; observational studies; causal directed acyclic graphs (DAGs); exchangeability and conditional exchangeability; effect modification; causal interactions; nonparametric structural equations; Pearl's Back-Door Criterion, Front-Door Criterion, and related results; covariate adjustment; matching on covariates; selection bias; measurement bias; instrumental variables; causal modeling; inverse probability weighting; marginal structural models; standardization; structural nested models; outcome regression; propensity scores; sensitivity analysis.


EECS 444. Computer Security (3)
General types of security attacks; approaches to prevention; secret key and public key cryptography; message authentication and hash functions; digital signatures and authentication protocols; information gathering; password cracking; spoofing; session hijacking; denial of service attacks; buffer overruns; viruses, worms, etc., principles of secure software design, threat modeling; access control; least privilege; storing secrets; socket security; RPC security; security testing; secure software installation; operating system security; database security; web security; email security; firewalls; intrusions. Recommended preparation: EECS 337.


EECS 450. Operations and Systems Design (3)
Introduction to design, modeling, and optimization of operations and scheduling systems with applications to computer science and engineering problems. Topics include, forecasting and times series, strategic, tactical, and operational planning, life cycle analysis, learning curves, resources allocation, materials requirement and capacity planning, sequencing, scheduling, inventory control, project management and planning. Tools for analysis include: multi-objective optimization, queuing models, simulation, and artificial intelligence.

EECS 451. Introduction to Digital Communications (3)
Analysis and design of modern digital communications systems: introduction to digital communication systems, review of basic analog and digital signal processing for both deterministic and stochastic signals, signal space representation, basis functions, projections and matched filters, pulse shaping, pulse amplitude modulation, quadrature amplitude modulation, deterministic performance and performance in noise, carrier frequency and phase tracking, symbol timing synchronization, source coding and channel coding. Extensive computer-based design exercises using Matlab and Simulink to design and test digital modems and communication systems. Prereq: STAT 322 or equivalent.


EECS 452. Random Signals (3)
Fundamental concepts in probability. Probability distribution and density functions. Random variables, functions of random variables, mean, variance, higher moments, Gaussian random variables, random processes, stationary random processes, and ergodicity. Correlation functions and power spectral density. Orthogonal series representation of colored noise. Representation of bandpass noise and application to communication systems. Application to signals and noise in linear systems. Introduction to estimation, sampling, and prediction. Discussion of Poisson, Gaussian, and Markov processes.


EECS 454. Analysis of Algorithms (3)
This course covers fundamental topics in algorithm design and analysis in depth. Amortized analysis, NP-completeness and reductions, dynamic programming, advanced graph algorithms, string algorithms, geometric algorithms, local search heuristics. Prereq: EECS 340 or equivalent knowledge.


EECS 458. Introduction to Bioinformatics (3)
Fundamental algorithmic methods in computational molecular biology and bioinformatics discussed. Sequence analysis, pairwise and multiple alignment, probabilistic models, phylogenetic analysis, folding and structure prediction emphasized. Recommended preparation: EECS 340, EECS 233.

EECS 459. Bioinformatics for Systems Biology (3)
Description of omic data (biological sequences, gene expression, protein-protein interactions, protein-DNA interactions, protein expression, metabolomics, biological ontologies), regulatory network inference, topology of regulatory networks, computational inference of protein-protein interactions, protein interaction databases, topology of protein interaction networks, module and protein complex discovery, network alignment and mining, computational models for network evolution, network-based functional inference, metabolic pathway databases, topology of metabolic pathways, flux models for analysis of metabolic networks, network integration, inference of domain-domain interactions, signaling pathway inference from protein interaction networks, network models and algorithms for disease gene identification of dysregulated subnetworks network-based disease classification. Offered as EECS 459 and SYBB 459. Prereq: EECS 359 or EECS 458 or BIOL 250.


EECS 460. Manufacturing and Automated Systems (3)
Formulation, modeling, planning, and control of manufacturing and automated systems with applications to computer science and engineering problems. Topics include, design of products and processes, location/spatial problems, transportation and assignment, product and process layout, group technology and clustering, cellular and network flow layouts, computer control systems, reliability and maintenance, and statistical quality control. Tools and analysis include: multi-objective optimization, artificial intelligence, and heuristics for combinatorial problems. Offered as EECS 360 and EECS 460.


EECS 466. Computer Graphics (3)
Theory and practice of computer graphics: object and environment representation including coordinate transformations image extraction including perspective, hidden surface, and shading algorithms; and interaction. Covers a wide range of graphic display devices and systems with emphasis in interactive shaded graphics. Laboratory. Recommended preparation: EECS 233.


EECS 470. Intelligent Networks and Systems (3) (Last Taught: Fall 2005)
This course covers the development of the next-generation intelligent networks. It involves an in-depth study of design, planning, optimization, and analysis for communications information networks. It will include design and optimization of telecommunication networks and protocols. The course provides applications of Artificial Intelligence methodologies including mathematical learning, neural networks, clustering, modeling and automating human decision making process, and mobile agents to the design of intelligent networks. There will be weekly homework/reading assignments, some presentations by students, and a large project. Offered as EECS 370 and EECS 470.

EECS 474. Advanced Control and Energy Systems (3)
This course introduces applied quantitative robust and nonlinear control engineering techniques to regulate automatically renewable energy systems in general and wind turbines in particular. The course also studies the fundamentals for dynamic multidisciplinary modeling and analysis of large multi-megawatt wind turbines (mechanics, aerodynamics, electrical systems, control concepts, etc.). The course combines lecture sessions and lab hours. The 400-level includes an experimental lab competition, where the object is to design, implement, and experimentally validate a control strategy to regulate a real system in the laboratory (helicopter control competition or similar); it will also include additional project design reports. Offered as EECS 374 and EECS 474. Prereq: EECS 304

EECS 475 Applied Control (3)
This course provides a practical treatment of the study of control engineering systems. It emphasizes best practices in industry so that students learn what aspects of plant and control system design are critical. The course develops theory and practice for digital computer control systems; PID controller design (modes, forms and tuning methods); Control structure design (feed-forward, cascade control, predictive control, disturbance observers, multi-loop configurations, multivariable control); Actuators, sensors and common loops; Dynamic performance evaluation; and some advanced control techniques (quantitative robust control, gain-scheduling and adaptive control) to achieve a good performance over a range of operating conditions. Offered as EECS 375 and EECS 475. Prereq: EECS 304. Recommended preparation: EECS 374 or EECS 474.

EECS 476. Mobile Robotics (3)
Design of software systems for mobile robot control, including: motion control; sensory processing; localization and mapping; mobile-robot planning and navigation; and implementation of goal-directed behaviors. The course has a heavy lab component involving a sequence of design challenges and competitions performed in teams.

EECS 477. Advanced Algorithms (3)
Design and analysis of efficient algorithms, with emphasis on network flow, combinatorial optimization, and randomized algorithms. Linear programming: duality, complementary slackness, total unimodularity. Minimum cost flow: optimality conditions, algorithms, applications. Game theory: two-person zero-sum games, minimax theorems. Probabilistic analysis and randomized algorithms: examples and lower bounds. Approximation algorithms for NP-hard problems: examples, randomized rounding of linear programs. Prereq: EECS 302, EECS 340, MATH 201, MATH 380 or consent of instructor.

EECS 478. Computational Neuroscience (3)
Computer simulations and mathematical analysis of neurons and neural circuits, and the computational properties of nervous systems. Students are taught a range of models for neurons and neural circuits, and are asked to implement and explore the computational and dynamic properties of these models. The course introduces students to dynamical systems theory for the analysis of neurons and neural learning, models of brain systems, and their relationship to artificial and neural networks. Term project required. Students enrolled in MATH 478 will make arrangements with the instructor to attend additional lectures and complete additional assignments addressing mathematical topics related to the course. Recommended preparation: MATH 223 and MATH 224 or BIOL 300 and BIOL 306.Offered as BIOL 378, COGS 378, MATH 378, BIOL 478, EBME 478, EECS 478, MATH 478 and NEUR 478.


EECS 483. Data Acquisition and Control (3)
Data acquisition (theory and practice), digital control of sampled data systems, stability tests, system simulation digital filter structure, finite word length effects, limit cycles, state-variable feedback and state estimation. Laboratory includes control algorithm programming done in assembly language.


EECS 484. Computational Intelligence I: Basic Principles (3)
This course is concerned with learning the fundamentals of a number of computational methodologies which are used in adaptive parallel distributed information processing. Such methodologies include neural net computing, evolutionary programming, genetic algorithms, fuzzy set theory, and “artificial life.” These computational paradigms complement and supplement the traditional practices of pattern recognition and artificial intelligence. Functionalities covered include self-organization, learning a model or supervised learning, optimization, and memorization.


EECS 485. VLSI Systems (3)
Basic MOSFET models, inverters, steering logic, the silicon gate, nMOS process, design rules, basic design structures (e.g., NAND and NOR gates, PLA, ROM, RAM), design methodology and tools (spice, N.mpc, Caesar, mkpla), VLSI technology and system architecture. Requires project and student presentation, laboratory.


EECS 486. Research in VLSI Design Automation (3)
Research topics related to VLSI design automation such as hardware description languages, computer-aided design tools, algorithms and methodologies for VLSI design for a wide range of levels of design abstraction, design validation and test. Requires term project and class presentation.


EECS 488. Embedded Systems Design (3)
Objective: to introduce and expose the student to methodologies for systematic design of embedded system. The topics include, but are not limited to, system specification, architecture modeling, component partitioning, estimation metrics, hardware software codesign, diagnostics.


EECS 489. Robotics I (3)
Orientation and configuration coordinate transformations, forward and inverse kinematics and Newton-Euler and Lagrange-Euler dynamic analysis. Planning of manipulator trajectories. Force, position, and hybrid control of robot manipulators. Analytical techniques applied to select industrial robots. Recommended preparation: EMAE 181. Offered as EECS 489 and EMAE 489.


EECS 490. Digital Image Processing (3)
Digital images are introduced as two-dimensional sampled arrays of data. The course begins with one-to-one operations such as image addition and subtraction and image descriptors such as the histogram. Basic filters such as the gradient and Laplacian in the spatial domain are used to enhance images. The 2-D Fourier transform is introduced and frequency domain operations such as high and low-pass filtering are developed. It is shown how filtering techniques can be used to remove noise and other image degradation. The different methods of representing color images are described and fundamental concepts of color image transformations and color image processing are developed. One or more advanced topics such as wavelets, image compression, and pattern recognition will be covered as time permits. Programming assignments using software such as MATLAB will illustrate the application and implementation of digital image processing.


EECS 491. Artificial Intelligence: Probabilistic Graphical Methods (3)
This course is a graduate-level introduction to Artificial Intelligence (AI), the discipline of designing intelligent systems, and focuses on probabilistic graphical models.  These models can be applied to a wide variety of settings from data analysis to machine learning to robotics.  The models allow intelligent systems to represent uncertainties in an environment or problem space in a compact way and reason intelligently in a way that makes optimal use of available information and time.  The course covers directed and undirected probabilistic graphical models, latent variable models, associated exact and approximate inference algorithms, and learning in both discrete and continuous problem spaces.  Practical applications are covered throughout the course. Pre-requisite: EECS 391 or consent of instructor.

 

EECS 492. VLSI Digital Signal Processing Systems (3)
Digital signal processing (DSP) can be found in numerous applications, such as wireless communications, audio/video compression, cable modems, multimedia, global positioning systems and biomedical signal processing. This course fills the gap between DSP algorithms and their efficient VLSI implementations. The design of a digital system is restricted by the requirements of applications, such as speed, area and power consumption. This course introduces methodologies and tools which can be used to design VLSI architectures with different speed-area tradeoffs for DSP algorithms. In addition, the design of efficient VLSI architectures for commonly used DSP blocks is presented in this class. Recommended preparation: EECS 485.


EECS 493. Software Engineering (3)
Topics: Introduction to software engineering; software lifecycle models; development team organization and project management; requirements analysis and specification techniques; software design techniques; programming practices; software validation techniques; software maintenance practices; software engineering ethics. Undergraduates work in teams to complete a significant software development project. Graduate students are required to complete a research project. Recommended preparation for EECS 493: EECS 337. Offered as EECS 393 and EECS 493.

 

EECS 494. Introduction to Information Theory (3)
This course is intended as an introduction to information and coding theory with emphasis on the mathematical aspects.  It is suitable for advanced undergraduate and graduate students in mathematics, applied mathematics, statistics, physics, computer science and electrical engineering.Course content: Information measures-entropy, relative entropy, mutual information, and their properties.  Typical sets and sequences. asymptotic equipartition property, data compression.  Channel coding and capacity: channel coding theorem.  Differential entropy, Gaussian channel, Shannon-Nyquist theorem. Information theory inequalities (400 level). Additional topics, which may include compressed sensing and elements of quantum information theory. Recommended Preparation: MATH 201 or MATH 307. Offered as MATH 394, EECS 394, MATH 494 and EECS 494. Prereq: MATH 223 and MATH 380 or requisites not met permission.


EECS 495. Nanometer VLSI Design (3)
Semiconductor industry has evolved rapidly over the past four decades to meet the increasing demand on computing power by continuous miniaturization of devices. Now we are in the nanometer technology regime with the device dimensions scaled below 100nm. VLSI design using nanometer technologies involves some major challenges. This course will explain all the major challenges associated with nanoscale VLSI design such as dynamic and leakage power, parameter variations, reliability and robustness. The course will present modeling and analysis techniques for timing, power and noise in nanometer era. Finally, the course will cover the circuit/architecture level design solutions for low power, high-performance, testable and robust VLSI system. The techniques will be applicable to design of microprocessor, digital signal processor (DSP) as well as application specific integrated circuits (ASIC). The course includes a project which requires the student to work on a nanometer design issue. Recommended preparation: EECS 426 or EECS 485.

EECS 496. Artificial Intelligence: Sequential Decision Making (3)
This course will study the formulation and solution of decision making problems by automated agents. Topics covered include one-shot decision making (decision trees and influence diagrams), Markov decision processes (MDPs), automated classical and probabilistic planning, reinforcement learning (RL), hierarchical planning and RL, partially observable MDPs, Bayesian RL, collaborative multi-agent systems. Pre-requisite: EECS 391 Recommended preparation: EECS 491 (Probabilistic Graphical Models).

 

EECS 497. Artificial Intelligence (3)
This course gives students an overview of the state of the art in natural language processing. We will discuss computational aspects of language modeling through probabilistic models, computational approaches to syntax (parsing) and semantic representations, discourse and dialog. We will study the applications of these techniques to a variety of problems including information extraction, translation and summarization. At the end of the course a student should be able to (i) understand the various statistical models and algorithms for NLP (ii) modify them as needed or design novel approaches for specific NLP tasks and (iii) understand how to evaluate the performance of these models and compare them to alternatives. Pre-requisite: EECS 440.

 

EECS 500. EECS Colloquium (0)
Seminars on current topics in Electrical Engineering and Computer Science.


EECS 500T. Graduate Teaching II (0)
This course will provide the Ph.D. candidate with experience in teaching undergraduate or graduate students. The experience is expected to involve direct student contact but will be based upon the specific departmental needs and teaching obligations. This teaching experience will be conducted under the supervision of the faculty member who is responsible for the course, but the academic advisor will assess the educational plan to ensure that it provides an educational experience for the student. Students in this course may be expected to perform one or more of the following teaching related activities: grading homeworks, quizzes, and exams, having office hours for students, running recitation sessions, providing laboratory assistance. Recommended preparation: Ph.D. student in EECS department.


EECS 516. Large Scale Optimization (3)
Concepts and techniques for dealing with large optimization problems encountered in designing large engineering structure, control of interconnected systems, pattern recognition, and planning and operations of complex systems; partitioning, relaxation, restriction, decomposition, approximation, and other problem simplification devices; specific algorithms; potential use of parallel and symbolic computation; student seminars and projects. Recommended preparation: EECS 416.


EECS 518. Nonlinear Systems: Analysis and Control (3)
Mathematical preliminaries: differential equations and dynamical systems, differential geometry and manifolds. Dynamical systems and feedback systems, existence and uniqueness of solutions. Complicated dynamics and chaotic systems. Stability of nonlinear systems: input-output methods and Lyapunov stability. Control of nonlinear systems: gain scheduling, nonlinear regulator theory and feedback linearization. Recommended preparation: EECS 408.


EECS 519. Differential Geometric Nonlinear Control (3)
This advanced course focuses on the analysis and design of nonlinear control systems, with special emphasis on the differential geometric approach. Differential geometry has proved to be an extremely powerful tool for the analysis and design of nonlinear systems, similar to the roles of the Laplace transformation and linear algebra in linear systems. The objective of the course is to present the major methods and results of nonlinear systems and provide a mathematical foundation, which will enable students to follow the recent developments in the constantly expanding literature. This course will also benefit those students from Electrical, Mechanical, Chemical and Biomedical Engineering, who are doing research in the fields that involve nonlinear control problems. Recommended preparation: EECS 408 or equivalent.


EECS 520. Robust Control (3)
One of the most important problems in modern control theory is that of controlling the output of a system so as to achieve asymptotic tracking of prescribed signals and/or asymptotic rejection of undesired disturbances. The problem can be solved by the so-called regulator theory and H-infinity control theory. This course presents a self-contained introduction to these two important design methods. The intention of this course is to present ideas and methods on such a level that the beginning graduate student will be able to follow current research. Both linear and nonlinear results will be covered. Recommended preparation: EECS 408.


EECS 523. Advanced Neural Microsystems (3)
This course will cover the latest advances in neuroengineering with specific attention to integrated microsystems targeting wired/wireless multichannel interfacing with the nervous system at the cellular level in biological hosts. The aim is to provide students familiar with microfabrication and integrated circuit design with an application-driven, system-level overview of sensors and microelectronics in microsystems format for neural engineering. Recommended preparation: EECS 426.


EECS 526. Integrated Mixed-Signal Systems (3)
Mixed-signal (analog/digital) integrated circuit design. D-to-A and A-to-D conversion, applications in mixed-signal VLSI, low-noise and low-power techniques, and communication sub-circuits. System simulation at the transistor and behavioral levels using SPICE. Class will design a mixed-signal CMOS IC for fabrication by MOSIS. Recommended preparation: EECS 426.


EECS 527. Advanced Sensors: Theory and Techniques (3)
Sensor technology with a primary focus on semiconductor-based devices. Physical principles of energy conversion devices (sensors) with a review of relevant fundamentals: elasticity theory, fluid mechanics, silicon fabrication and micromachining technology, semiconductor device physics. Classification and terminology of sensors, defining and measuring sensor characteristics and performance, effect of the environment on sensors, predicting and controlling sensor error. Mechanical, acoustic, magnetic, thermal, radiation, chemical and biological sensors will be examined. Sensor packaging and sensor interface circuitry.


EECS 531. Computer Vision (3)
Geometric optics, ray matrics, calibration of monocular and stereo imaging systems. Adaptive camera thresholding and image segmentation, morphological and convolutional image processing. Selected topics including edge estimation and industrial inspection, optimal filtering, model matching, CAD-based vision and range image processing. Neural-net image processing. Model-based computer vision for scene interpretation and autonomous systems. Recommended preparation: EECS 490 or equivalent.


EECS 589. Robotics II (3)
Survey of research issues in robotics. Force control, visual servoing, robot autonomy, on-line planning, high-speed control, man/machine interfaces, robot learning, sensory processing for real-time control. Primarily a project-based lab course in which students design real-time software executing on multi-processors to control an industrial robot. Recommended preparation: EECS 489.


EECS 591. Advanced Artificial Intelligence (3)
An advanced course surveying topics in artificial intelligence, machine learning, and intelligent control. Topics will move toward state-of-research in areas including fuzzy logic, genetic algorithms, stochastic search, task-level learning, reinforcement learning, and approximate dynamic programming. Reading of primary literature. Project required.


EECS 600. Special Topics (1 - 18)


EECS 600T. Graduate Teaching III (0)
This course will provide Ph.D. candidate with experience in teaching undergraduate or graduate students. The experience is expected to involve direct student contact but will be based upon the specific departmental needs and teaching obligations. This teaching experience will be conducted under the supervision of the faculty member who is responsible for the course, but the academic advisor will assess the educational plan to ensure that it provides an educational experience for the student. Students in this course may be expected to perform one or more of the following teaching related activities running recitation sessions, providing laboratory assistance, developing teaching or lecture materials presenting lectures. Recommended preparation: Ph.D. student in EECS department.


EECS 601. Independent Study (1 - 18)


EECS 602. Advanced Projects Laboratory (1 - 18)


EECS 620. Special Topics (1 - 18)


EECS 621. Special Projects (1 - 18)


EECS 649. Project M.S. (1 - 9)


EECS 651. Thesis M.S. (1 - 18)


EECS 701. Dissertation Ph.D. (1 - 18)

Prereq: Predoctoral research consent or advanced to Ph.D. candidacy milestone.