EECS 132: Introduction to Programming in Java (100/4647)
MWF 02:15-03:05 PM Jan 16-Apr 30
Connamacher, H
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 132: Introduction to Programming in Java (101/4648)
W 03:20-04:10 PM Jan 16-Apr 30
Connamacher, H
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 132: Introduction to Programming in Java (102/4649)
R 01:00-01:50 PM Jan 16-Apr 30
Connamacher, H
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 132: Introduction to Programming in Java (103/4675)
W 04:25-05:15 PM Jan 16-Apr 30
Connamacher, H
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 132: Introduction to Programming in Java (104/4676)
R 02:30-03:20 PM Jan 16-Apr 30
Connamacher, H
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 132: Introduction to Programming in Java (105/4836)
R 11:30-12:20 PM Jan 16-Apr 30
Connamacher, H
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 132: Introduction to Programming in Java (106/5040)
R 10:25-11:15 AM Jan 16-Apr 30
Connamacher, H
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 132: Introduction to Programming in Java (107/5041)
W 05:30-06:20 PM Jan 16-Apr 30
Connamacher, H
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 132: Introduction to Programming in Java (108/10507)
F 09:30-10:20 AM Jan 16-Apr 30
Connamacher, H
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 (100/4798)
TR 08:30-09:45 AM Jan 16-Apr 30
Sreenath, S
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 (100/4150)
TR 01:00-02:15 PM Jan 16-Apr 30
Fietkiewicz, C
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.
EECS 245: Electronic Circuits (100/4151)
MW 12:45-02:00 PM Jan 16-Apr 30
Mohseni, P
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.
EECS 245: Electronic Circuits (110/4420)
R 02:30-04:15 PM Jan 16-Apr 30
Mohseni, P
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.
EECS 245: Electronic Circuits (112/4434)
F 03:20-05:10 PM Jan 16-Apr 30
Mohseni, P
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.
EECS 245: Electronic Circuits (113/4667)
F 10:35-12:25 PM Jan 16-Apr 30
Mohseni, P
This section will use alternative labs.
EECS 281: Logic Design and Computer Organization (100/4152)
TR 10:00-11:15 AM Jan 16-Apr 30
Gurkan Cavusoglu, E
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.
EECS 281: Logic Design and Computer Organization (110/4421)
T 01:00-01:50 PM Jan 16-Apr 30
Gurkan Cavusoglu, E
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.
EECS 281: Logic Design and Computer Organization (111/4422)
W 10:35-11:25 AM Jan 16-Apr 30
Gurkan Cavusoglu, E
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.
EECS 281: Logic Design and Computer Organization (112/4423)
W 11:40-12:30 PM Jan 16-Apr 30
Gurkan Cavusoglu, E
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.
EECS 290: Introduction to Computer Game Design and Implementation (100/4677)
TR 08:30-09:45 AM Jan 16-Apr 30
Fu, M
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.
EECS 301: Digital Logic Laboratory (100/4153)
F 02:15-03:05 PM Jan 16-Apr 30
Li, P
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.
EECS 302: Discrete Mathematics (100/4402)
MW 12:45-02:00 PM Jan 16-Apr 30
Chankong, V
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.
EECS 304: Control Engineering I with Laboratory (100/4352)
MW 03:20-04:35 PM Jan 16-Apr 30
Loparo, K
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.
EECS 305: Control Engineering I Laboratory (100/4375)
Loparo, K
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.
EECS 309: Electromagnetic Fields I (100/4154)
MWF 02:15-03:05 PM Jan 16-Apr 30
Mandal, S
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.
EECS 313: Signal Processing (100/4155)
TR 02:30-03:45 PM Jan 16-Apr 30
Gurkan Cavusoglu, E
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.
EECS 314: Computer Architecture (100/4156)
MWF 04:25-05:15 PM Jan 16-Apr 30
Huang, M
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.
EECS 315: Digital Systems Design (100/4157)
TR 01:00-02:15 PM Jan 16-Apr 30
Saab, D
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.
EECS 316: Computer Design (100/4158)
F 03:05-04:20 PM Jan 16-Apr 30
Papachristou, C
Lecture is F 4:00-5:00pm. Lab hours are flexible.
EECS 319: Applied Probability and Stochastic Processes for Biology (101/10136)
MW 02:15-03:30 PM Jan 16-Apr 30
Thomas, P
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.
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.
EECS 325: Computer Networks I (100/5013)
TR 01:00-02:15 PM Jan 16-Apr 30
Rabinovich, M
This section is for CS Majors only.
EECS 325: Computer Networks I (101/10609)
TR 01:00-02:15 PM Jan 16-Apr 30
Johnson, E
This section is for CS Majors only.
EECS 325N: Computer Networks I (101/5129)
TR 01:00-02:15 PM Jan 16-Apr 30
Rabinovich, M
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.
EECS 325N: Computer Networks I (102/10610)
TR 01:00-02:15 PM Jan 16-Apr 30
Johnson, E
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.
EECS 338: Intro to Operating Systems and Concurrent Programming (100/4593)
MWF 02:15-03:05 PM Jan 16-Apr 30
Fietkiewicz, C
This section for CS majors only.
EECS 338: Intro to Operating Systems and Concurrent Programming (101/5109)
T 06:00-07:00 PM Jan 16-Apr 30
Fietkiewicz, C
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.
EECS 338N: Intro to Operating Systems and Concurrent Programming (102/5130)
MWF 02:15-03:05 PM Jan 16-Apr 30
Fietkiewicz, C
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.
EECS 338N: Intro to Operating Systems and Concurrent Programming (103/5139)
T 06:00-07:00 PM Jan 16-Apr 30
Fietkiewicz, C
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.
EECS 340: Algorithms (110/5103)
MW 12:45-02:00 PM Jan 16-Apr 30
Liberatore, V
This section for CS Majors only.
EECS 340: Algorithms (111/10709)
MW 07:00-08:15 PM Jan 16-Apr 30
Liberatore, V
This section for CS Majors only.
EECS 340N: Algorithms (111/5132)
MW 12:45-02:00 PM Jan 16-Apr 30
Liberatore, V
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.
EECS 340N: Algorithms (112/10712)
MW 07:00-08:15 PM Jan 16-Apr 30
Liberatore, V
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.
EECS 342I: Global Issues, Health, & Sustainability in India (100/5005)
Sreenath, S
This course - May travel course.
EECS 343: Theoretical Computer Science (100/4161)
MWF 09:30-10:20 AM Jan 16-Apr 30
Li, J
This section for CS majors only.
EECS 345: Programming Language Concepts (100/4699)
MWF 03:20-04:10 PM Jan 16-Apr 30
Connamacher, H
This section for CS majors only.
EECS 345: Programming Language Concepts (101/10653)
MWF 04:25-05:15 PM Jan 16-Apr 30
Connamacher, H
This section for CS majors only.
EECS 345N: Programming Language Concepts (100/10142)
MWF 03:20-04:10 PM Jan 16-Apr 30
Connamacher, H
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.
EECS 345N: Programming Language Concepts (101/10654)
MWF 04:25-05:15 PM Jan 16-Apr 30
Connamacher, H
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.
EECS 346: Engineering Optimization (100/4162)
TR 10:00-11:15 AM Jan 16-Apr 30
Hong, M
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 351: Communications and Signal Analysis (100/5091)
TR 10:00-11:15 AM Jan 16-Apr 30
Kazdan, D
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.
EECS 369: Power System Analysis II (100/10036)
W 09:00-11:30 AM Jan 16-Apr 30
Hong, M
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.
EECS 376: Mobile Robotics (100/4643)
MW 04:50-06:05 PM Jan 16-Apr 30
Newman, W
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 376: Mobile Robotics (101/4644)
Newman, W
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 377: Introduction to Connected Devices (100/10564)
MW 04:30-05:45 PM Jan 16-Apr 30
Barendt, N
Introduction to Connected Devices (e.g., Internet of Things). Undergraduates work in pairs to build a complete connected-device system, an embedded device with wireless networking, cloud and web, and mobile, and then develop hands-on experience with systems-level aspects of the connected-device system, including analytics, remote firmware update, load testing, and essential security. Students learn about current architectures, languages, and technologies, such as Pub/Sub (MQTT), Python, Objective-C, Python Django, JavaScript, HTML/CSS, and Bluetooth Low Energy.
EECS 377: Introduction to Connected Devices (101/10587)
Barendt, N
Introduction to Connected Devices (e.g., Internet of Things). Undergraduates work in pairs to build a complete connected-device system, an embedded device with wireless networking, cloud and web, and mobile, and then develop hands-on experience with systems-level aspects of the connected-device system, including analytics, remote firmware update, load testing, and essential security. Students learn about current architectures, languages, and technologies, such as Pub/Sub (MQTT), Python, Objective-C, Python Django, JavaScript, HTML/CSS, and Bluetooth Low Energy.
EECS 391: Introduction to Artificial Intelligence (100/4163)
TR 10:00-11:15 AM Jan 16-Apr 30
Ray, S
This section for CS majors only.
EECS 391: Introduction to Artificial Intelligence (101/5004)
TR 10:00-11:15 AM Jan 16-Apr 30
Ray, S
This section for non CS majors only.
EECS 392: App Development for iOS (100/5006)
MWF 10:35-11:25 AM Jan 16-Apr 30
Li, J
This section for CS majors only.
EECS 392: App Development for iOS (101/5007)
MWF 10:35-11:25 AM Jan 16-Apr 30
Li, J
This section for non CS majors only.
EECS 393: Software Engineering (100/5092)
TR 02:30-03:45 PM Jan 16-Apr 30
Podgurski, H
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.
EECS 393N: Software Engineering (100/10125)
TR 02:30-03:45 PM Jan 16-Apr 30
Podgurski, H
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.
EECS 395: Senior Project in Computer Science (100/4376)
MWF 11:40-12:30 PM Jan 16-Apr 30
Ray, S
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.
EECS 396: Independent Projects (100/5174)
Buchner, M
Independent projects in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Limited to juniors and seniors.
EECS 396: iOS App Development (102/5175)
Li, J
Independent projects in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Limited to juniors and seniors.
EECS 396: Independent Projects (103/5219)
Zorman, C
Independent projects in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Limited to juniors and seniors.
EECS 396: Independent Projects (105/5224)
Loparo, K
Independent projects in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Limited to juniors and seniors.
EECS 396: Independent Projects (101/10893)
Griswold, M
Independent projects in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Limited to juniors and seniors.
EECS 396: Independent Projects (106/10953)
Newman, W
Independent projects in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering. Limited to juniors and seniors.
EECS 397: Relay Protection (100/10038)
M 05:30-08:00 PM Jan 16-Apr 30
Prica, M
Special topics in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering.
EECS 397: Microprocessor Based Sys Design (101/10091)
TR 10:00-11:15 AM Jan 16-Apr 30, T 11:30-12:45 PM Jan 16-Apr 30
Franklin, P
Special topics in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering.
EECS 397: Data Privacy (102/10622)
MW 04:50-06:05 PM Jan 16-Apr 30
Ayday, E
Special topics in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering.
EECS 397: Microprocessor Based Sys Design (103/10637)
TR 10:00-11:15 AM Jan 16-Apr 30, R 11:30-12:45 PM Jan 16-Apr 30
Franklin, P
Special topics in Computer Engineering, Computer Science, Electrical Engineering, and Systems and Control Engineering.
EECS 398: Engineering Projects I (100/4164)
MW 11:40-12:30 PM Jan 16-Apr 30
Lee, G
Taught together with EECS 399
EECS 399: Engineering Projects II (100/4165)
MW 11:40-12:30 PM Jan 16-Apr 30
Lee, G
Taught together with EECS 398
EECS 400T: Graduate Teaching I (100/4166)
Mohseni, P
EE, CE AND SY STUDENTS SHOULD REGISTER FOR THIS SECTION.
EECS 400T: Graduate Teaching I (101/4167)
Li, J
CS STUDENTS SHOULD REGISTER FOR THIS SECTION.
EECS 402: Internet Security and Privacy (100/5111)
TR 05:30-06:45 PM Jan 16-Apr 30
Rabinovich, M
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).
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 416: Convex Optimization for Engineering (100/4168)
TR 01:00-02:15 PM Jan 16-Apr 30
Chankong, V
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 416: Convex Optimization for Engineering (500/5011)
Chankong, V
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 422: Solid State Electronics II (100/4767)
TR 08:30-09:45 AM Jan 16-Apr 30
Feng, P
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 425: Computer Networks I (100/5015)
TR 01:00-02:15 PM Jan 16-Apr 30
Rabinovich, M
This section for CS Majors only.
EECS 434: Microfabricated Silicon Electromechanical Systems (100/10105)
TR 11:30-12:45 PM Jan 16-Apr 30
Mehregany, M
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 438: High Performance Computing (100/5164)
MWF 11:40-12:30 PM Jan 16-Apr 30
Fietkiewicz, C
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.
EECS 442: Causal Learning from Data (100/4797)
TR 10:00-11:15 AM Jan 16-Apr 30
Podgurski, H
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.
EECS 454: Analysis of Algorithms (100/5101)
MW 12:45-02:00 PM Jan 16-Apr 30
Liberatore, V
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.
EECS 469: Power System Analysis II (100/10037)
W 09:00-11:30 AM Jan 16-Apr 30
Hong, M
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.
EECS 476: Mobile Robotics (100/4645)
MW 04:50-06:05 PM Jan 16-Apr 30
Newman, W
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 476: Mobile Robotics (101/4646)
Newman, W
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 480B: The Human Body (800/5008)
Saldivar, E
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 480F: Physicians, Hospitals and Clinics (800/10768)
Mehregany, M
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 480Q: Regulatory Policy and Regulations (800/10092)
Saldivar, E
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 488: Embedded Systems Design (100/4766)
R 06:30-09:00 PM Jan 16-Apr 30
Papachristou, C
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.
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.
EECS 493: Software Engineering (100/5098)
TR 02:30-03:45 PM Jan 16-Apr 30
Podgurski, H
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.
EECS 499: Algorithmic Robotics (100/5009)
MW 12:45-02:00 PM Jan 16-Apr 30
Cavusoglu, C
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.
EECS 500: EECS Colloquium (100/4169)
TR 11:30-12:30 PM Jan 16-Apr 30
Hong, M
Seminars on current topics in Electrical Engineering and Computer Science.
EECS 500T: Graduate Teaching II (100/4170)
Mohseni, P
EE, CE AND SY STUDENTS SHOULD REGISTER FOR THIS SECTION.
EECS 500T: Graduate Teaching II (101/4171)
Li, J
CS STUDENTS SHOULD REGISTER FOR THIS SECTION.
EECS 531: Computer Vision (100/10040)
MW 03:20-04:35 PM Jan 16-Apr 30
Lewicki, M
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.