EECS Main > Academics > Course Info

Course Info
2008-09 EECS Course Schedule  |  Undergraduate Manual

This is the complete up-to-date course listing for EECS department.
Click the linked course number to view course outlines, including prerequisites. The column to the right indicates which terms the course is offered. Click on the term to see the course homepage (if one exists).

Last updated on August 04, 2008.

EECS 101 - 'CS 101': An Introduction to Computer Science For Everyone
This course is a non-programming introduction to the field of computer science suitable for freshmen, non-majors, and majors who would like to understand the scope of the field of Computer Science, its key intellectual questions, and its impact on the worlds of technology, business, politics, and law. It covers, at a high level, theory and algorithms, systems and networking, programming languages and software engineering, human-computer interaction and graphics, artificial intelligence and machine learning, security, and some current crazy ideas.
  • This course is a required Core course in the CS curriculum in McCormick and Weinberg
  • This course satisfies the Weinberg Area III (Social and Behavioral Sciences) Distribution

  • Spring  2009
    Dinda    TuTh  3:30-4:50
    EECS 110 - Introduction to Computer Programming
    Introduction to programming practice using a modern programming language. Analysis and formulation of problems for computer solution. Systematic design, construction, and testing of programs. Substantial programming assignments.

    Fall  2008
    Riesbeck    MTuWF  10-10:50

    Winter  2009
    Tumblin    MTuWF  10-10:50

    Spring  2009
    Kuzmanovic    MTuWF  10-10:50
    EECS 111 - Fundamentals of Computer Programming II
    This is an introductory course on the fundamentals of computer programming. I see this class as an opportunity for you, the student, to see what computer programming is all about and (more importantly) to see whether you want to spend the next few years doing more of it. This course will include weekly programming projects, readings, a midterm, and final examinations. Class participation is not optional.

    Fall  2008
    Horswill    MTuWF  11-11:50

    Winter  2009
    Birnbaum    MTuWF  2-2:50
    EECS 130 - Tools and Technology of the World Wide Web
    Introduction to the theory and practice of developing sites on and technology for the World Wide Web. It will cover the basics of HTML, JavaScript, ASP, and CGI programming.

    Fall  2008
    Hammond    TuTh  11-12:20
    EECS 202 - Introduction to Electrical Engineering
    An introduction to the concepts and applications of electrical engineering. Topics include quantization, binary representation, performance; power spectral density, digital filtering; fundamental limitations; control systems, Feedback systems; properties of lasers; amplifiers, passive circuit elements, active circuit elements; electronic devices and materials.

    Fall  2008
    Taflove/Shahiar/Butz    MTuWF  2-2:50

    Winter  2009
    Pappas/Shahriar/Butz    MTuWF  10-10:50

    Spring  2009
    Plonus/Shahriar/Butz    MTuWF  10-10:50
    EECS 203 - Introduction to Computer Engineering
    Overview of computer engineering design. Number systems and Boolean algebra. Logic gates. Design of combinational circuits and simplification. Decoders, multiplexers, adders. Sequential logic and flip flops. Introduction to assembly language. Application of concepts to a computer engineering design project.

    Fall  2008
    Joseph    MTuWF  11-11:50

    Winter  2009
    C. Wu    MTuWF  11-11:50

    Spring  2009
    Dick    MTuWF  11-11:50
    EECS 205 - Fundamentals of Computer System Software
    Basics of assembly language programming. Macros. System stack and procedure calls. Techniques for writing assembly language programs. The features of IA-32 based PC will be used. Interfaces between high-level languages and assembly codes will be discussed.

    Fall  2008
    Lin    MTuWF  4-4:50

    Spring  2009
    Joseph    MTuWF  2:00-2:50
    EECS 211 - Fundamentals of Computer Programming II
    Continuation of 111. Key concepts in software design and systems programming. Object-oriented programming (in C++), design of interpreters and compilers, and register machines. Required for computer science majors.

    Fall  2008
    Henschen    MTuWF  1-1:50

    Winter  2009
    Henschen    MTuWF  2-2:50

    Spring  2009
    Riesbeck    MTuWF  1-1:50
    EECS 213 - Introduction to Computer Systems
    This course has four purposes: (1) to learn about the hierarchy of abstractions and implementations that comprise a modern computer system; (2) to demystify the machine and the tools that we use to program it; (3) to come up to speed on systems programming in C in the Unix environment; (4) to prepare students for upper-level systems courses.

    Fall  2008
    Dinda    MW  2-3:20

    Spring  2009
    Bustamante    MW  2-3:20
    EECS 221 - Fundamentals of Circuits
    Fundamental concepts in electrical circuits; circuit analysis and network theorems; linearity and superposition; series/parallel combinations of R, L, and C circuits; sinusoidal forcing; complex frequency and Bode plots; mutual inductance and transformers; two port networks.

    Winter  2009
    Plonus    MTuWF  9-9:50

    Spring  2009
    Plonus    MTuWF  2-2:50
    EECS 222 - Fundamentals of Signals and Systems
    Comprehensive introduction to analysis of continuous and discrete-time signals and systems. Linear time-invariant systems, convolution; Fourier series representations of periodic signals; Continuous time and discrete time Fourier transforms; Laplace transform; z-transform.

    Fall  2008
    Kumar    MTuWF  2-2:50

    Winter  2009
    Katsaggelos    MTuWF  2-2:50
    EECS 223 - Fundamentals of Solid State Engineering
    Introduction to Solid State Engineering. Crystalline state of matter. Quantum phenomena, quantum mechanics. Electrons in atoms, atoms in crystals, electrons in crystals. Energy band structures. Semiconductors. Thermal properties of crystals.

    Fall  2008
    Razeghi    MTuWF  9-9:50

    Spring  2009
    Mohseni    MTuWF  9-9:50
    EECS 224 - Fundamentals of Electromagnetics and Photonics
    Concepts of flux, potential, gradient, divergence, curl, and field intensity. Boundary conditions and solutions to Laplace and Poisson equations. Capacitance and inductance calculations. Conductors, insulators, and magnetic materials. Introduction to Electromagnetic Waves and Transmission Lines.

    Fall  2008
    Shahriar    MTuWF  1-1:50

    Spring  2009
    Taflove    MTuWF  11-11:50
    EECS 225 - Fundamentals of Electronics
    Fundamental concepts in electronics. Diode, BJT and FET Circuits; design using ideal operational amplifiers; feedback; frequency response; biasing; current sources and mirrors; small-signal analysis; design of operational amplifiers.

    Fall  2008
    C. Wu    MTuWF  2-2:50

    Winter  2009
    C. Wu    MTuWF  3-3:50
    EECS 230 - Programming for Engineers
    Introduction to programming, basic data types, basic control structures; object-oriented programming, classes, constructors and destructors, derived class and inheritance, pointers; engineering applications. Not for Computer Engineering majors.

    Winter  2009
    Scheuermann    MTuWF  1-1:50

    Spring  2009
    Lin    MTuWF  1-1:50
    EECS 231 - Advanced Programming for Computer Engineers
    Object-oriented programming, classes and data hiding, dynamic object construction and destruction, derived classes and inheritance, virtual functions; file processing; introduction to UNIX; testing and test generation.
     
    EECS 250 - Physical Electronics and Devices
    The physical basis of electronic devices and their application in analog and digital systems. Diodes, transistors, LEDs, photodetectors, and lasers are described, and their properties are explored.

    Fall  2008
    Grayson    MTuWF  11-11:50
    EECS 270 - Applications of Electronic Devices
    DC and AC networks, rectifiers, transistor amplifiers, feedback and operational amplifiers, digital electronics, and microprocessors. Not open to electrical or computer engineering majors.
     
    EECS 302 - Probabilistic Systems and Random Signals
    Basic concepts of probability theory and statistics, random variables, moments; multiple random variables, conditional distributions, correlation; random signals; applications to engineering systems.

    Fall  2008
    Plonus    MTuWF  10-10:50

    Spring  2009
    Haddad    MTuWF  10-10:50
    EECS 303 - Advanced Digital Logic Design
    Overview of digital logic design. Implementation technologies, timing in combinational and sequential circuits, EDA tools, basic arithmetic units, introduction to simulation and synthesis using VHDL.

    Fall  2008
    Dick    TuTh  3:30-4:50

    Spring  2009
    S. Memik    TuTh  3:30-4:50
    EECS 307 - Communications Systems
    Analysis of analog and digital communications systems, including modulation, transmission, and demodulation of AM, FM, and TV systems. Design issues, channel distortion and loss, bandwidth limitations, additive noise.

    Fall  2008
    Lee    MTuWF  10-10:50
    EECS 308 - Advanced Electromagnetics and Photonics
    Electromagnetic waves, transmission lines; impedance transformation; transients on lines; wave reflection and transmission; metallic waveguides and wave transmission; antenna and diffraction, antenna arrays, communication, and radar.

    Winter  2009
    Li    MTuWF  1-1:50
    EECS 310 - Mathematical Foundations of Computer Science
    This course will discuss fundamental concepts and tools in discrete mathematics with emphasis on their applications to computer science. Example topics include logic and Boolean circuits; sets, functions, relations, databases, and finite automata; deterministic algorithms and randomized algorithms; analysis techniques based on counting methods and recurrence equations; trees and more general graphs.

    Fall  2008
    Immorlica    MWF  10-10:50
    EECS 311 - Data Structures and Data Management
    The design, implementation, and analysis of abstract data types, data structures and their algorithms. Topics include: data and procedural abstraction, linked lists, stacks, queues, binary trees, searching, and sorting. Required for computer science majors.

    Fall  2008
    Hartline    MWF  11-11:50

    Spring  2009
    Scheuermann    MWF  11-11:50
    EECS 313 - Telecommunication Networks for Multimedia
    Signals and bandwidth concepts, spectra, basics of electronics, information and coding, modulation, multiplexing, transmission systems, transmission media, analog versus digital communications, computer networks, and switching techniques. Not for electrical engineering or computer engineering majors.
     
    EECS 317 - Data Management and Information Processing
    Data models and database design. Modeling the real world: structures, constraints, and operations. The entity relationship to data modeling (including network hierarchical and object-oriented), emphasis on the relational model. Use of existing database systems for the implementation of information systems. Note: This course is only for IE/MFE students - CS/CIS students are not allowed to register for this course, and it does not carry credit towards the CS/CIS major

    Fall  2008
    Trajcevski    MWF  2-2:50
    EECS 322 - Compiler Construction
    Overview of compilers and context-free languages, top-down parsing, LL(1) parser construction, translation grammars, implementation of lexical analyzer, parser and translator, compiler optimization, error handling, and recovery.

    Spring  2009
    Findler    TuTh  12:30-1:50
    EECS 325 - Artificial Intelligence Programming
    Introduction to Lisp and programming knowledge-based systems and interfaces. Strong emphasis on writing maintainable, extensible systems. Topics include: semantic networks, frames, pattern matching, deductive inference rules, case-based reasoning, discrimination trees. Project-driven. Substantial programming assignments.

    Fall  2008
    Riesbeck    MWF  9-9:50
    EECS 328 - Numerical Methods for Engineers
    Introduction to numerical methods; numerical differentiation, numerical integration, solution of ordinary and partial differential equations. Students write programs in C++, FORTRAN, C, or Matlab using methods presented in class.

    Spring  2009
    Kao    MWF  3-3:50
    EECS 330 - Human Computer Interaction
    Introduction to human-computer interaction and the design of systems that work for people and their organizations. The goal is to understand the manner in which humans interact with, and use, their computers for productive work. The course focus is on the interface as designed artifact. The interface is a design problem without a single "correct" solution but which has many "good" solutions and a plethora of "bad" solutions. Class discussion centers on what makes an interface good and proven techniques for designing interfaces that meet human needs.

    Winter  2009
    Gomez    Th  2:30-4:50
    EECS 332 - Digital Image Analysis
    Introduction to computer and biological vision systems, image formation, edge detection, image segmentation, texture, representation and analysis of two-dimensional geometric structures, and representation and analysis of three-dimensional structures.

    Fall  2008
    Y. Wu    TuTh  12:30-1:50
    EECS 333 - Introduction to Communication Networks
    Data communication basics, Telephone, cellular, cable and computer networks, Layered network architectures, models, and protocols, Switching, routing, flow control, and congestion control, Medium access control, ARQ, and local area networks. Queueing models and network performance analysis.

    Fall  2008
    Guo    MWF  2-2:50
    EECS 334
    Please contact the Professor teaching this course for more information
     
    EECS 336 - Design and Analysis of Algorithms
    Analysis techniques: solving recurrence equations. Algorithm design techniques: divide and conquer, the greedy method, backtracking, branch-and-bound, and dynamic programming. Sorting and selection algorithms, order statistics, heaps, and priority queues.

    Winter  2009
    Kao    TuTh  9:30-10:50
    EECS 337 - Introduction to Semantic Information Processing
    A semantics-oriented introduction to natural language processing, broadly construed. Representation of meaning and knowledge inference in story understanding, script/frame theory, plans and plan recognition, counter-planning, and thematic structures.

    Fall  2008
    Birnbaum    TuTh  11-12:20
    EECS 338 - Practicum in Intelligent Information Systems
    A practical excursion into the building of Intelligent Information Systems. Each student will develop a working program in the area of information access, management, capture, or retrieval. Project definition, data collection, technology selection, implementation, and project management. Semantics-oriented introduction to natural language processing, broadly construed. Representation of meaning and knowledge inference in story understanding, script/frame theory, plans and plan recognition, counter-planning, and thematic structures.

    Winter  2009
    Hammond    Tu  2-4:50
    EECS 339 - Introduction to Databases
    Data models and database design. Modeling the real world: structures, constraints, and operations. The entity relationship to data modeling (including network hierarchical and object-oriented), emphasis on the relational model. Use of existing database systems for the implementation of information systems.
     
    EECS 340 - Introduction to Computer Networking
    A top-down exploration of networking using the 5-layer model and the TCP/IP stack. HTTP, FTP, DNS, BSD Sockets, concurrent servers, checksums, reliable transport with stop-and-wait, go-back-n, selective repeat, flow control, congestion control, TCP, unicast routing, multicast routing, router architecture, IP, IPv6, IP multicast, MAC protocols and LANs, Ethernet,wireless networks, and network security. Over the course of the quarter, students build web clients and servers, a fully compatible TCP/IP stack that can run them, and evaluate routing protocols in simulation.

    Winter  2009
    Kuzmanovic    MW  3:30-4:50
    EECS 343 - Operating Systems
    A fundamental overview of operating systems. Topics covered include: Operating system structures, processes, process synchronization, deadlocks, CPU scheduling, memory management, file systems, secondary storage management. Requires substantial programming projects.

    Fall  2008
    Bustamante    TuTh  2-3:20
    EECS 344 - Design of Computer Problem Solvers
    Principles and practice of organizing and building AI reasoning systems. Topics include pattern-directed rule systems, truth-maintenance systems, and constraint languages.
     
    EECS 345 - Distributed Systems
    Basic principles behind distributed systems (collections of independent components that appear to users as a single coherent system) and main paradigms used to organize them.
     
    EECS 346 - Microprocessor System Design
    Structure and timing of typical microprocessors. Sample microprocessor families. Memories, UARTS, timer/counters, serial devices and related devices. MUX and related control structures for building systems. Interrupt programming. Hardware/software design tradeoffs.

    Spring  2009
    Henschen    MTuWF  9-9:50
    EECS 347 - Microprocessor System Projects
    Design, prototype and test individual projects involving microprocessors and programmable logic devices. Introduction to programmable logic devices such as PAL, FPGA, etc. Introduction to and discussion of other circuits as needed for the selected projects.
     
    EECS 348 - Introduction to Artificial Intelligence
    Core techniques and applications of artificial intelligence. Representation retrieving and application of knowledge for problem solving. Hypothesis exploration, theorem proving, vision and neural networks.

    Spring  2009
    Pardo    MWF  10-10:50
    EECS 349 - Machine Learning
    Machine Learning is the study of algorithms that improve automatically through experience. Topics covered typically include Bayesian Learning, Decision Trees, Genetic Algorithms, Neural Networks.

    Fall  2008
    Downey    MWF  1-1:50
    EECS 350 - Introduction to Computer Security
    The past decade has seen an explosion in the concern for the security of information. This course introduces students to the basic principles and practices of computer and information security. Focus will be on the software, operating system and network security techniques with detailed analysis of real-world examples. Topics include cryptography, authentication, software and operating system security (e.g., buffer overflow), Internet vulnerability (DoS attacks, viruses/worms, etc.), intrusion detection systems, firewalls, VPN, Web and wireless security. Students with good performance in the class will be awarded researchship in the academic year and/or the summer. This course can help satisfy the project course requirement for undergraduates and satisfy the breadth requirement in computer systems for system Ph.D. students.

    Spring  2009
    TBA    MWF  1-1:50
    EECS 351 - Introduction to Computer Graphics
    First in a 3-course series to teach fundamental ideas underlying all forms of computer-assisted picture-making. Teaches you to write simple programs that make any interactive 2D/3D shapes with simple lighting and textured surfaces. You will learn by doing, with 4 projects that teach 1) 2-D and 3-D viewing transformations, 2) polygonal shape descriptions, 3) lighting and shading 4) textures and surfaces using OpenGL (DirectX is similar). Surveys advanced topics covered in later courses, including ray tracing, global illumination, particle systems, implicit surfaces GPUs and more.

    Fall  2008
    Tumblin    TuTh  12:30-1:50
    EECS 352 - Machine Perception of Music & Audio
    Machine extraction of musical structure in audio, MIDI and score files, covering areas such as source separation and perceptual mapping of audio to machine-quantifiable measures.
     
    EECS 353 - Digital Microelectronics
    Logic families, comparators, A/D and D/A converters, combinational systems, sequential systems, solid-state memory, large-scale integrated circuits, and design of electronic systems.

    Spring  2009
    Sahakian    MWF  11-11:50
    EECS 354 - Network Penetration and Security
    This RTFM course will focus on remote computer penetration (hacking). The class will introduce basic theory for many different types of attacks and then actually carry them out in ’real-world’ settings. The goal is to learn security by learning how to view your machine as a ’hacker.’ In addition, we will be preparing for the 2007 International Capture the Flag Competition (held each December by UCSB). Capture the Flag is a network security exercise where the goal is to exploit other machines while defending your own.

    Fall  2008
    Chen (354)    MW  6:30-7:50
    EECS 355 - ASIC and FPGA Design
    Overview of Computer Aided Design tool flow for ASIC and FPGA Design. Synthesis from hardware description languages and creation of finite state machines. Differences between FPGA and ASIC design flows. Exploration of concepts in several projects.

    Winter  2009
    S. Memik    MWF  11-11:50
    EECS 356 - Introduction to Formal Specification and Verification
    Introduction to formal techniques used for system specifications and verifications: temporal logic, set theory, proofs, and model checking. TLA+ (Temporal Logic of Actions) specifications. Safety and liveness properties. Real time specs and verifications.
     
    EECS 357 - Introduction to VLSI CAD
    Basic concepts in VLSI CAD with emphasis on physical design, fundamental algorithms for CAD problems, development of CAD tools.
     
    EECS 358 - Introduction to Parallel Computing
    Introduction to parallel computing for scientists and engineers. Shared memory parallel architectures and programming, distributed memory, message-passing data-parallel architectures, and programming.

    Winter  2009
    G. Memik    TuTh  2-3:20
    EECS 359 - Digital Signal Processing
    Discrete-time signals and systems, Discrete-Time Fourier Transform, z-Transform, Discrete Fourier Transform, Digital Filters.

    Fall  2008
    Pappas    TuTh  3:30-4:50
    EECS 360 - Introduction to Feedback Systems
    Linear feedback control systems, their physical behavior, dynamical analysis, and stability. Laplace transform, frequency spectrum, and root locus methods. System design and compensation using PID and lead-lag controllers. Digital implementations of analog controllers.

    Winter  2009
    Freeman    MWF  10-10:50
    EECS 361 - Computer Architecture I
    Design and understanding of the computer system as a whole unit. Performance Evaluation and its role in computer system design; Instruction Set Architecture design, Datapath design and optimizations (e.g., ALU); Control design; Single cycle, multiple cycle and pipeline implementations of processor; Hazard detection and forwarding; memory hierarchy design; Cache memories, Virtual memory, peripheral devices and I/O.

    Fall  2008
    G. Memik    TuTh  11-12:20
    EECS 362 - Computer Architecture Project
    Quarter long team project that entails designing a processor for a complete Instruction Set. Involves ISA design, design of components, datapath and control for a pipelined processor to implement the ISA. The design is performed using industry strength design tools and VHDL is used as the design specification language. The design is evaluated using benchmark programs for correctness and performance.

    Winter  2009
    G. Memik    TuTh  11-12:20
    EECS 363 - Digital Filtering
    Recursive and nonrecursive digital filters, decimation and interpolation, A/D and D/A conversion as digital filtering problems. Implementation of nonrecursive filters via FFT, quantization problems, e.g., companding and limit cycles.

    Winter  2009
    Butz    MWF  1-1:50
    EECS 366
    Please contact the Professor teaching this course for more information
     
    EECS 370 - Computer Game Design
    Fundamentals of computer game design. Topics include: Plot, narrative and character, simulation for creating game worlds, AI for synthetic characters, tuning game play. Substantial programming and project work.

    Spring  2009
    Forbus    TuTh  3:30-4:50
    EECS 374 - Introduction to Digital Control
    Discrete dynamics systems; discrete models of continuous systems feedback and digital controllers; analog-digital conversion; digital control design including PID, lead-lag, deadbeat, and model matching controllers.

    Spring  2009
    Freeman    MW  3:30-4:50
    EECS 378 - Digital Communications
    Sampling and time-division multiplexing, baseband digital signals and systems. Coded pulse modulation, error control coding, digital modulation systems, information measure and source encoding, and introduction to spread spectrum communications.

    Winter  2009
    Haddad    MWF  9-9:50
    EECS 379 - Introduction to Lasers and Fiber Optics
    Optical fields as a subset of electromagnetic fields, optical cavities, theory of laser action, and the basics of optical waveguides, including optical fiber.

    Fall  2008
    Ho    MW  4-5:20
    EECS 380 - Wireless Communications
    Overview of existing and emerging wireless communications systems; interference, blocking, and spectral efficiency; radio propagation and fading models; performance of digital modulation in the presence of fading; diversity techniques; Code-Division Multiple Access.

    Spring  2009
    Guo    TuTh  2-3:20
    EECS 381 - Electronic Properties of Materials
    Quantum physics; electrons and energy bands in crystals; electronic transport in materials, superconductivity; optical properties of materials and their applications; magnetic properties of materials and their applications; thermal properties of materials.

    Fall  2008
    Mohseni    MWF  1-1:50
    EECS 382 - Photonic Information Processing
    Introduction to photonic information processing; coherent and incoherent light; electro-optic and acousto-optic modulation; optical signal processing; holography; optical storage.

    Winter  2009
    Shahriar    WF  4-5:30
    EECS 383 - Fiber-Optic Communications
    Introduction to fiber-optic communications. Semiconductor diode lasers, internal modulation, electro-optic modulation, coherent and incoherent detection, optical fibers and their properties, optical amplifiers, communication systems, and optical networks.

    Spring  2009
    Yuen    MWF  2-2:50
    EECS 384 - Solid State Electronic Devices
    Applications of energy band models for semiconductors. Carrier statistics and transport. Diodes, bipolar and field-effect transistors. Integrated circuits. Heterojunction devices.
     
    EECS 385 - Optoelectronics
    Introduction to solid-state optoelectronic devices; display devices, laser diodes, photodetectors, and light modulators; optical waveguides and fibers; system application of optoelectronic devices.

    Winter  2009
    Grayson    MWF  3-3:50
    EECS 386 - Computational Electromagnetics and Photonics
    Introduction to the finite-difference time-domain (FDTD) method in numerical modeling of electromagnetic and optical wave interactions with engineering structures. Topics: finite differences; Maxwell's equations; numerical dispersion and stability; free-space and waveguide field sources; absorbing boundary conditions; material dispersions and nonlinearities.
     
    EECS 388 - Nanotechnology
    Physics and technology of nanoscale photonic and electronic devices. Bulk crystal, thin film and epitaxial growth technologies. Semiconductor characterization techniques. Defects in crystals. Nanotechnology processing: diffusion oxidation, ion implantation, annealing, etching, and photolithography. Nanoscale optoelectronic and electronic devices.

    Winter  2009
    Razeghi    TuTh  9:30-10:50
    EECS 389 - Superconductivity and Its Applications
    Properties of materials in the superconducting state; charge flow dynamics of type II superconductors; high Tc superconductors; applications for computers and high-frequency devices.
     
    EECS 390 - Introduction to Robotics
    Homogeneous vector and plane, homogeneous transformation, position and orientation transformations, kinematics and inverse kinematic solutions of robot manipulators, Jacobian and inverse Jacobian relation, robot trajectory and task planning, dynamic formulation and computation of robot manipulators, robot programming and control systems.

    Spring  2009
    C.H. Wu    TuTh  3:30-4:50
    EECS 391 - VLSI Systems Design
    Design of CMOS digital integrated circuits, concentrating on architectural and topological issues. Tradeoffs in custom design, standard cells, gate arrays. Use of VLSI design tools on a small project.
     
    EECS 392 - VLSI Systems Design Projects
    Design of a cutting-edge VLSI chip. Teams of 5 to 10 students undertake a large circuit design problem, going from specification to VLSI implementation while optimizing for speed, area, and/or power. Group collaboration and engineering design.

    Spring  2009
    S. Memik    TuTh  12:30-1:50
    EECS 393 - Design and Analysis of High-Speed Integrated Circuits
    Issues that arise in the design and analysis of VLSI circuits at high speeds such as buffer sizing, repeater insertion, noise, electromigration, Elmore delay, scaling trends, and power consumption. Cross-listed as EECS 493.
     
    EECS 394 - Software Project Management
    EECS 394 is focused on the process of software development from the perspective of both rapid prototyping and responsive relationships with clients. We'll take an Extreme Programming approach in which teams will maintain tight, iterative development cycles that include ongoing interactions with clients. In the style of EDC, the class is project oriented, with teams focused on specific projects during the entire 10 week period. The class also has a studio feel, with team interactions during class guided by faculty and graduate students.

    Spring  2009
    Hammond    TuTh  11-12:20
    EECS 395 - Human-level Artificial Intelligence
    The combination of increasing computational power, off-the-shelf resources, and steady scientific progress in AI and Cognitive Science has lead to a revolution in the kinds of AI systems that can be built. This seminar will explore the state of the art in building AI systems that capture larger constellations of human cognitive abilities and the problems that lie ahead in human-level AIs. Extensive reading, writing, and discussion will be required.
    Prerequisites: EECS 348 or equivalent AI course, plus at least one other AI course, or permission of instructor.

    Winter  2009
    Forbus    TuTh  3:30-5:00

    Spring  2009
    Forbus    TuTh  3:30-4:50
    EECS 395 - Kolmogorov Complexity
    This course will study the Kolmogorov complexity of finite strings which measures the information content (or randomness) of a string by the size of the smallest program that generates it. This simple idea has a surprisingly deep theory with many exciting applications to logic and computer science. We cover the basic relationships of Kolmogorov complexity, applications with an emphasis in connections with computational complexity. Topics include: Basic Properties of the Kolmogorov function, Symmetry of Information, The Incompressibility Method, Resource-Bounded complexity.
     
    EECS 395 - Computational Photography
    The pre-requisites are EECS 351 (Introduction to Computer Graphics) or consent of the instructor.

    Winter  2009
    Tumblin    TuTh  3:30-4:50
    EECS 395
    Please contact the Professor teaching this course for more information
     
    EECS 395 - Understanding Technology and Human Interaction
    We are surrounded by technologies that support our everyday social interactions. MySpace, Facebook and Orkut provide persistent services for exchanging personal information, ubiquitous computing environments allow objects to adapt to our everyday experiences, and new technologies enable people to collaborate on projects when they are thousands of miles apart. The design of such systems, however, is not simply a technical question. In order to successfully create these systems, we need to understand how people work, play, and communicate with one another in a wide variety of situations. This course illustrates the practice of understanding human interactions that take place both with and through technology; and it explores the design, creation and evaluation of technologies to support such interactions. Course topics include: design processes, prototype construction and evaluation techniques. Specialized topics cover technologies for special populations, social software and collaborative systems, and entertainment technologies. No programming experience is necessary. There will be occasional labs to explain technical content. Course requirements include short hands-on exercises, two exams, and a group project.
     
    EECS 395 - Distributed Systems in Challenging Environments
    This seminar will review new ideas and ongoing projects that are pushing distributed systems into new and challenging domains - from outerspace to underwater. The class is structured as a traditional seminar with readings, class discussion and a quarter-long research project.
     
    EECS 395 - Internet Architectures
    This course will cover a broad range of topics relevant for evolution and redesign of Internet architectures, including design principles, evolvability, “clean-slate” design approach to Internet architectures, etc.

    Spring  2009
    Kuzmanovic    TBA  TBA
    EECS 395 - CG and Movie Merge Algorithms
    TBA
     
    EECS 395 - Introduction to Computational Complexity
    This course will give an overview of computational complexity including Turing machines, relationships between time and memory, determinism and nondeterminism, reductions and the P versus NP problem. We will explore more recent results on randomness including pseudorandom generators and the power of probabilistic proofs. This course is designed for graduate students or advanced undergraduates. We will assume familiarity with mathematical proofs but no previous knowledge of Turing machines or computational complexity. Prerequisites: EECS 336 or instructor's permission.
     
    EECS 395 - RTFM: Algorithmic Problem Solving and Programming in a Competitive Environment
    It is common for computer scientists to be confronted with challenging problems that require both quick algorithmic thinking and skillful programming to solve. This is the case both in industry and research, and is one of the reasons why programming puzzles occur so readily in job interviews and qualifying exams in the best companies and graduate programs. The goal of this course is to make students better algorithmic problem solvers and programmers by giving them the opportunity to practice these skills in a fun competitive environment
     
    EECS 395 - Introduction to Cryptography
    This course will give a broad overview of cryptographic techniques with an emphasis on modern tools based on prime numbers. We discuss many basic protocols from classical tools to DES, RSA and discrete logarithms and applications such as digital signatures, secure protocols, secret sharing, secure computation and zero-knowledge proofs. As time permits we will explore connections between cryptography, coding theory and quantum mechanics. This course is designed for undergraduates. A course in discrete mathematics (like EECS 310) is strongly recommended.
     
    EECS 398 - Electrical Engineering Design
    Design of electrical and electronic devices, circuits, and systems by the application of the engineering sciences, economics, and Institute of Electrical and Electronics Engineers or other national standards.

    Spring  2009
    Butz    MWF  1-1:50
    EECS 401 - Fundamentals of Electronic Devices
    Transport phenomena in semiconductors, theory of the p-n junction, bipolar and unipolar devices, general analysis of the metal-semiconductor and MIS structures, CCD, MOSFET and bipolar transistors.

    Spring  2009
    Liu    MWF  3-3:50
    EECS 402 - Advanced Electronic Devices
    Semiconductor optics, heterojunctions, quantum wells, superlattices and resonant tunneling. Field-effect and potential-effect devices. Hot-electron devices. Microwave devices.
     
    EECS 403 - Quantum Semiconductors
    Elements of wave mechanics necessary to explain band theory. Fermi-Dirac statistics, introduction to the theory of electrical conductivity in semiconductors, optical and thermal properties, diffusion of electrons, and holes in solids.

    Spring  2009
    Grayson    MWF  1-1:50
    EECS 404 - Quantum Electronics
    Review of quantum mechanics. Harmonic oscillator. Perturbation theory. Phonons and photons. Interaction of radiation and atomic systems. Einstein coefficients. Laser oscillation. Laser photon statistics.

    Fall  2008
    Ho    MW  2-3:20
    EECS 405 - Advanced Photonics
    Physical description of compound semiconductors; optical properties of heterostructures, quantum wells, super-lattices, quantum wires and quantum dots; physics and technology of optoelectronic devices; light emitting diodes (LEDs) and lasers.

    Winter  2009
    Mohseni    TuTh  3:30-4:50
    EECS 406 - Nonlinear Optics
    Nonlinear optical susceptibilities; wave propagation and coupling in nonlinear media; harmonic, sum, and difference frequency generation; parametric amplification and oscillation; phase-conjugation via four-wave mixing; self-phase modulation and solitons.

    Winter  2009
    Kumar    TuTh  4-5:30
    EECS 407 - Quantum Optics (same as Physics 427)
    Review of quantum fields; quantization of the electro-magnetic field; photodetection theory; direct, homodyne and heterodyne detection; squeezed and photon-number state generation; application to optical communication and interferometers; introduction to quantum cryptography and quantum computation.

    Winter  2009
    Yuen    MW  3:30-4:50
    EECS 408 - Computational Electrodynamics
    Advanced topics in the finite-difference time-domain (FDTD) method for numerical modeling of electromagnetic wave interactions with engineering structures. Reduced-numerical-dispersion algorithms employing fourth-order spatial differencing; uniaxial perfectly matched layer absorbing boundary conditions; generalized grids; incorporation of lumped-circuit elements.

    Spring  2009
    Yuen    MW  3:30-4:50
    EECS 409 - Semiconductor Lasers
    Basic concepts of lasers; laser applications; gas and liquid lasers; solid-state lasers; semiconductor lasers; materials and devices; rate equations; laser gain and saturation; modulation and light pulse generation; advanced technology for semiconductor laser fabrications and integration; industrial and medical applications of lasers.
     
    EECS 410 - System Theory
    Unified treatment of continuous and discrete time systems from a state-variable viewpoint; emphasis on linear systems. Concept of state, writing and solving state equations, controllability and observability, transform techniques (Fourier, Laplace, Z), stability, and Lyapunov's method.

    Fall  2008
    Freeman    MWF  1-1:50
    EECS 418 - Advanced Digital Signal Processing
    Selected topics in digital signal processing such as digital speech processing, multidimensional digital signal processing, spectrum estimation, and error analysis.

    Fall  2008
    Butz    MWF  1-1:50
    EECS 420 - Digital Image Processing
    Fundamentals of image processing. Image compression, enhancement, and restoration. Image reconstruction from projections and partial information.

    Winter  2009
    Katsaggelos    W  4:00-7:00
    EECS 421 - Multimedia Signal Processing
    Fundamentals of processing multimedia signals: text, graphics, speech, audio, image, video; standards for multimedia coding, processing and compression. Related products and services will be discussed.

    Spring  2009
    Katsaggelos    W  4:00-7:00
    EECS 422 - Random Processes in Communications and Control I
    Fundamentals of random variables; mean-squared estimation; limit theorems and convergence; definition of random processes; autocorrelation and stationarity; Gaussian and Poisson processes; Markov chains.

    Spring  2009
    Haddad    MWF  9-9:50
    EECS 423 - Random Processes in Communications and Control II
    Advanced topics in random processes: point processes, Wiener processes; Markov processes, spectral representation, series expansion of random processes, linear filtering, Wiener and Kalman filters, optimum receivers and matched filters.
     
    EECS 424 - Noise and Fluctuation in Physical/ Engineering Systems
    Fluctuation in linear and nonlinear systems via Markov random processes, Fokker-Planck-Kolmogorov equation, Langevin-Ito equation, stochastic calculus, and Feynman-Wiener integral; applications to electronic devices, lasers, communication, and control systems.
     
    EECS 425 - Quantum Electronics II: Noise, Modulation, and Quantum Properties of Laser Emissions
    Introduction to semiclassical and fully quantized theory of laser leading to noise, coherent, and modulation properties of laser light, with emphasis on semiconductor laser. The quantum concept of photon and photodetection will be formulated. The theory will be applied to describing noise in optical amplifier and photodetection. The effect of optical feedback on laser will be covered. The inhibition and enhancement of spontaneous emission in microcavity and nanophotonic device structures will be discussed.
     
    EECS 426 - Signal Detection and Estimation
    Simple-hypothesis detection problems, detection of signals with unknown parameters, Bayes' maximum likelihood estimation, estimation of signal parameters, detection of stochastic signals, nonparametric detection and estimation.
     
    EECS 427 - Optical Communications
    Optical communication systems, optical wave propagation, photodetection statistics, heterodyne receiver, and noise sources. Evaluation of communication performance for the free-space channel. Introduction to fiber optic communication and fiber optic networks.
     
    EECS 428 - Information Theory
    Information measures and their properties: entropy, divergence, mutual information, channel capacity. Shannon's fundamental theorems for data compression and coding for noisy channels. Applications in communications, statistical inference, algorithmic complexity, probability, and finance.
     
    EECS 429 - Selected Topics in Quantum Information Science and Technology
    Basic general principles of quantum mechanics for applications to quantum information science and technology. The fundamentals will be covered together with topics of current interest among the areas of quantum teleportation, quantum computation, and quantum cryptography.
     
    EECS 432 - Advanced Computer Vision
    Advanced topics in computer vision including low-level vision, geometrical and 3D vision, stereo, 3D scene reconstruction, motion analysis, visual tracking, object recognition and human motion analysis, capturing and recognition, with the applications to video processing and vision-based modeling and interaction.
     
    EECS 435 - Neural Networks
    Learning in one-layer and multi-layer feed-forward networks, recurrent networks and dynamical systems. Perceptrons, Hebbian learning, associative memories, Widrow-Hoff learning, backpropagation networks, radial basis function networks, competitive networks, counterprapagation networks, Grossberg network, Adaptive resonance theory, Hopfield networks, simulated annealing, Boltzmann machine.
     
    EECS 438 - Interdisciplinary Nonlinear Dynamics
    438-1: Example-oriented survey of nonlinear dynamical systems, including chaos, combining numerical, analytical and geometrical approaches to differential equations. 438-2,3: Interdisciplinary theoretical, computational and experimental projects involving complex systems in science and engineering, directed by a cross-disciplinary faculty team.
     
    EECS 440 - Advanced Networking
    This course will cover a broad range of topics including Internet evolution and architectures; analysis and design of network protocols (both wired and wireless); networking issues for Web and gaming applications; analysis and performance of content distribution networks; network security, vulnerability, and defenses.
     
    EECS 441 - Resource Virtualization
    Virtual machines of all kinds, virtual networking, virtual services, virtual storage, emulation, distributed computing using virtualized resources.

    Winter  2009
    Dinda    TuTh  12:30-1:50
    EECS 442 - Dynamic Behavior of Applications, Hosts, and Networks
    Students will learn the current state of theory and practice in workload characterization, and use what they learn to measure, analyze, model, and predict the dynamic behavior of distributed computing environments and their applications.
     
    EECS 443 - Advanced Operating Systems
    Advanced Operating Systems is a graduate level course on advanced concepts on operating systems and distributed computing. The course covers a wide array of research topics in systems, from historical perspectives to current topics such as peer-to-peer computing and mobile systems. The class consists of two major thrusts: reading and reviewing papers and doing a research project on your own.

    Winter  2009
    Bustamante    TuTh  2-3:20
    EECS 450 - Internet Security
    The evolution of Internet has spawned rich complexity and vulnerability in its infrastructure. In this course, we will take a measurement-based approach to understand the complexity of the Internet, i.e., characterize, understand, and model the enormous volume and great variety of Internet traffic in terms of large-scale behaviors. Based on that, we will investigate the vulnerability of the Internet when different services have evolved and innovated in different and competing ways, with increasingly less global consensus. We will start with the basic concepts of Internet architecture, its design principles and evolution, and then focus on security challenges of network and distributed systems as well as the counter-attack approaches.

    During the course, we will read and discuss research papers, and identify a list of open research problems, from which the students can choose their class projects. In addition to deploying end-to-end measurement on global network testbed, PlanetLab (http://www.planet-lab.org), massive real-world anonymized router/gateway traffic data will be obtained to analyze the reliability/vulnerability of the Internet and to detect both well-known and unknown virus/worm/attacks. We will further characterize and diagnose the unknown anomalies and network failures.

    Winter  2009
    Chen    TuTh  2-3:20
    EECS 452 - Advanced Computer Architecture I
    Design and evaluation of modern uniprocessor computing systems. Evaluation methodology/metrics and caveats, instruction set design, advanced pipelining, instruction level parallelism, prediction-based techniques, alternative architectures (VLIW, Vector and SIMD), memory hierarchy design, I/O, and recent trends in architecture (e.g., low-power architectures, application-specific processors). Case studies.

    Spring  2009
    G. Memik    TuTh  2-3:20
    EECS 453 - Advanced Computer Architecture II
    Parallel computer architecture and programming models. Message passing and shared memory multiprocessors. Scalability, synchronization, memory consistency, cache coherence. Memory hierarchy design. Network design.

    Winter  2009
    Joseph    MWF  3:30-4:50
    EECS 454 - Modeling and Analysis of Communication Networks
    Basic techniques for modeling and analyzing data communication networks. Protocol specification and correctness, queuing models, loss networks, multi-class queues and scheduling, graph-based and flow-based routing, congestion control and pricing.
     
    EECS 455 - Distributed Computing Systems
    Fundamentals and systems design aspects of distributed systems, paradigms for distributed computing, client-server computing, concurrency control, distributed file systems, resource management, high-performance computing aspects.
     
    EECS 457 - Advanced Algorithms
    Design and analysis of advanced algorithms: graph algorithms; maximal network flows; min-cost flow algorithms; convex cost flows.

    Spring  2009
    Zhou    TBA  TBA
    EECS 459 - VLSI Algorithmics
    Design and analysis of algorithms for VLSI synthesis problems. Study both theoretical and practical aspects of CAD-tool development in VLSI environments.
     
    EECS 463 - Adaptive Filters
    Applications of adaptive filtering, autoregressive and moving average processes, linear prediction, lattice filters, Least Mean Square (LMS) algorithm, least squares filtering, convergence analysis.
     
    EECS 467 - Parallel and Distributed Database Systems
    File allocation and load balancing in parallel I/O systems. Distributed, scalable file systems. Declustering and range partitioning. Parallel processing of relational queries: sort, clustering and join algorithms. Distributed database systems architectures. Query processing in distributed database systems: Processing simple queries; using semi-joins and joins for general queries.
     
    EECS 478 - Advanced Digital Communications
    Digital modulation, complex base band signaling, sequence estimation, the Viterbi algorithm, probability of error analysis, equalization, and code-division multiple access.

    Winter  2009
    Honig    TuTh  2-3:20
    EECS 479 - Nonlinear Optimization
    Numerical solution of unconstrained optimization problems, nonlinear least squares and nonlinear systems of algebraic equations, large-scale nonlinear optimization, quadratic programming, and constrained optimization.

    Spring  2009
    Nocedal    TuTh  2-3:20
    EECS 493 - Design and Analysis of High-Speed Integrated Circuits
    Issues that arise in the design and analysis of VLSI circuits at high speeds such as buffer sizing, repeater insertion, noise, electromigration, Elmore delay, scaling trends, and power consumption. Cross-listed as EECS 393.
     
    EECS 495 - Innovative Technologies in Autism
    None yet
     
    EECS 495 - Embedded Systems Design and Synthesis
    Embedded systems are computers within devices that are not generally regarded to be computers, e.g., the computers within automobiles and medical devices. This course will survey the field of real-time embedded system design and synthesis, introducing open research topics in the automatic design of reliable, high-performance, low power consumption, inexpensive embedded systems.

    Winter  2009
    Dick    TuTh  12:30-1:50
    EECS 495 - RTFM: Algorithmic Problem Solving and Programming in a Competitive Environment
    It is common for computer scientists to be confronted with challenging problems that require both quick algorithmic thinking and skillful programming to solve. This is the case both in industry and research, and is one of the reasons why programming puzzles occur so readily in job interviews and qualifying exams in the best companies and graduate programs. The goal of this course is to make students better algorithmic problem solvers and programmers by giving them the opportunity to practice these skills in a fun competitive environment
     
    EECS 495 - Internet Architectures
    This course will cover a broad range of topics relevant for evolution and redesign of Internet architectures, including design principles, evolvability, “clean-slate” design approach to Internet architectures, etc.

    Spring  2009
    Kuzmanovic    TBA  TBA
    EECS 495 - Computational Photography
    The pre-requisites are EECS 351 (Introduction to Computer Graphics) or consent of the instructor.

    Winter  2009
    Tumblin    TuTh  3:30-4:50
    EECS 495 - Introduction to Computational Complexity
    This course will give an overview of computational complexity including Turing machines, relationships between time and memory, determinism and nondeterminism, reductions and the P versus NP problem. We will explore more recent results on randomness including pseudorandom generators and the power of probabilistic proofs. This course is designed for graduate students or advanced undergraduates. We will assume familiarity with mathematical proofs but no previous knowledge of Turing machines or computational complexity. Prerequisites: EECS 336 or instructor's permission.

    Fall  2008
    Fortnow    MWF  10-10:50

    Fall  2008
    Fortnow    MWF  9-9:50

    Spring  2009
    Fortnow    TBA  TBA
    EECS 495 - Kolmogorov Complexity
    This course will study the Kolmogorov complexity of finite strings which measures the information content (or randomness) of a string by the size of the smallest program that generates it. This simple idea has a surprisingly deep theory with many exciting applications to logic and computer science. We cover the basic relationships of Kolmogorov complexity, applications with an emphasis in connections with computational complexity. Topics include: Basic Properties of the Kolmogorov function, Symmetry of Information, The Incompressibility Method, Resource-Bounded complexity. This course is designed for graduate students or advanced undergraduates. We will assume familiarity with mathematical proofs but no previous knowledge of Turing machines or computational complexity.
     
    EECS 495 - Distributed Systems in Challenging Environments
    This seminar will review new ideas and ongoing projects that are pushing distributed systems into new and challenging domains - from outerspace to underwater. The class is structured as a traditional seminar with readings, class discussion and a quarter-long research project.
     
    EECS 495 - Introduction to Cryptography
    This course will give a broad overview of cryptographic techniques with an emphasis on modern tools based on prime numbers. We discuss many basic protocols from classical tools to DES, RSA and discrete logarithms and applications such as digital signatures, secure protocols, secret sharing, secure computation and zero-knowledge proofs. As time permits we will explore connections between cryptography, coding theory and quantum mechanics. This course is designed for undergraduates. A course in discrete mathematics (like EECS 310) is strongly recommended.
     
    EECS 510 - Information Processing in Sensor Networks
    Introduction to sensor networks: hardware, software platforms and applications. Embedded operating systems : TinyOS. The wireless network architecture and protocols for the MAC layer. Localizaton algorithms and sensor area coverage. Routing algorithms: data-centric, geographical and energy-aware routing. Query processing in sensor networks: in-network aggregation and routing. Introduction to TinyDB. Target detection and tracking.

    Fall  2008
    Scheuermann    TuTh  3:30-4:50
    EECS 510 - Statistical Pattern Recognition
    Fundamental and advanced topics in statistical pattern recognition including Bayesian decision theory, Maximum-likelihood and Bayesian estimation, Nonparametric density estimation, Component Analysis and Discriminants, Kernel machines, Feature selection, dimension reduction and embedding, Boosting, Minimum description length, Mixture models and clustering, Spectral clustering, Bayesian network and Hidden Markov models, with the applications to image and video pattern recognition.
     
    EECS 510 - Algorithmic Mechanism Design
    This course provides an in-depth study of topics in the interface of theoretical computer science and the economics subfield of mechanism design. This course will survey foundational mechanism design theory, it will study computational issues in economic settings, and will discuss the role of algorithmic techniques in economic analysis. Motivating applications will be taken from the design of Internet services such as auctions, advertising, and reputation systems.
     
    EECS 510
    Please contact the Professor teaching this course for more information
     
    EECS 510 - Interconnection Networks
    Prerequisite : Basic understanding of computer architecture (EECS 361 or equivalent) This class will be offered for the first time and focus on the interconnection network aspect of computer architecture. With the performance of processor and memory continuing to increase, the communication through the interconnection network is becoming more of a bottleneck in determining the overall performance and cost of systems. In addition, electronic systems are becoming increasingly parallel – from multi-core microprocessor chips in PCs, servers, mobile devices and game stations; to optical cross-connects and IP routers in the Internet; to supercomputers. As a result, the design of interconnection networks, the fabric connecting these parallel systems, is becoming a critical for system designers and researchers. The course will be conducted in two phases. The first phase consists of lectures on the basics of interconnection networks. The second half of the class will consist of case studies presented by students. The case studies will focus on the network design in a variety of systems including on-chip networks, SoC, supercomputer networks, and clusters. In addition, there will be a project that looks at the design of on-chip networks for future many-core architectures.
     
    Northwestern University Robert R. McCormick School of Engineering
and Applied Science Electrical Engineering and Computer Science Department