Home Academics Course Descriptions
Course Descriptions
purple line

EA1 Engineering Analysis

The Engineering First®program is an innovative first-year curriculum for McCormick undergraduates. The program gives Northwestern engineering students the fundamentals of a successful engineering education, and lets them experience more real engineering early in their undergraduate careers.

The program is composed of two integrated sequences: Engineering Analysis and Engineering Design and Communication (EDC)

GEN_ENG-205 1: Engineering Analysis 1 – Computational Methods and Linear Algebra
GEN_ENG 205-2: Engineering Analysis 2 – Linear Algebra and Mechanics
GEN_ENG 205-3: Engineering Analysis 3 – Dynamic System Modeling
GEN_ENG 205-4: Engineering Analysis 4 – Differential Equations
Learn more:  www.mccormick.northwestern.edu/undergraduates/curriculum/engineering_first/

 

EDC - Engineering Design and Communication

The Engineering First®program is an innovative first-year curriculum for McCormick undergraduates. The program gives Northwestern engineering students the fundamentals of a successful engineering education, and lets them experience more real engineering early in their undergraduate careers.

The program is composed of two integrated sequences: Engineering Analysis and Engineering Design and Communication
Learn more:  www.mccormick.northwestern.edu/undergraduates/curriculum/engineering_first/

 

EECS 100 - Electrons, Photons, and Bits: Adventures in Electrical and Computer Engineering

CATALOG DESCRIPTION: Introduction to contemporary topics in electrical and computer engineering via lectures, demonstrations, lab tours, and invited speakers from industry and Government. Weekly reading and writing assignments.
Read more...
 

EECS 101 (CS 101) - An Introduction to Computer Science For Everyone

CATALOG DESCRIPTION: Computation is ubiquitous: DNA contains biological programs and is a part of all lifeforms, the human brain is a powerful computer, and the digital computer has revolutionized most aspects of our society. The primary goal of this course is to explore the whats, whys, and hows of computer science.

  • This course is a required Core course in the CS curriculum in McCormick and Weinberg
Read more...
 

EECS 110 - Introduction to Computer Programming (in C/Python)

CATALOG DESCRIPTION: 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 and Spring are offered in Python; Winter is offered in C. 

This is an introductory programming course that is not part of the major. It provides an introduction to programming for those that can benefit from becoming better programmers, but without committing to the major student's version of the course.

  • This course is approved for Weinberg Area II (Formal Studies) distribution credit
Read more...
 

EECS 111 - Fundamentals of Computer Programming I

CATALOG DESCRIPTION: 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.

  • This course is approved for Weinberg Area II (Formal Studies) distribution credit
  • This course is a required Core course in the CS curriculum in McCormick and Weinberg
Read more...
 

EECS 130 - Tools and Technology of the World Wide Web

CATALOG DESCRIPTION: This class is an introduction to the current state of tool and techniques used to design, build and maintain web pages, sites and applications. We say current, because things change and by the time you graduate, three new languages will be on the scene, four old approaches will pass away, and an entirely new vision of online information will have arisen.

Read more...
 

EECS 202 - Introduction to Electrical Engineering

CATALOG DESCRIPTION: Introduction to fundamental concepts and applications of electrical engineering.  Topics include:  circuit analysis;  sinusoids and spectra;  analog filtering;  signal sampling and digital filtering;  channel capacity;  feedback and control systems;  optical components and systems;  transistor and operational amplifiers;  and semiconductor devices including diodes, transistors, light-emitting diodes, and lasers.

Read more...
 

EECS 203 - Introduction to Computer Engineering

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 205 - Fundamentals of Computer System Software

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 211 - Fundamentals of Computer Programming II

CATALOG DESCRIPTION:  Object-oriented programming, classes and data hiding, dynamic object construction and destruction, derived classes and inheritance, virtual functions; functions, call by value/reference, overloading; abstract data types; standard template libraries; exception
handling; introduction to UNIX, file processing, process management.

  • This course is a required Core course in the CS curriculum in McCormick and Weinberg
Read more...
 

EECS 213 - Introduction to Computer Systems

CATALOG DESCRIPTION: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.

  • This course is a required Core course in the CS curriculum in McCormick and Weinberg

Instructor's Course Home Page

Read more...
 

EECS 221 - Fundamentals of Circuits

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 222 - Fundamentals of Signals and Systems

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 223 - Fundamentals of Solid State Engineering

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 224 - Fundamentals of Electromagnetics and Photonics

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 225 - Fundamentals of Electronics

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 230 - Programming for Engineers

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 250 - Physical Electronics and Devices

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 270 - Applications of Electronic Devices

CATALOG DESCRIPTION: DC and AC networks, rectifiers, transistor amplifiers, feedback and operational amplifiers, digital electronics, and microprocessors. Not open to electrical or computer engineering majors.
Read more...
 

EECS 295 - Introductory Robotics Laboratory

CATALOG DESCRIPTION: A laboratory-based introduction to robotics. Focus will be on both hardware (sensors and actuators) and software (sensor processing and behavior development). Topics will include: the basics in kinematics, dynamics, control, and motion planning; and an introduction to Artificial Intelligence (AI) and Machine Learning (ML).

  • This course fulfills the AI depth requirement. 

Read more...
 

EECS 302 - Probabilistic Systems and Random Signals

CATALOG DESCRIPTION: Basic concepts of probability theory and statistics, random variables, moments; multiple random variables, conditional distributions, correlation; random signals; applications to engineering systems.
Read more...
 

EECS 303 - Advanced Digital Logic Design

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 307 Communications Systems

CATALOG DESCRIPTION: 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.

Tags: Guo Fall 2013
Read more...
 

EECS 308 - Applied Electromagnetics and Photonics

CATALOG DESCRIPTION: Transmission lines; impedance transformation; transients on lines; electromagnetic waves; electromagnetic wave reflection and transmission; metallic, dielectric and optical waveguides and wave transmission; single and multimode fibers; antennas and diffraction, antenna arrays; communication, and radar.
Read more...
 

EECS 212 - Mathematical Foundations of Computer Science

CATALOG DESCRIPTION: 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.
  • (Formerly EECS 310)
  • This course is a required Core course in the CS curriculum in McCormick and Weinberg
Read more...
 

EECS 214 - Data Structures and Data Management

CATALOG DESCRIPTION: 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.
  • (Formerly EECS 311)
  • This course is a required Core course in the CS curriculum in McCormick and Weinberg
Read more...
 

EECS 313 - Telecommunication Networks for Multimedia

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 317 - Data Management and Information Processing

CATALOG DESCRIPTION: 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.
  • 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.

Read more...
 

EECS 321 - Programming Languages

CATALOG DESCRIPTION:  This course introduces students to the key features of programming languages. Students implement a series of interpreters that nail down the precise details of how various aspects of programming languages behave.  Students are assumed to understand trees and (mathematical) functions that process them; the course builds up to the features of real programming languages from there.
Read more...
 

EECS 322 - Compiler Construction

CATALOG DESCRIPTION: The compiler is the programmer's primary tool. Understanding the compiler is therefore critical for programmers, even if they never build one. Furthermore, many design techniques that emerged in the context of compilers are useful for a range of other application areas. This course introduces students to the essential elements of building a compiler: parsing, context-sensitive property checking, code linearization, register allocation, etc. To take this course, students are expected to already understand how programming languages behave, to a fairly detailed degree. The material in the course builds on that knowledge via a series of semantics preserving transformations that start with a fairly high-level programming language and culminate in machine code.
  • This course satisfies the project requirement.

Read more...
 

EECS 325 - Artificial Intelligence Programming

CATALOG DESCRIPTION: 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.

Instructor's course page

Read more...
 

EECS 328 - Numerical Methods for Engineers

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 330 - Human Computer Interaction

CATALOG DESCRIPTION: 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. 
  • This course satisfies the project requirement.

Read more...
 

EECS 332 - Digital Image Analysis

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 333 - Introduction to Communication Networks

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 335 - Introduction to the Theory of Computation

Catalog Description: This course gives an introduction to the mathematical foundations of computation. The course will look at Turing machines, universal computation, the Church-Turing thesis, the halting problem and general undecidability, Rice’s theorem, the recursion theorem, efficient computation models, time and space (memory) bounds, deterministic and nondeterministic computation and their relationships, the P versus NP problem and hard problems for NP and beyond.

Note: This course will replace Math 374 (Theory of Computability and Turing Machines) which is listed as a recommended way to fulfill the undergraduate theory breadth requirement in CS but hasn’t been taught in several years. The Math department is happy to give it up.

 

Read more...
 

EECS 336 - Design and Analysis of Algorithms

CATALOG DESCRIPTION: Algorithm design and analysis is fundamental to all areas of computer science and gives a
rigorous framework for the study optimization. This course provides an introduction to algorithm design through a survey of the common algorithm design paradigms of greedy optimization, divide and conquer, dynamic programming, network flows, reductions, and randomized algorithms. Important themes that will be developed in the course include the algorithmic abstraction-design-analysis process and computational tractability (e.g., NP-completeness).

Read more...
 

EECS 337 - Introduction to Semantic Information Processing

CATALOG DESCRIPTION: 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.

  • This course satisfies the project requirement 
Read more...
 

EECS 338 - Practicum in Intelligent Information Systems

CATALOG DESCRIPTION: 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.

  • This course satisfies the project requirement.
Read more...
 

EECS 339 - Introduction to Databases

CATALOG DESCRIPTION: 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.

  • This course satisfies the project requirement. 

Read more...
 

EECS 340 - Introduction to Computer Networking

CATALOG DESCRIPTION: 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.

  • This course satisfies the project requirement.
Read more...
 

EECS 343 - Operating Systems

CATALOG DESCRIPTION: 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.
  • Approved for Systems Breadth and Depth in the CS curriculum in McCormick and Weinberg
  • This course satisfies the project requirement. 
Read more...
 

EECS 344 - Design of Computer Problem Solvers

CATALOG DESCRIPTION: Principles and practice of organizing and building AI reasoning systems. Topics include pattern-directed rule systems, truth-maintenance systems, and constraint languages.

  • This course satisfies the project requirement. 
Read more...
 

EECS 345 - Distributed Systems

CATALOG DESCRIPTION: 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.  

  • This course satisfies the project requirement

Read more...
 

EECS 346 - Microprocessor System Design

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 347-1 - Microprocessor Systems Project I

CATALOG DESCRIPTION: Design, prototype and test individual projects involving microprocessors and related devices such as PAL/FPGA and special purpose ICs. Embedded-system tools such as special purpose compilers and ICE (in-circuit emulation). Manufacturing issues such as PCB layout. Survey of microprocessor platforms. Part I deals with specification and design.

Read more...
 

EECS 347-2 - Microprocessor Systems Project II

CATALOG DESCRIPTION: Design, prototype and test individual projects involving microprocessors and related devices such as PAL/FPGA and special purpose ICs. Embedded-system tools such as special purpose compilers and ICE (in-circuit emulation). Manufacturing issues such as PCB layout. Survey of microprocessor platforms. Part II deals with implementation, testing, and documentation.

Read more...
 

EECS 348 - Introduction to Artificial Intelligence

CATALOG DESCRIPTION: Core techniques and applications of artificial intelligence. Representation retrieving and application of knowledge for problem solving. Hypothesis exploration, theorem proving, vision and neural networks.

Read more...
 

EECS 349 - Machine Learning

CATALOG DESCRIPTION: Machine Learning is the study of algorithms that improve automatically through experience. Topics covered typically include Bayesian Learning, Decision Trees, Genetic Algorithms, Neural Networks.

Read more...
 

EECS 350 - Introduction to Computer Security

CATALOG DESCRIPTION: 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.

  • This course satisfies the project requirement
Read more...
 

EECS 351 - Introduction to Computer Graphics

CATALOG DESCRIPTION: 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 four projects that teach: 1) Shape descriptions; points, lines, polys, and trees of transformations; 2) Viewing: how to make a 3D camera that computes a picture 3) lighting and shading; 4) textures and curved surfaces. We will learn OpenGL (DirectX is similar) and GLUT, with brief surveys of advanced topics.

  • This course satisfies the project requirement.
Read more...
 

EECS 352 - Machine Perception of Music & Audio

CATALOG DESCRIPTION: 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.

  • This course satisfies the project requirement 
Read more...
 

EECS 353 - Digital Microelectronics

CATALOG DESCRIPTION: 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.

Tags: Sahakian
Read more...
 

EECS 354 - Network Penetration and Security

CATALOG DESCRIPTION: 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.

  • This course satisfies the project requirement.

Read more...
 

EECS 355 - ASIC and FPGA Design

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 356 - Introduction to Formal Specification and Verification

CATALOG DESCRIPTION : 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.

Read more...
 

EECS 357 - Introduction to VLSI CAD

CATALOG DESCRIPTION : Basic concepts in VLSI CAD with emphasis on physical design, fundamental algorithms for CAD problems, development of CAD tools.

Read more...
 

EECS 358 - Introduction to Parallel Computing

CATALOG DESCRIPTION: Introduction to parallel computing for scientists and engineers. Shared memory parallel architectures and programming, distributed memory, message-passing data-parallel architectures, and programming.

Read more...
 

EECS 359 - Digital Signal Processing

CATALOG DESCRIPTION: Discrete-time signals and systems, Discrete-Time Fourier Transform, z-Transform, Discrete Fourier Transform, Digital Filters.

Read more...
 

EECS 360 - Introduction to Feedback Systems

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 361 - Computer Architecture I

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 362 - Computer Architecture Project

ATALOG DESCRIPTION: 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.

Read more...
 

EECS 363 - Digital Filtering

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 366 - Designing and Constructing Models with Multi-agent Languages

CATALOG DESCRIPTION: Please refer to the course schedule and contact the Professor teaching this course for more information.

 

EECS 368/468 - Programming Massively Parallel Processors with CUDA

CATALOG DESCRIPTION:  GPU architecture, CUDA programming model, parallel programming optimization techniques, profilers and performance analysis tools, OpenCL. (Formerly numbered EECS 395/495.)

Read more...
 

EECS 369 - Introduction to Sensor Networks

CATALOG DESCRIPTION: This course will provide coverage of the basic hardware and software platforms for sensor networks and will address in detail several algorithmic techniques for data routing, querying processing, and topology management. The students will obtain hands-on experience through programming projects involving TinyOS or MantisOS, running on Telos/MicaZ platforms. In addition, a number of prototype systems, such as TinyDB will be studied, in the context of various application domains of sensor networks.

Read more...
 

EECS 370 - Computer Game Design

CATALOG DESCRIPTION: 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.
http://www.cs.northwestern.edu/~forbus/CS370/

  • This course satisfies the project requirement
Read more...
 

EECS 371 - Knowledge Representation and Reasoning

COURSE DESCRIPTION: Principles and practices of knowledge representation and reasoning, including logics, ontologies, common sense knowledge, and Semantic Web technologies.
 
  • This course satisfies the project requirement.
 
Read more...
 

EECS 372/472 - Designing and Constructing Models with Multi-Agent Languages

CATALOG DESCRIPTION: This course focuses on the exploration, construction and analysis of multi-agent models. Sample models from a variety of content domains are explored and analyzed. Spatial and network topologies are introduced. The prominent agent-based frameworks are covered as well as methodology for replicating, verifying and validating agent-based models. We use state of the art ABM and complexity science tools. This course can help satisfy the project course and artificial intelligence area course requirement for CS and CIS majors, and satisfy the breadth requirement in artificial intelligence for Ph.D. students in CS. It also satisfies a design course requirement for Learning Sciences graduate students, counts towards the Cognitive Science specialization and as an advanced elective for the Cognitive Science major.

Read more...
 

EECS 374 - Introduction to Digital Control

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 378 - Digital Communications

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 379 - Introduction to Lasers and Fiber Optics

CATALOG DESCRIPTION: Optical fields as a subset of electromagnetic fields, optical cavities, theory of laser action, and the basics of optical waveguides, including optical fiber.

Read more...
 

EECS 380 - Wireless Communications

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 381 - Electronic Properties of Materials

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 382 - Photonic Information Processing

CATALOG DESCRIPTION: Introduction to photonic information processing; coherent and incoherent light; electro-optic and acousto-optic modulation; optical signal processing; holography; optical storage.

Read more...
 

EECS 383 - Fiber-Optic Communications

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 384 - Solid State Electronic Devices

CATALOG DESCRIPTION: Applications of energy band models for semiconductors. Carrier statistics and transport. Diodes, bipolar and field-effect transistors. Integrated circuits. Heterojunction devices.

Read more...
 

EECS 385 - Optoelectronics

CATALOG DESCRIPTION: Introduction to solid-state optoelectronic devices; display devices, laser diodes, photodetectors, and light modulators; optical waveguides and fibers; system application of optoelectronic devices.

Read more...
 

EECS 386 - Computational Electromagnetics and Photonics

CATALOG DESCRIPTION: 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.

Tags: Li
Read more...
 

EECS 388 - Nanotechnology

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 389 - Superconductivity and Its Applications

CATALOG DESCRIPTION: Properties of materials in the superconducting state; charge flow dynamics of type II superconductors; high T c superconductors; applications for computers and high-frequency devices.

Read more...
 

EECS 390 - Introduction to Robotics

CATALOG DESCRIPTION: Homogeneous vector and plane, homogeneous transformation, position and orientation transformations, kinematics and inverse kinematic solutions of robot manipulators and mobile robots, Jacobian and inverse Jacobian relation, robot trajectory and task planning, mobile robot planning, dynamic formulation and computation of robot manipulators, robot programming and control systems.

Read more...
 

EECS 391 - VLSI Systems Design

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 392 VLSI Systems Design Projects

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 393/493 - Design and Analysis of High-Speed Integrated Circuits

CATALOG DESCRIPTION: I ssues 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.

Read more...
 

EECS 394 - Software Project Management

CATALOG DESCRIPTION: 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.
Instructor's Course Home Page

Read more...
 

EECS 395 (C. Liu)

CATALOG DESCRIPTION:
Tags: Liu
Read more...
 

EECS 395 - Algorithmic and Economic Aspects of Social Networks

CATALOG DESCRIPTION: Algorithmic and economic fundamentals of social networks, including standard measures of network analysis like clustering, diameter, and degree distribution; network clustering and community detection algorithms; random and strategic network formation models; search, diffusion, and learning in networks.
Read more...
   

EECS 395/495 - Algorithmic Mechanism Design

CATALOG DESCRIPTION: This course combines game theory and economics with algorithms. Algorithms studies at simple processes for finding optimal or near optimal solutions to complicated optimization problems. The output of an algorithm is often an allocation of resources, e.g., which edges in a graph are in the shortest path or which tasks can be scheduled on a computer server. Game theory and economics study the outcome of systems of selfish agents, each optimizing their own objective. Algorithmic mechanism design combines the two fields and looks to find simple processes that result in good allocations of resources even when the input to these processes are provided by selfish agents who may try to game the system to get a more favorable outcome for themselves. These settings of selfish agents are especially relevant in computer networks such as the Internet. Unfortunately, optimal mechanisms are almost never simple enough to be implemented in practice, therefore, this course develops techniques for designing and analyzing simple mechanisms that approximate the optimal ones. From a computer science perspective, this course can be views as adding game theory to standard settings for approximation algorithms. From an economics perspective, this course can be viewed as adding approximation to standard settings in auction theory and mechanism design. Examples will be taken from eBay, Internet routing, Internet broadcast, FCC spectrum auction, and Internet advertising.
Tags: Hartline
Read more...
       

EECS 395/495 - Cardiovascular Instrumentation

Please contact the Professor teaching this course for more information
Read more...
   

EECS 395/495 - Collaboration Technology

COURSE DESCRIPTION: This course focuses on understanding communication and behavior in groups, with a particular focus on the unique and sometimes difficult issues raised by the collaborative use of communication and computing technologies. Topics include theories of group and organizational behavior, interpersonal awareness, privacy, trust, technology-mediated communication, and technology evaluation and adoption.

Crosslisted with COMM_ST 395-0

Read more...
 

EECS 395/495 - (Advanced Topics in) Computer Architecture

CATALOG DESCRIPTION: The course discusses modern processor architectures, the constraints that limit their design and programmability, and promising techniques to mitigate these constraints.

Read more...
 

EECS 395/495 - Computational Auditory Scene Analysis

CATALOG DESCRIPTION: Computational auditory scene analysis (CASA) is the study of how a computational system can organize sound into perceptually meaningful elements. Problems in this field include source separation (splitting audio mixtures into individual sounds), source identification (labeling a source sound), and streaming (finding which sounds belong to a single explanation/event). This course is an advanced graduate course covering current research in the field.

Tags: Pardo
Read more...
 

EECS 395/495 - (Special Topics) Computational Complexity

CATALOG DESCRIPTION: This course will cover a variety of topics in computational complexity including pseudorandomness, counting complexity, quantum computing and the structure of complete sets.
Tags: Instructor
Read more...
 

EECS 395/495 - Computational Geometry

CATALOG DESCRIPTION: After a brief introduction to numerical computation issues, the course will continue with a sequence of canonical problem settings (e.g., Intersections; Arrangements/Duality), mostly focusing on the combinatorial aspects of the algorithms and the impact of the data structures. Each part will be casted in respective applications settings (GIS; Motion Planning; etc). The last part of the course will present several potpourri-like topics, e.g., Skeletons/Medial Axis; Davenport-Shinzel sequences.

Read more...
 

EECS 395/495 - Computational Photography

CATALOG DESCRIPTION: Computational photography combines plentiful low-cost computing, digital sensors, actuators, and lights to escape the limitations of traditional film-like methods. New methods offer unbounded dynamic range and variable focus, lighting, viewpoint, resolution and depth of field; hints about shape, reflectance, and location. Instead of fixed digital snapshots and video playback, computational methods promise direct interactions to explore what we photograph. The pre-requisites are EECS 351 (Introduction to Computer Graphics) or consent of the instructor.

Read more...
 

EECS 395/495 - Derandomization

COURSE DESCRIPTION: In the past twenty years we have seen great progress in removing the need for random bits based on assumptions of hard languages and in some cases no assumptions at all. This course will discuss pseudorandom generators for low time and memory algorithms, extracting randomness from unknown distributions and constructions of combinatorial structures such as expander graphs with their applications.

Read more...
 

EECS 395/495 - Distributed Systems in Challenging Environments

CATALOG DESCRIPTION:  A top on interesting ideas and ongoing projects pushing distributed systems in to new and challenging domains.
Read more...
 

EECS 395/495 - (Special Topics) Embedded Systems

CATALOG DESCRIPTION: Introduction to the design and evaluation of embedded systems, with emphasis on the system-level aspects of embedded systems.  Topics include modeling (models of computation and models of communication), survey of embedded system hardware, software and operating system issues specific to embedded system design, mapping specifications to hardware, and testing and evaluation of embedded systems.

Read more...
 

EECS 395/495 - Geospatial Vision and Visualization

COURSE DESCRIPTION: Geospatial information has become ubiquitous in everyday life, as evidenced by on-line mapping services such as Microsoft Virtual Earth/Bing Map, the recent addition of "place" features on social network websites such as Facebook, and free navigation on Nokia smart phones. Behind the scenes is digital map content engineering that enables all types of location-based services. Course material will be drawn from the instructor's research experience at NOKIA Location and Commerce (formerly NAVTEQ), the Chicago-based leading global provider of digital map, traffic and location data. This course will provide comprehensive treatment of computer vision, image processing and visualization techniques in the context of digital mapping, global positioning and sensing, next generation map making, and three-dimensional map content creations. Real world problems and data and on-site industry visits will comprise part of the course curriculum.

  • The course satisfies the interfaces breadth and depth requirements.
Read more...
 

EECS 395/495 - Human-level Artificial Intelligence

CATALOG DESCRIPTION: 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 AI systems that capture larger constellations of human cognitive abilities and the problems that lie ahead in creating human-level AIs. Extensive reading, writing, and discussion will be required, as well as a term project.

Tags: Forbus
Read more...
 

EECS 395/495 - (Special Topics) Innovation in Journalism & Technology

CATALOG DESCRIPTION:  This is a joint projects class with Medill in conjunction with the newly announced Knight News Innovation Lab at Northwestern.  McCormick students (primarily CS and CE majors) and journalism students will join cross-functional teams to assess and develop, from both an audience/market perspective and a technology perspective, a range of technology projects with the ultimate goal of deployment for impact in media and journalism.  Some projects may continue over the summer if students are interested.

Read more...
 

EECS 395/495 - Intermediate Computer Graphics

CATALOG DESCRIPTION: (to become CS351-2) Second in a 3-course series on the methods and theory of computer graphics, this project-oriented course explores how to describe shapes, movement, and lighting effects beyond the abilities of the standard OpenGL rendering pipeline. It includes interactive particle systems, simple rigid-body dynamics, explicit and implicit dynamics solvers (suitable for smoke, simple fluids and cloth) and an introduction to ray tracing (chrome, glass, and diffraction) with a few basic ideas for global illumination.
  • This course satisfies the project requirement.
Instructor's PDF
Read more...
 

EECS 395/495 - Introduction to Cryptography

This course will give a broad overview of cryptographic techniques withan 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.
instructor-course-page-button1

Read more...
 

EECS 395/495 - Kolmogorov Complexity

CATALOG DESCRIPTION: An introduction to computational complexity beyond the P versus NP question. Topics include the polynomial-time hierarchy and alternation, counting complexity, interactive proofs and circuit complexity.
Read more...
 

EECS 395/495 - Probabilistic Graphical Models

CATALOG DESCRIPTION: Probabilistic graphical models are a powerful technique for handling uncertainty in machine learning. The course will cover how probability distributions can be represented in graphical models, how inference and learning are performed in the models, and how the models are utilized for machine learning in practice.
Read more...
   

EECS 395/495 - Networking Problems in Cloud Computing

CATALOG DESCRIPTION: This course will cover a broad range of topics related to networking problems in cloud computing, including network structure of Internet Data Centers, layer 2 data network fabric, lease management and partitioning, data placement for geo-distributed cloud services, energy efficient cloud design, flow scheduling, congestion control, i.e., the incast problem, and more.

Read more...
 

EECS 395/495 - Online Advertising: A Systems Approach (Kuzmanovic)

CATALOG DESCRIPTION: This course will cover a broad range of topics related to online advertising on the web, mobile, search-engines, and online social networks. Example topics include online advertising architectures, click frauds and malicious advertising, privacy-preserving online advertising, measuring and predicting the effects of online advertising, behavioral and contextual advertising, and more.
Read more...
 

EECS 395/495 - Object-Oriented Languages and Environments

CATALOG DESCRIPTION: After a short motivational discussion of software-design issues (i.e., modularization) and the impact of the O-O paradigm in the software lifecycle, the first part of this course will give a brief overview the programming paradigms and representative languages, specifically focusing on the O-O one. The second part of the course will focus on Smalltalk, as a representative of pure Object-Oriented languages featuring: (1) every operation is a message; (2) dynamic typing/binding and all-reference semantics; (3) everything is an object (classes too). In the third part of the course, we will contrast this with the O-O capabilities of the C++, which will be studied in detail – in the lieu of the fact that C++ is a “hybrid” O-O language (e.g., its “default behavior” is to be statically typed). During the last week of the course, a comparative analysis of the O-O languages will be discussed, with a special focus on placing Java along the spectrum.

Tags: Trajcevski
Read more...
 

EECS 395/495 - The Probabilistic Method

CATALOG DESCRIPTION:  This course will give a basic introduction to discrete probability including random variables, expectation, variance and probabilistic inequalities. We then use these tools to show the existence of combinatorial objects with certain properties by choosing them at random and showing the property holds with positive probability, for example Ramsey graphs with no large clique or independent set.
Read more...
 

EECS 495 - Probabilistic Systems and Random Signals

CATALOG DESCRIPTION: Basic concepts of probability theory and statistics, random variables, moments; multiple random variables, conditional distributions, correlation; random signals; applications to engineering systems.  NOTE: This is the graduate level version of EECS 302; additional material and different homework will be provided for EECS 495.
Tags: Haddad
Read more...
 

EECS 395/495 - Programming Languages Seminar

This course is a PL reading seminar aimed at graduate students (or undergraduates who have taken 321 and 322 and want more). The content varies from year to year; contact the instructor for this year's topic.

Tags: Findler
Read more...
 

EECS 395/495 - (Advanced Topics in) Quantum Electronics

CATALOG DESCRIPTION: Study of advanced topics of current interest in the field of quantum electronics, with an emphasis of atom-laser interaction. Selected topics from the following areas will be covered, with an emphasis on practical applications: Semi-Classical Atom-Laser Interaction, Quantized Radiation Field, Cavity Quantum Electrodynamics, Fundamental Formalisms in Quantum Noise, Quantum Theory of Spontaneous Emission, and Quantum Theory of Laser.

Read more...
 

EECS 395 - Game development studio

CATALOG DESCRIPTION: In this course, students will design and develop 3D game games using the Unity engine and the agile scrum development methodology.  The focus will be on project work, both software development (programming) and iterative design, however lecture material will also be included on game architecture and the MDA framework.  
 (This course was formerly known as "EECS-395/495 Real-Time 3D Game Engine Design")

  • This course satisfies the project requirement; Interfaces (breadth or depth); software development (breadth)
Read more...
 

EECS 395/495 - Simulation-Based Virtual Characters for Interactive Entertainment

CATALOG DESCRIPTION: This course will cover the basic principles of character simulation, including artificial intelligence, physical simulation, and animation.  Grading will be based on programming assignments and open projects involving the Twig procedural animation system.  AI topics will include: emotion and personality simulation, social simulation, behavior-based programming, reactive planning, and path planning.  Other topics will include physical simulation of rigid and non-rigid bodies, procedural animation, and control structures for interactive narrative.

Read more...
 

EECS 395/495 - Software Radio Laboratory

CATALOG DESCRIPTION: A project-based course on the principles and applications of software defined radios. Participants will learn how to transmit, receive, analyze and process radio signals and will be prepared to use this knowledge in the research of wireless communications.  The software defined radio platforms available include the Universal Software Radio Peripherals from National Instruments (NI USRP) and the Wireless Open-access Research Platform (WARP) developed by the Rice University.

Tags: Guo
Read more...
 

EECS 395/495 - Special Relativity in Optics

CATALOG DESCRIPTION: This course will introduce students to Special Relativity (SR), illustrate the relation between SR and Maxwell’s Equations, and explain the origin of magentic fields and forces.  In addition, it will describe quantitatively how modern optical devices and systems such as Sagnac interferometers, gyroscopes, accelerometers, clocks and the global positioning system must take into account the effects of SR.
Tags: Shahriar
Read more...
 

EECS 395/495 (LRN_SCI 451) - Tangible Interaction Design and Learning (Horn)

CATALOG DESCRIPTION: Emerging interactive technologies are rapidly transforming the ways in which we work, play, communicate, and learn. Research on tangible interaction attempts to blur the line between digital technologies and the broader physical, social, and cultural worlds within which computer use is situated. This course will explore the use of tangible interaction to create innovative learning experiences and will review both theoretical and technological foundations of the field. Topics may include distributed cognition, embodied interaction, cultural forms, and tangible interaction frameworks.

Read more...
 

EECS 395/495 - Technology Infrastructure: Concepts, Requirements, Design and Operation

CATALOG DESCRIPTION: Requirements of large-scale computer systems and networks; space, power, environmental control, operational software and security; planning, data centers, network operations centers, national and international regulations and practices.

Read more...
 

EECS 395/495 - Web Information Retrieval and Extraction

Catalog Description: This course covers the fundamentals of Internet search engines, including Web crawlers, inverted indices, hyperlink analysis, and relevance ranking.  Also covered are advanced topics including information extraction for knowledge base construction, question answering, search marketing and ad targeting, and activity mining for relevance optimization and personalization.

Tags: Downey
Read more...
 

EECS 397 - Introduction to Real-time Sytems

CATALOG DESCRIPTION: Theory, design, and implementation of real-time systems, i.e., special-purpose computers that guarantee certain tasks will be completed by certain times.  Use of real-time operating systems.

  • This course satisfies the project requirement
Instructor's Course Home Page
Read more...
 

EECS 398 - Electrical Engineering Design

CATALOG DESCRIPTION: 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

Read more...
 

EECS 399 - Independent Study

CATALOG DESCRIPTION: Independent Study (can be taken multiple times)
 
  • Approved for Systems Breadth and Depth in the CS curriculum in McCormick and Weinberg
  • This course satisfies the project requirement. 
Read more...
 

EECS 401 - Fundamentals of Electronic Devices

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 402 - Advanced Electronic Devices

CATALOG DESCRIPTION: Semiconductor optics, heterojunctions, quantum wells, superlattices and resonant tunneling. Field-effect and potential-effect devices. Hot-electron devices. Microwave devices.

Read more...
 

EECS 403 - Quantum Semiconductors

CATALOG DESCRIPTION: 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.
Read more...
 

EECS 404 - Quantum Electronics

CATALOG DESCRIPTION: Review of quantum mechanics. Harmonic oscillator. Perturbation theory. Phonons and photons. Interaction of radiation and atomic systems. Einstein coefficients. Laser oscillation. Laser photon statistics.
Read more...
 

EECS 405 - Advanced Photonics

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 406 - Nonlinear Optics

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 407 - Quantum Optics (same as Physics 427)

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 408 - Computational Electrodynamics

CATALOG DESCRIPTION:  In this course we review the basics of Fourier optics.  The focus would be on statistical optics and optical imaging, which are related to various research activities in our department.

Read more...
 

EECS 409 - Semiconductor Lasers

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 410 - System Theory

CATALOG DESCRIPTION: 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.

Tags: Butz Fall 2013
Read more...
 

EECS 418 - Advanced Digital Signal Processing

CATALOG DESCRIPTION: Selected topics in digital signal processing such as digital speech processing, multidimensional digital signal processing, spectrum estimation, and error analysis.
Read more...
 

EECS 420 - Digital Image Processing

CATALOG DESCRIPTION: Fundamentals of image processing. Image compression, enhancement, and restoration. Image reconstruction from projections and partial information.
Read more...
 

EECS 421 - Multimedia Signal Processing

CATALOG DESCRIPTION: 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.
Tags: Katsaggelos
Read more...
 

EECS 422 - Random Processes in Communications and Control I

CATALOG DESCRIPTION: Fundamentals of random variables; mean-squared estimation; limit theorems and convergence; definition of random processes; autocorrelation and stationarity; Gaussian and Poisson processes; Markov chains.
Read more...
 

EECS 423 - Random Processes in Communications and Control II

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 425 - Quantum Electronics II: Noise, Modulation, and Quantum Properties of Laser Emissions

CATALOG DESCRIPTION: 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. T he 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.

 

Tags: Ho Spring 2014
Read more...
 

EECS 426 - Signal Detection and Estimation

CATALOG DESCRIPTION:  Simple-hypothesis detection problems, Continuous-time signal detection in white noise, Karhunen-Loeve expansion of random processes, detection of signals in colored noise, Detection of signals with random parameters, Bayes and maximum likelihood signal parameter estimation, Nonparametric detection, sequential detection procedures, Distributed detection techniques.

Read more...
 

LS 426 - Design of Technological Tools for Thinking and Learning

CATALOG DESCRIPTION: Constructionist approach to design. Participants discuss learning design literature, critique software, and design and build computer-based learning environments (CBLE). Student LE designs can include microworlds, goal-based scenarios, games, robots, and complex systems models among many others working primarily in Logo, NetLogo, and NetLogoLab.  
Read more...
 

EECS 427 - Optical Communications

CATALOG DESCRIPTION:  To be posted

Read more...
 

EECS 428 - Information Theory

CATALOG DESCRIPTION:  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, probability, physics.

Prerequisites by course: EECS 302 Probabilities.
Prerequisites by topic: Good understanding of basic probability.  (A review of probability theory will be given in Week 1.)

Tags: Guo Fall 2013
Read more...
 

EECS 429 - Selected Topics in Quantum Information Science and Technology

CATALOG DESCRIPTION: "Quantum Information and Quantum Computation" In this course the basics of quantum information science will be covered, including general descriptions of quantum state, measurement, and transformation. Emphasis will be put on quantum entanglement and its applications to quantum teleportation and quantum computation.  Their underlying theories and some expeimental development will be discussed.  Depending on class interests, selected topics on quantum error correction, quantum cryptogaphy, or quantum information theory will be covered.   
Tags: Yuen
Read more...
 

EECS 431 - Human Perception and Electronic Media

CATALOG DESCRIPTION: Fundamentals of visual, acoustic, and tactile perception; display devices; perceptual models for image, video,
acoustic, and tactile signal analysis, compression, quality evaluation, and understanding; multimodal signal processing and perception; content-based retrieval; sense substitution.

Read more...
 

EECS 432 - Advanced Computer Vision

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 435 - Neural Networks

CATALOG DESCRIPTION: 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

Tags: Lin
Read more...
 

EECS 440 - Advanced Networking

CATALOG DESCRIPTION: The Internet has evolved from a small, well controlled, and trusted network, into a gigantic, loosely controlled, and highly uncooperative infrastructure of astonishing scale and complexity. Not only that different hosts or networks have divergent functional or economical interests, but the Internet has become a “playground” for malicious denial-of-service attackers of all kinds. Moreover, its everyday operation is often poorly understood, and existing solutions to many of the classical challenges remain unsatisfactory. Hence, the design of Internet is far from complete, and it is certain that it will continue to change. This class is intended to help you understand how and why, by letting the Internet to become your “playground” for a quarter.
Read more...
 

EECS 441 - Resource Virtualization

CATALOG DESCRIPTION:  The bulk of the time in this class examining a virtual machine monitor (VMM) in depth, at the source code level.  The course explains the hardware/software interface of a modern x86 computer in detail.   A VMM is an operating system that is implemented directly on top of the hardware interface, and itself presents a hardware interface to higher-level software.  Students will also acquire valuable kernel development skills.
Prof. Dinda's EECS 441 course page

  • This course satisfies the project requirement
Read more...
 

EECS 443 - Advanced Operating Systems

CATALOG DESCRIPTION: Advanced operating systems. Topics covered include:
 
  • Approved for Systems Breadth and Depth in the CS curriculum in McCormick and Weinberg
  • This course satisfies the project requirement. 
Read more...
 

EECS 450 - Internet Security

CATALOG DESCRIPTION: Cybercrime has exploded over the last decade. In this course, we will start with the basic concepts of network security, then focus on security challenges of network and distributed systems as well as the counter-attack approaches.
 
  • Approved for Security Depth and Systems Breadth and Depth in the CS curriculum in McCormick and Weinberg
  • This course satisfies the project requirement. 
Click to see the instructor's course page.

Read more...
 

EECS 452 - Advanced Computer Architecture I

CATALOG DESCRIPTION: 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.

Read more...
 

EECS 453 - Parallel Architectures

CATALOG DESCRIPTION: Parallel computer architecture and programming models. Message passing and shared memory multiprocessors. Scalability, synchronization, memory consistency, cache coherence. Memory hierarchy design. Network design.

Read more...
 

EECS 454 - Advanced Communication Networks

CATALOG DESCRIPTION: Basic techniques for modeling and analyzing communication networks. Fairness and utility functions, routing, congestion control, pricing, queuing models, loss networks, multi-class queues and scheduling.

Read more...
 

EECS 457 - Advanced Algorithms

CATALOG DESCRIPTION: Design and analysis of advanced algorithms: graph algorithms; maximal network flows; min-cost flow algorithms; convex cost flows.

Read more...
 

EECS 459 - VLSI Algorithmics

CATALOG DESCRIPTION: Introduction to advanced topics in synthesis and modeling of complex VLSI systems at behavioral and logic level. Topics include resource allocation, resource binding, scheduling, and controller design in high level synthesis, C to hardware compilation flows, logic synthesis, survey of stat-of-the-art in high level and system level design methods and tools.

Read more...
   

EECS 472 - Designing and Constructing Models with Multi-Agent Languages

CATALOG DESCRIPTION: Joint with 372. Please refer to the description for EECS 372. 

Read more...
 

EECS 473-1 NUvention: Web

COURSE DESCRIPTION: NUvention:Web is an interdisciplinary experiential learning program designed to expose students to the entire product and  business development life cycle for a software company. Project areas include iPad/Tablet App, Mobile Applications, New Media, Social Gaming, Twitter or Facebook Apps, eCommerce/Deals, Analytics, Cloud, Big Data or ideas from students in the program. Teams will be able to continue to work on their projects after the completion of the course. Past NUvention:Web teams have gone on to make TechCrunch, PCMag, Rolling Stone and GigaOM headlines and join incubators, while others are bootstrapping and building their businesses to this day. More: entrepreneur.northwestern.edu
Read more...
 

EECS 473-2 NUvention: Web

COURSE DESCRIPTION:  NUvention:Web is an interdisciplinary experiential learning program designed to expose students to the entire product and  business development life cycle for a software company. Project areas include iPad/Tablet App, Mobile Applications, New Media, Social Gaming, Twitter or Facebook Apps, eCommerce/Deals, Analytics, Cloud, Big Data or ideas from students in the program. Teams will be able to continue to work on their projects after the completion of the course. Past NUvention:Web teams have gone on to make TechCrunch, PCMag, Rolling Stone and GigaOM headlines and join incubators, while others are bootstrapping and building their businesses to this day. More: entrepreneur.northwestern.edu

  • Crosslisted with ENTR-952 

Read more...
 

EECS 478 - Advanced Digital Communications

CATALOG DESCRIPTION: Digital modulation, complex baseband signaling, multicarrier modulation, sequence estimation, the Viterbi algorithm, probability of error analysis, equalization.

Read more...
 

EECS 479 - Nonlinear Optimization

CATALOG DESCRIPTION: Numerical solution of unconstrained optimization problems, nonlinear least squares and nonlinear systems of algebraic equations, large-scale nonlinear optimization, quadratic programming, and constrained optimization.

Tags: Nocedal
Read more...
 

EECS 495 - Machine Learning and Artificial Intelligence for Robotics

COURSE DESCRIPTION: A coverage of artificial intelligence, machine learning and statistical estimation topics that are especially relevant for robot operation and robotics research. Course evaluation will be largely project-based.
Read more...
 

EECS 495 - Sparse and low-rank recovery problems in signal processing and machine learning

COURSE DESCRIPTION: We aim to both introduce sparse and low-rank recovery problems in the context of its various applications, as well as describe the modern techniques from greedy and convex optimization used to solve them.  With this 495 topics class we want to help quickly bring interested students and researchers in signal processing, image and video processing, machine learning, and statistics up to speed on the power and wide applicability of sparse and low-rank models.  A major distinctive feature of this 495 course will be a focus on connecting fundamental concepts in convex optimization with their natural (and cutting edge) extensions for solving sparse and low-rank problems.  In addition students will receive a draft of the forthcoming manuscript as class notes.
Read more...
 

EECS 495 - Stochastic Models for Web 2.0

CATALOG DESCRIPTION: Starting with Napster and now with applications like Bit-Torrent, peer-to-peer networking has come to be one of the mainstays of networking. Similarly, applications to online advertising have lead to a revival of the classical multi-armed bandit problem. The purpose of this course is to discuss analytical models and theoretical foundations underlying these two application topics.

Read more...
 

EECS 495 - Physics and Technology of Quantum Devices

CATALOG DESCRIPTION: This course presents the physics and technology of nanoscale  semiconductor photonic and electronic quantum devices. The student is expected to have a basic understanding of quantum mechanics and semiconductor devices. This course reviews basic semiconductor device technologies and then focuses on several novel devices including quantum cascade lasers, multi-junction solar cells, Type-II superlattices, quantum dot infrared photodetectors, single photon detectors, and THz emitters
Tags: Razeghi
Read more...
 

EECS 510 - Topics in Information Theory

CATALOG DESCRIPTION:  An advanced seminar course in information theory that complements EECS 428 Information Theory. It covers selected topics in classical information theory as well as some recent advances in network information theory, information theoretic aspects of signal processing (e.g., the compressed sensing problem), and the application of information theory in economics. We learn by doing.

Read more...
 


instructor-course-page-button1If you see this button within a description, clicking it will take you to the Instructor's own page for this class.

Course schedules & descriptions

Graduate Study Manual

 Graduate program study manual cover image

Undergraduate Study Manual

Undergraduate program study manual cover image

Search Courses by Instructor


Search course subsets


Robert R. McCormick School of Engineering and Applied Science
Electrical Engineering & Computer Science Home | McCormick Home | Northwestern Home
© 2013 Robert R. McCormick School of Engineering and Applied Science, Northwestern University
MapsContact UsCalendar
TECH: 2145 Sheridan Rd, Tech L359, Evanston IL 60208-3118 USA |  Phone: (847) 491-5410  |  Fax: (847) 491-4455
FORD: 2133 Sheridan Rd, Ford Building, Rm 3.320, Evanston  IL 60201 USA |  Phone: (847) 491-5410  |  Fax: (847) 491-5258
Questions about this site? Please email the webmasterLegal and Policy Statements