EECS (EECS)

EECS 132. Introduction to Programming in Java. 3 Units.

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 interfaces; 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 Units.

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

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. Prereq: EECS 132.

EECS 245. Electronic Circuits. 4 Units.

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

Mathematical representation, characterization, and analysis of continuous-time signals and systems. Development of elementary mathematical models of continuous-time dynamic systems. Time domain and frequency domain analysis of linear time-invariant systems. Fourier series, Fourier transforms, and Laplace transforms. Sampling theorem. Filter design. Introduction to feedback control systems and feedback controller design. Prereq: ENGR 210. Prereq or Coreq: MATH 224.

EECS 275. Fundamentals of Robotics. 4 Units.

The Fundamentals of Robotics course will expose students to fundamental principles of robotics. Students will explore high level conceptual foundations of robotics beginning with Braitenberg vehicles and apply this knowledge to simulated and physical robot hardware in laboratory experiences and in a final project. Laboratory experiences will guide students through applying theory to practice increasingly complex tasks in a project oriented, group work environment. The course culminates in a robotics challenge project at the end of the semester. Topics covered are: sensors, actuators, kinematics, control, planning and programming. Programming languages and concepts (e.g., C++, object oriented programming) used in robotics will be introduced and used with modern robotics programming toolboxes and frameworks. Prior experience with these languages will not be necessary. Previous experience with robotics is not required for this course. Prereq: (ENGR 131 or EECS 132) and PHYS 121 and MATH 121.

EECS 281. Logic Design and Computer Organization. 4 Units.

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

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

A course to improve programming skills, software quality, and the software development process. Software design; Version control; Control issues and routines; Pseudo-code programming process and developer testing; Defensive programming; Classes; Debugging; Self-documenting code; Refactoring. Offered as EECS 293 and EECS 293N. Prereq: Computer Science Major and EECS 233 with a C or higher.

EECS 293N. Software Craftsmanship. 4 Units.

A course to improve programming skills, software quality, and the software development process. Software design; Version control; Control issues and routines; Pseudo-code programming process and developer testing; Defensive programming; Classes; Debugging; Self-documenting code; Refactoring. Offered as EECS 293 and EECS 293N. Prereq: EECS 233 with a C or higher.

EECS 296. Independent Projects. 1 - 3 Units.

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

Special topics in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Prereq: Limited to freshmen and sophomores.

EECS 301. Digital Logic Laboratory. 2 Units.

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

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 303. Embedded Systems Design and Laboratory. 3 Units.

The purpose of this Course and Laboratory is to expose and train the students in modern embedded systems software and hardware design techniques and practices including networking and mobile connectivity. The rationale for the Course and Lab is based on the explosive growth of embedded systems in the industry, specifically industrial automation, aviation, surveillance, medical devices, but also common consumer products. The course topics cover a wide range of material as follows. Microcontroller systems based on the ARM processor. Essential components, memories, busses interfaces. Devices, peripherals, GPIOs, device drivers. Sensors and Actuators, A/D, D/A, DSP. Embedded Linux, kernels, kernel modules, compilers and assemblers. Libraries, and debugging facilities. The Lab will be based on common platforms such as Raspberry pi, Arduino, ARM embed, supported by a network of Linux workstations.

EECS 304. Control Engineering I with Laboratory. 3 Units.

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 EMAE 350.

EECS 305. Control Engineering I Laboratory. 1 Unit.

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. Coreq: EECS 304.

EECS 309. Electromagnetic Fields I. 3 Units.

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 or PHYS 124. Prereq or Coreq: MATH 224.

EECS 313. Signal Processing. 3 Units.

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

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

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

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 and EECS 315.

EECS 318. VLSI/CAD. 4 Units.

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 and EECS 315.

EECS 319. Applied Probability and Stochastic Processes for Biology. 3 Units.

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 a combination of MATLAB, the R statistical package, MCell, and/or URDME, at the discretion of the instructor. Student projects will comprise a major part of the course. Offered as BIOL 319, EECS 319, MATH 319, SYBB 319, BIOL 419, EBME 419, MATH 419, PHOL 419, and SYBB 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 Units.

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. Prereq: PHYS 122. Prereq or Coreq: MATH 224.

EECS 322. Integrated Circuits and Electronic Devices. 3 Units.

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. Prereq: PHYS 122. Prereq or Coreq: MATH 224.

EECS 324. Modeling and Simulation of Continuous Dynamical Systems. 3 Units.

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

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. Offered as EECS 325 and EECS 325N. Prereq: Computer Science Major with minimum Junior Standing and EECS 233 with a C or higher.

EECS 325N. Computer Networks I. 3 Units.

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. Offered as EECS 325 and EECS 325N. Prereq: Minimum Junior Standing and EECS 233 with a C or higher.

EECS 326. Instrumentation Electronics. 3 Units.

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, EBME 308 or EMAE 350).

EECS 329. Introduction to Nanomaterials: Material Synthesis, Properties and Device Applications. 3 Units.

The behavior of nanoscale materials is close, to atomic behavior rather than that of bulk materials. The growth of nanomaterials, such as quantum dots, has the tendency to be viewed as an art rather than science. These nanostructures have changed our view of Nature. This course is designed to provide an introduction to nanomaterials and devices to both senior undergraduate and graduate students in engineering. Topics covered include an introduction to growth issues, quantum mechanics, quantization of electronic energy levels in periodic potentials, tunneling, distribution functions and density of states, optical and electronic properties, and devices. Offered as EECS 329 and EECS 429. Coreq: EECS 309.

EECS 337. Compiler Design. 4 Units.

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. Intro to Operating Systems and Concurrent Programming. 4 Units.

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. Offered as EECS 338 and EECS 338N. Prereq: Computer Science Major or Minor and EECS 233 with a C or higher.

EECS 338N. Intro to Operating Systems and Concurrent Programming. 4 Units.

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. Offered as EECS 338 and EECS 338N. Prereq: EECS 233 with a C or higher.

EECS 339. Web Data Mining. 3 Units.

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 (EECS 302 or MATH 304).

EECS 340. Algorithms. 3 Units.

Fundamentals in algorithm design and analysis. Loop invariants, asymptotic notation, recurrence relations, sorting algorithms, divide-and-conquer, dynamic programming, greedy algorithms, basic graph algorithms. Offered as EECS 340 and EECS 340N. Prereq: (Computer Science Major/Minor or Data Science Major) and (EECS 302 or MATH 304) and (EECS 233 or DSCI 234 with a C or higher).

EECS 340N. Algorithms. 3 Units.

Fundamentals in algorithm design and analysis. Loop invariants, asymptotic notation, recurrence relations, sorting algorithms, divide-and-conquer, dynamic programming, greedy algorithms, basic graph algorithms. Offered as EECS 340 and EECS 340N. Prereq: (EECS 302 or MATH 304) and EECS 233 with a C or higher.

EECS 341. Introduction to Database Systems. 3 Units.

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. Offered as EECS 341 and EECS 341N. Prereq: Computer Science Major and (EECS 302 or MATH 304) and EECS 233 with a C or higher.

EECS 341N. Introduction to Database Systems. 3 Units.

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. Offered as EECS 341 and EECS 341N. Prereq: (EECS 302 or MATH 304) and EECS 233 with a C or higher.

EECS 342. Introduction to Global Issues. 3 Units.

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 342I. Global Issues, Health, & Sustainability in India. 3 Units.

Global Issues, Health, & Sustainability in India is an interdisciplinary social work and engineering collaboration that includes a short-term cross-cultural immersion. This course brings together social work (knowledge, values, and skills) and health care (promotion, education, and community) perspectives to the understanding of technical project assessment, selection, planning and implementation in India. The course is also designed to help students understand culturally relevant community engagement strategies to ensure project acceptance in underserved and developing communities. Many field sites will be visited in order to observe first-hand the community assessment and development of projects that engineers implement. An example of these projects could include infrastructure to support green energy and water (resource planning, development, conservation, and sanitation). This study abroad course will acquaint students with history and culture of India, its social, political and economic development and the impact it has on health and the delivery of social services. Participants will learn about factors affecting the abilities to reach, treat, educate, and equip communities to improve health outcomes. Engineering students will learn the quantitative aspects using a paradigm of hierarchical systems, mathematical modeling, and scenario analysis using a 'reasoning support' system. Together the engineering, social work, and health sciences students in disciplinary-balanced teams will jointly work on real and meaningful projects marrying the descriptive scenarios (that is the 'subjective' aspect) with the numerical scenario analysis based on mathematical modeling (or 'objective' aspect) to form a coherent view of the future. The course will be taught using both lecture and experiential modalities. Engineering students will conduct computer modeling work. Along with visiting a variety of governmental and non-governmental institutions, organizations and projects, students will visit historical sites and attend cultural events. Offered as EECS 342I and SASS 375I. Counts for CAS Global & Cultural Diversity Requirement.

EECS 343. Theoretical Computer Science. 3 Units.

Introduction to different classes of automata and their correspondence to different classes of formal languages and grammars, computability, complexity and various proof techniques. Offered as EECS 343 and MATH 343. Prereq: EECS 302 or MATH 304.

EECS 344. Electronic Analysis and Design. 3 Units.

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. Prereq: EECS 245.

EECS 345. Programming Language Concepts. 3 Units.

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 object-oriented programming and some 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. Offered as EECS 345 and EECS 345N. Prereq: Computer Science Major and (EECS 302 or MATH 304) and EECS 233 with a C or higher.

EECS 345N. Programming Language Concepts. 3 Units.

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 object-oriented programming and some 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. Offered as EECS 345 and EECS 345N. Prereq: (EECS 302 or MATH 304) and EECS 233 with a C or higher.

EECS 346. Engineering Optimization. 3 Units.

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

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

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 or requisites not met permission.

EECS 352. Engineering Economics and Decision Analysis. 3 Units.

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

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 or requisites not met permission.

EECS 360. Manufacturing and Automated Systems. 3 Units.

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

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

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 368. Power System Analysis I. 3 Units.

This course introduces the steady-state modeling and analysis of electric power systems. The course discusses the modeling of essential power system network components such as transformers and transmission lines. The course also discusses important steady-state analysis of three-phase power system network, such as the power flow and economic operation studies. Through the use of PowerWorld Simulator education software, further understanding and knowledge can be gained on the operational characteristics of AC power systems. Special topics concerning new grid technologies will be discussed towards the semester end. The prerequisite requirements of the course include the concepts and computational techniques of Alternative Current (AC) circuit and electromagnetic field. Offered as EECS 368 and EECS 468. Prereq: EECS 245.

EECS 369. Power System Analysis II. 3 Units.

This course extends upon the steady state analysis of power systems to cover study topics that are essential for power system planning and operation. Special system operating conditions are considered, such as unbalanced network operation and component faults. Among the most important analytical methods developed, are symmetrical components and sequence networks. Other study topics discussed include the electric machine modeling and power system transient stability. The latter half of the course presents computational methods and control algorithms that are essential for power system operation, such as generation control and state estimation. Offered as EECS 369 and EECS 469. Prereq: EECS 368.

EECS 370. Smart Grid. 3 Units.

This course starts with an introduction to the US electric power system infrastructure and national electricity policy. Then power system operations and reliability practices are described. In the context of currently existing infrastructure and operation strategies, the course discusses the new Smart Grid technologies such as renewable resources, distributed generation, demand response, energy storage and electric vehicles. Additional important topics of discussion include Advanced Meter Infrastructure, microgrids, the IEEE 1547 Interconnection Standard, and other interoperability standards. The course captures the evolving progress made in Smart Grid technologies and the impacts on power system economics and reliability. Offered as EECS 370 and EECS 470. Prereq: EECS 368.

EECS 371. Applied Circuit Design. 4 Units.

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

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

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. Recommended preparation: EECS 374 or EECS 474. Offered as EECS 375 and EECS 475. Prereq: EECS 304 or Requisites Not Met permission.

EECS 376. Mobile Robotics. 4 Units.

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 390. Advanced Game Development Project. 3 Units.

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. Prereq: EECS 233 and EECS 290.

EECS 391. Introduction to Artificial Intelligence. 3 Units.

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. Prereq: ENGR 131 or EECS 132.

EECS 392. App Development for iOS. 3 Units.

This course is an introduction to app development for iPhone and iPad using Cocoa Touch Framework and Xcode development environment. Topics include Objective-C programming language and iOS SDK/foundations, object-oriented design and model-view-controller framework, user interface design using Xcode. Additional topics may include data management, map applications, animations and some recent developments in iOS. Recommended preparations: experiences in object-oriented programming and Mac OS; knowledge in software engineering and databases. Prereq: EECS 293 and Junior or Senior standing.

EECS 393. Software Engineering. 3 Units.

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, EECS 393N, and EECS 493. Counts as SAGES Senior Capstone. Prereq: (Computer Science Major/Minor or Data Science Major) or (EECS 233 or DSCI 234 with a C or higher).

EECS 393N. Software Engineering. 3 Units.

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, EECS 393N, and EECS 493. Counts as SAGES Senior Capstone. Prereq: EECS 233 with a C or higher.

EECS 394. Introduction to Information Theory. 3 Units.

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

Capstone course for computer science 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. Counts as SAGES Senior Capstone. Prereq: Senior standing.

EECS 396. Independent Projects. 1 - 6 Units.

Independent projects in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Limited to juniors and seniors. Prereq: Limited to juniors and seniors.

EECS 397. Special Topics. 1 - 6 Units.

Special topics in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Prereq: Limited to juniors and seniors.

EECS 398. Engineering Projects I. 4 Units.

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. Counts as SAGES Senior Capstone. Prereq: Senior Standing. Prereq or Coreq: ENGR 398 and ENGL 398.

EECS 399. Engineering Projects II. 3 Units.

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. Prereq: Senior Standing.

EECS 400T. Graduate Teaching I. 0 Unit.

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

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 402. Internet Security and Privacy. 3 Units.

This course introduces students to research on Internet security and privacy. Covered topics include denial of service attacks, attacks enabled by man-in-the-middle surveillance, communication hijacking, botnet and fast-flux networks, email and Web spam, threats to privacy on the Internet, and Internet censorship. The course will be based on a collection of research papers. Students will be required to attend lectures, read the materials, prepare written summaries of discussed papers, present a paper in class, complete a course project and take the final exam (in the form of the course project presentation). Prereq: EECS325 or EECS425 or graduate standing in Computer Science or Computer Engineering.

EECS 404. Digital Control Systems. 3 Units.

Analysis and design techniques for computer based control systems. Sampling, hybrid continuous-time/discrete-time system modeling; sampled data and state space representations, controllability, observability and stability, transformation of analog controllers, design of deadbeat and state feedback controllers; pole placement controllers based on input/output models, introduction to model identification, optimal control and adaptive control. Recommended Preparation: EECS 304 or equivalent.

EECS 405. Data Structures and File Management. 3 Units.

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 407. Engineering Economics and Financial Analysis. 3 Units.

In this course, money and profit as measures of "goodness" in engineering design are studied. Methods for economic analysis of capital investments are developed and the financial evaluation of machinery, manufacturing processes, buildings, R&D, personnel development, and other long-lived investments is emphasized. Optimization methods and decision analysis techniques are examined to identify economically attractive alternatives. Basic concepts of cost accounting are also covered. Topics include: economics criteria for comparing projects: present worth, annual worth analysis; depreciation and taxation; retirement and replacement; effect of inflation and escalation on economic evaluations; case studies; use of optimization methods to evaluate many alternatives; decision analysis; accounting fundamentals: income and balance sheets; cost accounting. Offered as EECS 407 and EPOM 407.

EECS 408. Introduction to Linear Systems. 3 Units.

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 410. Mobile Health (mHealth) Technology. 3 Units.

Advances in communications, computer, and medical technology have facilitated the practice of personalized health, which utilizes sensory computational communication systems to support improved and more personalized healthcare and healthy lifestyle choices. The current proliferation of broadband wireless services, along with more powerful and convenient handheld devices, is helping to introduce real-time monitoring and guidance for a wide array of patients. Indeed, a large research community and a nascent industry is beginning to connect medical care with technology developers, vendors of wireless and sensing hardware systems, network service providers, and enterprise data management communities. Students in the course and labs will explore cutting-edge technologies in 1) information technologies and 2) healthcare/medical applications, through lectures, lab assignments, exams, presentations, and final projects. The overall course objectives are to introduce electrical engineering, computer engineering, and computer science students the fundamentals of wearable sensors, mobile health informatics, big data analysis, telehealthcare security & privacy, and human computer interaction considerations.

EECS 411. Applied Engineering Statistics. 3 Units.

In this course a combination of lectures, demonstrations, case studies, and individual and group computer problems provides an intensive introduction to fundamental concepts, applications and the practice of contemporary engineering statistics. Each topic is introduced through realistic sample problems to be solved first by using standard spreadsheet programs and then using more sophisticated software packages. Primary attention is given to teaching the fundamental concepts underlying standard analysis methods. Offered as EPOM 405 and EECS 411.

EECS 413. Nonlinear Systems I. 3 Units.

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 414. Wireless Communications. 3 Units.

This course introduces the fundamentals of wireless communications including backgrounds, important concepts, and cutting-edge technologies. In particular, the course focuses on interesting and important topics in wireless communications, such as (but not limited to): Overview of wireless communication networks and protocols, the cellular concept, system design fundamentals, brief introduction to wireless physical layer fundamentals, multiple access control protocols for wireless systems, wireless networking (routing/rerouting, wireless TCP/IP), mobility management, call admission control and resource allocation, revolution/evolution towards future generation wireless networks, overview of wireless mesh networks, mobile ad hoc networks and wireless sensor networks, and wireless security (optional). Prereq: Undergraduate student with a C or better in EECS 351, or Graduate student.

EECS 415. Integrated Circuit Technology I. 3 Units.

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

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 418. System Identification and Adaptive Control. 3 Units.

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

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 421. Optimization of Dynamic Systems. 3 Units.

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

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 424. Introduction to Nanotechnology. 3 Units.

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

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

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

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 important optoelectronic devices (e.g., light-emitting diodes, semiconductor lasers, solar cells and photo-detectors) 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 Units.

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 429. Introduction to Nanomaterials: Material Synthesis, Properties and Device Applications. 3 Units.

The behavior of nanoscale materials is close, to atomic behavior rather than that of bulk materials. The growth of nanomaterials, such as quantum dots, has the tendency to be viewed as an art rather than science. These nanostructures have changed our view of Nature. This course is designed to provide an introduction to nanomaterials and devices to both senior undergraduate and graduate students in engineering. Topics covered include an introduction to growth issues, quantum mechanics, quantization of electronic energy levels in periodic potentials, tunneling, distribution functions and density of states, optical and electronic properties, and devices. Offered as EECS 329 and EECS 429.

EECS 433. Database Systems. 3 Units.

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

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

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 preparation: EECS 341 or equivalent.

EECS 438. High Performance Computing. 3 Units.

High performance computing (HPC) leverages parallel processing in order to maximize speed and throughput. This hands-on course will cover theoretical and practical aspects of HPC. Theoretical concepts covered include computer architecture, parallel programming, and performance optimization. Practical applications will be discussed from various information and scientific fields. Practical considerations will include HPC job management and Unix scripting. Weekly assessments and a course project will be required. Prereq: EECS 233 or graduate standing.

EECS 439. Web Data Mining. 3 Units.

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

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

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

This course introduces key concepts 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. Prereq: EECS 440 or MATH 380 or STAT 312 or STAT 313 or STAT 332 or STAT 333 or Requisites Not Met permission.

EECS 444. Computer Security. 3 Units.

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

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 452. Random Signals. 3 Units.

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

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. Offered as EECS 454 and OPRE 454. Prereq: EECS 340.

EECS 455. Applied Graph Theory. 3 Units.

This course serves as an introduction to many of the important aspects of graph theory. Topics include connectivity, flows, matchings, planar graphs, and graph coloring with additional topics selected from extremal graphs, random graphs, bounded treewidth graphs, social networks and small world graphs. The class will explore the underlying mathematical theory with a specific focus on the development and analysis of graph algorithms. Prereq: Graduate Student or (EECS 302 or MATH 304 or MATH 305 or MATH 307).

EECS 458. Introduction to Bioinformatics. 3 Units.

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

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, 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 Units.

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

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 467. Commercialization and Intellectual Property Management. 3 Units.

This interdisciplinary course covers a variety of topics, including principles of intellectual property and intellectual property management, business strategies and modeling relevant to the creation of start-up companies and exploitation of IP rights as they relate to biomedical-related inventions. The goal of this course is to address issues relating to the commercialization of biomedical-related inventions by exposing law students, MBA students, and Ph.D. candidates (in genetics and proteomics) to the challenges and opportunities encountered when attempting to develop biomedical intellectual property from the point of early discovery to the clinic and market. Specifically, this course seeks to provide students with the ability to value a given technological advance or invention holistically, focusing on issues that extend beyond scientific efficacy and include patient and practitioner value propositions, legal and intellectual property protection, business modeling, potential market impacts, market competition, and ethical, social, and healthcare practitioner acceptance. During this course, law students, MBA students, and Ph.D. candidates in genomics and proteomics will work in teams of five (two laws students, two MBA students and one Ph.D. candidate), focusing on issues of commercialization and IP management of biomedical-related inventions. The instructors will be drawn from the law school, business school, and technology-transfer office. Please visit the following website for more information: fusioninnovate.com. Offered as LAWS 5341, MGMT 467, GENE 367, GENE 467, EBME 467 and EECS 467.

EECS 468. Power System Analysis I. 3 Units.

This course introduces the steady-state modeling and analysis of electric power systems. The course discusses the modeling of essential power system network components such as transformers and transmission lines. The course also discusses important steady-state analysis of three-phase power system network, such as the power flow and economic operation studies. Through the use of PowerWorld Simulator education software, further understanding and knowledge can be gained on the operational characteristics of AC power systems. Special topics concerning new grid technologies will be discussed towards the semester end. The prerequisite requirements of the course include the concepts and computational techniques of Alternative Current (AC) circuit and electromagnetic field. Offered as EECS 368 and EECS 468. Prereq: EECS 245.

EECS 469. Power System Analysis II. 3 Units.

This course extends upon the steady state analysis of power systems to cover study topics that are essential for power system planning and operation. Special system operating conditions are considered, such as unbalanced network operation and component faults. Among the most important analytical methods developed, are symmetrical components and sequence networks. Other study topics discussed include the electric machine modeling and power system transient stability. The latter half of the course presents computational methods and control algorithms that are essential for power system operation, such as generation control and state estimation. Offered as EECS 369 and EECS 469. Prereq: EECS 368.

EECS 470. Smart Grid. 3 Units.

This course starts with an introduction to the US electric power system infrastructure and national electricity policy. Then power system operations and reliability practices are described. In the context of currently existing infrastructure and operation strategies, the course discusses the new Smart Grid technologies such as renewable resources, distributed generation, demand response, energy storage and electric vehicles. Additional important topics of discussion include Advanced Meter Infrastructure, microgrids, the IEEE 1547 Interconnection Standard, and other interoperability standards. The course captures the evolving progress made in Smart Grid technologies and the impacts on power system economics and reliability. Offered as EECS 370 and EECS 470. Prereq: EECS 368.

EECS 474. Advanced Control and Energy Systems. 3 Units.

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

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. Recommended preparation: EECS 374 or EECS 474. Offered as EECS 375 and EECS 475. Prereq: EECS 304 or Requisites Not Met permission.

EECS 476. Mobile Robotics. 3 Units.

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

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.

EECS 478. Computational Neuroscience. 3 Units.

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 480A. Introduction to Wireless Health. 3 Units.

Study of convergence of wireless communications, microsystems, information technology, persuasive psychology, and health care. Discussion of health care delivery system, medical decision-making, persuasive psychology, and wireless health value chain and business models. Understanding of health information technology, processing of monitoring data, wireless communication, biomedical sensing techniques, and health monitoring technical approaches and solutions. Offered as EECS 480A and EBME 480A.

EECS 480B. The Human Body. 3 Units.

Study of structural organization of the body. Introduction to anatomy, physiology, and pathology, covering the various systems of the body. Comparison of elegant and efficient operation of the body and the related consequences of when things go wrong, presented in the context of each system of the body. Introduction to medical diagnosis and terminology in the course of covering the foregoing. Offered as EECS 480B and EBME 480B.

EECS 480C. Biomedical Sensing Instrumentation. 3 Units.

Study of principles, applications, and design of biomedical instruments with special emphasis on transducers. Understanding of basic sensors, amplifiers, and signal processing. Discussion of the origin of biopotential, and biopotential electrodes and amplifiers (including biotelemetry). Understanding of chemical sensors and clinical laboratory instrumentation, including microfluidics. Offered as EECS 480C and EBME 480C. Prereq: EECS/EBME 480A, EECS/EBME 480B

EECS 480D. The Health Care Delivery Ecosystem. 3 Units.

Health care delivery across the continuum of care in the United States, including health policy and reform, financing of care, comparative health systems, population health, public health, access to care, care models, cost and value, comparative effectiveness, governance, management, accountability, workforce, and the future. Discussions of opportunities and challenges for wireless health, integrated into the foregoing topics. Perspective on health care delivery in other countries. Offered as EECS 480D and EBME 480D.

EECS 480E. Wireless Communications and Networking. 3 Units.

Essentials of wireless communications and networking, including teletraffic engineering, radio propagation, digital and cellular communications, wireless wide-area network architecture, speech and channel coding, modulation schemes, antennas, security, networking and transport layers, and 4G systems. Hands-on learning of the anatomy of a cell phone, and a paired wireless health device and its gateway. Offered as EECS 480E and EBME 480E.

EECS 480F. Physicians, Hospitals and Clinics. 3 Units.

Rotation through one or more health care provider facilities for a first-hand understanding of care delivery practice, coordination, and management issues. First-hand exposure to clinical personnel, patients, medical devices and instruments, and organizational workflow. Familiarity with provider protocols, physician referral practices, electronic records, clinical decision support systems, acute and chronic care, and inpatient and ambulatory care. Offered as EECS 480F and EBME 480F.

EECS 480G. Applied Cryptography. 3 Units.

This course begins with a discussion of how mobility-driven computing and communication systems use cryptography to protect data and protocols. The foundation for critical cryptographic concepts, techniques, and algorithms are covered. The fundamental cryptographic concepts are studied, including: symmetric encryption, public key encryption, digital signatures, cryptographic hash function, and message authentication codes; cryptographic protocols, such as key exchange, remote user authentication, and interactive proofs; cryptanalysis of cryptographic primitives and protocols, such as by side-channel attacks, differential cryptanalysis, or replay attacks; and cryptanalytic techniques on deployed systems, such as memory remanence, timing attacks, fault attacks, and differential power analysis. Techniques used for code making (cryptographic) and break codes (cryptanalytic) are covered, as well as how these techniques are used within larger security systems.

EECS 480H. Software Security. 3 Units.

This course begins with discussions of good software engineering practices to ensure security in modern software systems and additional challenges to security due to code mobility in software for mobility-driven computing. The basics of software security and threat models, methods to protect software (operating systems, databases, distributed software) - including risk analysis, authentication and authorization, access control, and software architecture for security - are studied. Principles of secure coding, validation and verification of secure software, software and data watermarking, code obfuscation, tamper resistant software are studied, as well as the benefits of open source and closed source software. Use of software as an attack mechanism and emerging attack models (including joint hardware-software attacks) are studied.

EECS 480K. Hardware Security. 3 Units.

This course begins with the keys to enabling secure, trustworthy operation of computer hardware - understanding security issues and how appropriate security measures are included during design, verification, test, and deployment. Increasingly the security primitives such as the Trusted Computing Module are being introduced at the hardware level to prevent the compromise of security in systems being deployed today. A comprehensive coverage of security issues in computer hardware is provided. Topics of embedded systems security, hardware Trojans, security in implantable medical devices, security in RFID/NFC, protection from side channel attacks, tamper resistance and crypto processor design, trusted FPGA design/JTAG, hardware-based cryptanalysis, and hardware IP protection against piracy and reverse-engineering are covered. A course project (Can you Hack It?) that challenges students to hack a hardware is included.

EECS 480M. Introduction to Medical Informatics. 3 Units.

Current state and emerging trends in Medical Informatics (MI) and associated health information systems. Principles, data, data management, system interoperability, patient privacy, information security, electronic records, telehealth, regulatory issues, clinical decision support, mobile documentation, devices and wireless communications in healthcare. Impact of wireless technology on emerging health information systems and processes. Offered as EECS 480M and EBME 480M.

EECS 480O. Introduction to Health Information Technology Implementation. 3 Units.

Current state and emerging trends in the implementation and adoption of health information technology (HIT). Macroergonomics; Technology transfer and adoption; Systems adoption life cycle; Impact of regulation; Decision and work transformation; HIT specification and acquisition; Contracting issues; Implementation, use, and evaluation; Impact of wireless technology on emerging processes. Offered as EECS 480O and EBME 480O. Prereq: EECS 480M.

EECS 480P. Advanced Biomedical Instrumentation. 3 Units.

Analysis and design of biosensors in the context of biomedical measurements. Base sensors using electrochemical, optical, piezoelectric, and other principles. Binding equilibria, enzyme kinetics, and mass transport modalities. Adding the "bio" element to base sensors and mathematical aspects of data evaluation. Applications to clinical problems and biomedical research. Offered as EECS 480P and EBME 480P.

EECS 480Q. Regulatory Policy and Regulations. 3 Units.

Introduction of wireless health technologies: spectrum, licensed versus unlicensed; personal area networks; body area networks; ultra-wideband low energy level short-range radios; wireless local area networks; wide area networks. The Federal system: separation of powers; the executive branch and its departments; the House of Representatives and its committees; the Senate and its committees; the FCC; policy versus regulatory versus legislative. What is a medical device: FDA; classification system; radiation-emitting products; software; RF in medical devices; converged medical devices; international aspects. Regulation of health information technology and wireless health: American Recovery and Reinvestment Act; Patient Protection and Affordable Care Act; FCC/FDA MoU; CMS and Reimbursement; privacy and security. Offered as EECS 480Q and EBME 480Q.

EECS 480R. User Experience Engineering. 3 Units.

Social, cognitive, behavioral, and contextual elements in the design of healthcare technology and systems. User-centered design paradigm from a broad perspective, exploring dimensions of product user experience and learning to assess and modify the design of healthcare technology. Practical utilization of user centered design method and assessment techniques for approaching a design problem. Offered as EECS 480R and EBME 480R.

EECS 480S. Wireless Health Product Development. 3 Units.

Integrating application requirements, market data, concept formulation, design innovation, and manufacturing resources for creating differentiated wireless health products that delight the user. Learning user-centric product development best practices, safety, security and privacy considerations, and risk management planning. Understanding the regulatory process. Identifying and managing product development tradeoffs. Offered as EECS 480S and EBME 480S. Prereq: EECS 480R.

EECS 480T. Wearable Computing Design. 3 Units.

Learning about wearable devices using flexible/conformal electronics designed for convenience and uninterrupted wear-ability. Examining related design challenges from the technology, human and business points of view. Understanding wearable product design for general and special-purpose tasks in information processing, media operations, and information extraction from sensed data. Learning about the technological challenges for design, including miniaturization, power delivery and management, data storage, and wireless networking. Learning about hardware choices (processor, field programmable gate array or custom ASIC based design) for wearable computers and software architectures for smart data processing. Learning about wearable designs centered on the human experience, including sensing and interfacing with the human body, as well as user interaction, convenience, and support for non-intrusive social appearance. Case studies tying the business requirements with the technology and design issues.

EECS 480U. Wearable Computing Technology. 3 Units.

Learning about a broad range of cutting-edge technologies suitable for wearable computing. Understanding printed and flexible electronics technologies required for creating wearable computing, in particular organics for active components due to their flexibility or conformity. Examine the tradeoffs between flexible/conformal versus rigid electronics in the context of wearable computing. Reviewing the history of printed electronics used as conductors for membrane keypads, car windscreen heaters and RFID tag antennas-to name a few application examples. Reviewing the latest technology advances in functional components such as displays, lighting, transistors (p-type & n-type), memory, batteries, photovoltaics (PV), sensors, and conductors as well as integration/packaging steps. Understanding the market potential of these technologies by reviewing emerging products.

EECS 480W. Wearable Computing Manufacturing. 3 Units.

Learning about the supply chain and manufacturing processes for flexible electronics, sensors, and other technologies contributing to the development of wearable products. Understanding supply chain issues in low mobility materials, multilevel substrates, nanocomposites, materials for low power sensors, and inks suitable for direct printing. Identifying the tradeoffs involved in various manufacturing methods such as roll-to-roll manufacturing a mature coating technology yet to be proven for full device integration. Studying other manufacturing techniques such as plate-to-plate, direct printing, 3D printing, and screening techniques for their applicability to the manufacturing and integration of flexible electronics. Understanding the use of lithography and vapor deposition techniques in the context of flexible electronics. Examining the issues of systems integration and packaging of the manufactured products.

EECS 480X. Mobility-Driven Computing. 3 Units.

Fundamental concepts in computing and architecture for mobile devices, mobile operating systems, mobility and mobile data management. Application of technologies for location awareness, context awareness, integrated sensors, mobile Internet, displays, pattern recognition and natural language processing, and touch/gesture based user interaction. Understanding of the tradeoffs in design (smartphones, tablets) due to resource constraints such as wireless connectivity, application processing, power management, and graphics. Integration of near- and wide-area wireless communication technologies (Bluetooth, Wireless WAN). Exploration of emerging technologies and services for the mobile platform. Integration of the foregoing concepts in a specific mobile context application (home/office, pedestrian, vehicular).

EECS 480Y. Mobility-Driven Embedded Systems. 3 Units.

Foundations of reliable, energy-efficient and secure design of embedded systems. Fundamentals of mobility in embedded systems including wireless technology, location awareness, sensors, and actuators. Design consideration for processors, DSP, memory, and interfaces under mobility constraints (connectivity, power, and data management). Systems software for embedded computing, device management, and real-time I/O. Software design under constraints of size, performance, availability, and reliability. Software development techniques and practices (compliers, OS, and runtime systems). Case studies of mobility driven real-time embedded systems and software. Applications of mobility driven embedded systems, for example in in biomedical implant systems.

EECS 480Z. Mobile Applications Development. 3 Units.

Understanding of the mobile application architecture, operating systems, and platforms. Challenges and opportunities in mobile application development. Evaluation of the leading mobile platform frameworks with respect to their features, functions, libraries, support, and ease of development. Software design for mobile applications in gaming, multimedia, entertainment, and enterprise applications. Development of enhanced user experience in a multi-touch, multi-sensor (accelerometer, gyroscopes, camera, geo-location) environment. Understanding of software development environments and testing tools, and use of wireless connectivity and data in mobile applications. Development of or extension of a modest application based on a major mobile platforms (iOS, Windows Phone 7, or Android).

EECS 484. Computational Intelligence I: Basic Principles. 3 Units.

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

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 488. Embedded Systems Design. 3 Units.

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

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

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 Models. 3 Units.

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. Prereq: EECS 391 or requisites not met permission.

EECS 493. Software Engineering. 3 Units.

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, EECS 393N, and EECS 493. Counts as SAGES Senior Capstone.

EECS 494. Introduction to Information Theory. 3 Units.

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.

EECS 495. Nanometer VLSI Design. 3 Units.

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

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. Recommended preparation: EECS 491 (Probabilistic Graphical Models). Prereq: EECS 391.

EECS 497. Artificial Intelligence: Statistical Natural Language Processing. 3 Units.

This course gives students an overview of the stat 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. Prereq: EECS 440.

EECS 499. Algorithmic Robotics. 3 Units.

This course introduces basic algorithmic techniques in robotic perception and planning. Course is divided into two parts. The first part introduces probabilistic modeling of robotic motion and sensing, Gaussian and nonparametric filters, and algorithms for mobile robot localization. The second part introduces fundamental deterministic and randomized algorithms for motion planning. Prereq: Graduate Standing or Requisites Not Met permission.

EECS 500. EECS Colloquium. 0 Unit.

Seminars on current topics in Electrical Engineering and Computer Science.

EECS 500T. Graduate Teaching II. 0 Unit.

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

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 520. Robust Control. 3 Units.

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

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

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

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

The goal of computer vision is to create visual systems that recognize objects and recover structures in complex 3D scenes. This course emphasizes both the science behind our understanding of the fundamental problems in vision and the engineering that develops mathematical models and inference algorithms to solve these problems. Specific topics include feature detection, matching, and classification; visual representations and dimensionality reduction; motion detection and optical flow; image segmentation; depth perception, multi-view geometry, and 3D reconstruction; shape and surface perception; visual scene analysis and object recognition.

EECS 589. Robotics II. 3 Units.

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 600. Special Topics. 1 - 18 Units.

Offered as EECS 600 and SYBB 600.

EECS 600T. Graduate Teaching III. 0 Unit.

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


EECS 620. Special Topics. 1 - 18 Units.


EECS 621. Special Projects. 1 - 18 Units.


EECS 649. Project M.S.. 1 - 9 Units.


EECS 651. Thesis M.S.. 1 - 18 Units.


EECS 701. Dissertation Ph.D.. 1 - 9 Units.

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