Information for Prospective Students Information for First-Year Students Information for Transfer Students Information for International Students Learning Communities, Study Abroad, Theme Semester Calendars Quick Reference Forms Listings Table of Contents SAA Search Feature Academic Advising, Concentration Advising, How-tos, and Degree Requirements Academic Standards Board, Academic Discipline, Petitions, and Appeals SAA Advisors and Support Staff

Fall Academic Term 2003 Course Guide

Note: You must establish a session for Fall Academic Term 2003 on wolverineaccess.umich.edu in order to use the link "Check Times, Location, and Availability". Once your session is established, the links will function.

Courses in Electrical Engineering and Computer Science


This page was created at 7:20 PM on Tue, Sep 23, 2003.

Fall Academic Term, 2003 (September 2 - December 19)


For all courses numbered 499 and below, prerequisites are being enforced. If the machine doesn't find that you have completed or are currently enrolled in the prequisites, you will get this message when trying to enroll: "Requisites not met for class. Not enrolled."

For courses listed below without course descriptions, consult http://www.eecs.umich.edu/eecs/undergraduate/F03TS.pdf to see if a description is available.


EECS 181. Introduction to Computer Systems.

Computer Science

Instructor(s): K. Langona (Langona@umich.edu)

Prerequisites & Distribution: Intended for students whose goal is computer literacy; not intended for computer science, computer engineering, electrical engineering concentrators. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://coursetools.ummu.umich.edu/2003/fall/eecs/181/001.nsf

Fundamental computer skills needed to increase productivity. Use of software packages and applications including word processors, web browsers, spreadsheets, database systems. Creating a web home page. History of computing, ethics and legal issues. Introduction to basic hardware components. Intended for non-CE/CS/EE majors whose goal is computer literacy.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 183. Elementary Programming Concepts.

Computer Science

Instructor(s): M. Dorf (mdorf@umich.edu)

Prerequisites & Distribution: Not intended for engineering students. Students intending transfer to the College of Engineering should take ENGR 101. CS concentrators who qualify should elect EECS 280. (4). (MSA). (BS). May not be repeated for credit. Credit is granted for only one course among EECS 183 or ENGR 101. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

Fundamental concepts and skills of programming in a high level language. Flow of control; selection, iteration, subprograms. Data structures: strings, arrays, records, lists, tables. Algorithms using selection and iteration (decision making, finding maxima/minima, searching, sorting, simultation, etc.). Good program design, structure, and style are emphasized. Testing and debugging. This course is intended for Computer Science concentrators as well as non-concentrators in LS&A, and is not intended for Engineering students.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 203. Discrete Mathematics.

Computer Science

Instructor(s): V. Jensen (viviane@umich.edu), B. Rounds (rounds@umich.edu)

Prerequisites & Distribution: MATH 115 with a grade of at least C. Prerequisites enforced at registration. (4). (MSA). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/203/001.nsf

Fundamental concepts and skills of programming in a high level language. Flow of control; selection, iteration, subprograms. Data structures: strings, arrays, records, lists, tables. Algorithms using selection and iteration (decision making, finding maxima/minima, searching, sorting, simultation, etc.). Good program design, structure, and style are emphasized. Testing and debugging. This course is intended for Computer Science concentrators as well as non-concentrators in LS&A, and is not intended for Engineering students.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 270. Introduction to Logic Design.

Computer Science

Instructor(s): I. Markov (imarkov@umich.edu), D. Blaauw (blaauw@umich.edu)

Prerequisites & Distribution: ENGR 101 or EECS 183 with a grade of at least C. Prerequisites enforced at registration. (4). (MSA). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/courses/eecs270/

Binary and non-binary systems, Boolean algebra digital design techniques, logic gates, logic minimization, standard combinational circuits, sequential circuits, flip-flops, synthesis of synchronous sequential circuits, PLA's, ROM's, RAM's, arithmetic circuits, computer-aided design. Laboratory includes hardware design and CAD experiments. Lectures and laboratory.

Course goals: This course is intended to give you an understanding of digital logic. We will mostly concern ourselves with gate-level designs, but we will also address one level of abstraction up (larger logic devices such as MUXes, adders, etc.) and one level down (CMOS and TTL logic). There will be a heavy emphasis on learning design tools in your lab sections, and in the latter half of the course, the use of a hardware description language (HDL), namely the ABEL HDL, to complete labs.

Grading:
Lab assignments: 30%
Homework: 10%
Quizzes: 5% (given in lecture)
Midterms: 30% (15% each)
Final: 25%

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 280. Programming and Introductory Data Structures.

Computer Science

Instructor(s): Antonelli, Opyrchal

Prerequisites & Distribution: MATH 115 and prior programming experience (assumes prior programming experience using decision constructs, iteration, functions, basic I/O, and simple arrays in C/C++). Those without prior programming experience should elect ENGR 101 or EECS 183 before electing EECS 280. (4). (MSA). (BS). May not be repeated for credit. No credit granted to those who have completed or are enrolled in EECS 283. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/280/001.nsf

Techniques of algorithm development and effective programming, top-down analysis, structured programming, testing, and program correctness. Program language syntax and static and run-time semantics. Scope, procedure instantiation, recursion, abstract data types, and parameter passing methods. Structured data types, pointers, linked data structures, stacks, queues, arrays, records, and trees.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 281(380). Data Structures and Algorithms.

Computer Science

Instructor(s): D. Chesney (chesneyd@umich.edu)

Prerequisites & Distribution: EECS 280 and 203 with a grade of at least C. Prerequisites enforced at registration. (4). (NS). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/281/001.nsf

Introduction to algorithm analysis and O-notation; Fundamental data structures including lists, stacks, queues, priority queues, hash tables, binary trees, search trees, balanced trees, and graphs; searching and sorting algorithms; recursive algorithms; basic graph algorithms; introduction to greedy algorithms and divide and conquer strategy. Several programming assignments.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 285. A Programming Language or Computer System.

Computer Science

Topic?

Instructor(s): Kortesoja (bartlett@umich.edu)

Prerequisites & Distribution: Some programming knowledge required. (2). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (2).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

No Description Provided. Contact the Department.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 370. Introduction to Computer Organization.

Computer Science

Instructor(s): T. Austin (austin@umich.edu), D. Winsor (don@umich.edu)

Prerequisites & Distribution: EECS 203 or 270 with a grade of at least C; and EECS 280 or 283 with a grade of at least C. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/courses/eecs370/

This course is intended to give you a basic understanding of how computers execute programs. Understanding computers means understanding the hardware/software process of how you and the computer work together to have the computer carry out a concept. In your introductory programming courses (e.g., EECS 280), you learned how to express a concept in terms of a high-level programming language such as C/C++. In EECS 370, you will see how a low-level language is executed by the hardware, and you will see how to put together basic, hardware building blocks to form the functional units of a computer.

To achieve these goals, you will design and "build" simple computers at various levels of detail. Building in this course will not mean connecting chips and gates. Rather, you will describe the hardware in diagrams, finite-state machines, and hardware simulators (written in C). To further your understanding of other topics, we will provide practice questions that will be discussed in the discussion sections.

Prerequisites: Students must have taken one of EECS 203 or EECS 270 and one of EECS 280 or EECS 283. Depending on when you took EECS 280 or EECS 283, you may not yet be familiar with programming in C on Unix. We advise you to learn quickly. A brief overview of C vs. C++ will occur during the first discussion section of the semester. Also you can go to GSI office hours for additional help.

Course Material: The required text for the course is Computer Organization and Design: The Hardware/Software Interface (2nd edition), by Patterson and Hennessy. There are also optional lecture notes on the course web page.

Grading policy: Final grades will be based on the total points earned on the projects and exams. Factors such as class participation may be used to adjust your final grade, especially if it falls on a borderline. The tentative point breakdown is as follows:
Projects 10% each = 40%
Homework (Probably 4-5 assignments) = 5%
Exams 2 midterms, 15% each, 1 final 25% = 55%

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 373. Design of Microprocessor Based Systems.

Computer Science

Instructor(s): M. Brehob (brehob@umich.edu)

Prerequisites & Distribution: EECS 370 and 270 with a grade of at least C; and junior standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/courses/eecs373/

We have a number of educational goals when teaching EECS 373. The primary ones are:

  • Learning the basics of embedded systems including hardware/software interfacing.
  • Learning about computer architecture outside of the CPU core.
  • Design and implementation of non-trivial projects involving both hardware and software.

In the classroom, we will focus on generic principles and ideas. In the lab, we will focus on the Motorola PowerPC 823 (MPC823) and the specific support hardware and software found in the lab. When needed the lecture will support the lab, and where possible, the lab will support the lecture. You will find that you will need to spend large amounts of time in the lab in order to complete your projects — this is a lab intensive class.

Prerequisites: You must have taken EECS 270 and EECS 370 to take this course. This also implies you have taken EECS 280. I will assume you are familiar with (on the hardware side) Boolean algebra, gates, multiplexers, flip-flops, and finite-state machines, (on the computer architecture side) assembly language, pipelining, memory, and caching, and (on the software side) program control structures (if/then/else, while and for loops), functions, procedures, parameter passing, pointer-based data structures, and basic structured programming techniques (information hiding, modular programming, etc.).

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 376(476). Foundations of Computer Science.

Computer Science

Section 001.

Instructor(s): D. Koditchek (kod@umich.edu)

Prerequisites & Distribution: EECS 280 and 203 with a grade of at least C. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/376/001.nsf

An introduction to computation theory: finite automata, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions, and computational complexity.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 376(476). Foundations of Computer Science.

Computer Science

Section 002.

Instructor(s): Y. Shi (shiyy@umich.edu)

Prerequisites & Distribution: EECS 280 and 203 with a grade of at least C. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

An introduction to computation theory: finite automata, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions, and computational complexity.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 381. Object Oriented and Advanced Programming.

Computer Science

Instructor(s): D. Kieras (kieras@umich.edu)

Prerequisites & Distribution: EECS 281 with a grade of at least C. Prerequisites enforced at registration. Recommended for students in interested in a career in software development, especially applications. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.engin.umich.edu/class/eecs381/

Programming techniques in standard C++ for large-scale, complex, or high-performance software. Encapsulation, automatic memory management, exceptions, generic programming with templates and function objects, Standard Library algorithms and containers. Using single and multiple inheritance and polymorphism for code reuse and extensibility; basic design idioms, patterns, and notation.

Course goals: This is a relatively new elective course that introduces advanced concepts and techniques in practical C/C++ programming. Some important "legacy" topics in C will be covered, but the course will emphasize object-oriented programming with the use of single and multiple inheritance and polymorphism, and using the Standard Library algorithms and containers. Key ideas in object-oriented analysis and design and common design patterns will be introduced. Programming projects will focus on learning and using techniques that are valuable for professional practice in developing and extending large scale or high-performance software relatively easily. In addition to these content goals, an important function of the course is to help students develop good programming practices, style, and skill, with as much personalized coaching and critique of individual student's code as possible.

Prerequisite: EECS 281 is the required prerequisite for this course. Since a grade of C or better is the minimum grade for required courses in the CS and CE degree programs, if you received a grade of C- (C-minus) or lower in 281, you do not belong in this course, but should be retaking 281 (or any other course with a C- or lower grade).

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 427. VLSI (Very Large Scale Integrated) Design I.

Computer Science

Instructor(s): D. Sylvester (dennis@umich.edu)

Prerequisites & Distribution: EECS 270 and 312 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/courses/eecs427/

Design techniques for rapid implementations of very large scale integrated (VLSI) circuits, MOS technology and logic. Structured design. Design rules, layout procedures. Design aids: layout, design rule checking, logic and circuit simulation. Timing. Testability. Architectures for VLSI. Projects to develop and lay out circuits.

Course Objectives: This course introduces mask level integrated circuit design. Correct engineering design methodology is emphasized. Topics covered in lectures include: CMOS processes, mask layout method and design rules; circuit characterization and performance estimation; design for testability; and CMOS subsystem and system design.

Textbook: Jan Rabaey, Anantha Chandrakasan, and Borivoje Nikolic, Digital Integrated Circuits: A Design Perspective, second edition, Prentice Hall, 2003.

Grading Policy:
Homeworks (including project presentation): 10%
CAD assignments: 35%
Quizzes: 20%
Final project, report, and individual contributions: 35%

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 470. Computer Architecture.

Computer Science

Instructor(s): M. Brehob (brehob@umich.edu)

Prerequisites & Distribution: EECS 270 and 370 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/courses/eecs470/

EECS 470 is an introductory graduate-level course in computer architecture. This course is intended to do two things: to give you a solid, detailed understanding of how computers are designed and implemented, including the central processor and memory and I/O interfaces; and to make you aware of the numerous tradeoffs in design and implementation, their interaction, their realization in both historical and state-of-the-art systems, and trends that will affect them in future systems. We will cover instruction set architectures, pipelining (including basic pipelining, multiple-instruction-per-cycle machines, out-of-order instruction execution, and vector processing), memory systems (including caches and virtual memory), I/O interfaces, operating system issues, and basic multiprocessor systems. We also will do case studies on microprocessors and systems you may have used, perhaps including the P6 (Pentium Pro/II/III), Pentium 4, and the Sony PlayStation/2.

A central part of EECS 470 is the detailed design of major portions of a substantial processor using the Verilog hardware design language (HDL). Portions of this work will be done individually as homeworks; the bulk of the work will be done in groups of four to five as a term project. You will use modern commercial CAD tools to develop your design. This project represents a significant investment of time on your part, and is a significant portion of your grade in this class. In computer architecture, however, it is particularly true that "the devil is in the details," and you will gain important experience and knowledge by coming face to face with that devil.

Textbooks:
Computer Architecture: A Quantitative Approach, 3rd edition, by Hennessy and Patterson, Morgan Kaufman Publishers.
Optional: Verilog Styles for Synthesis of Digital Systems, 1st edition, by Smith and Franzon, Prentice Hall.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 477. Introduction to Algorithms.

Computer Science

Instructor(s): K. Compton (kjc@umich.edu)

Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

Fundamental techniques for designing efficient algorithms and basic mathematical methods for analyzing their performance. Paradigms for algorithm design: divide-and-conquer, greedy methods, graph search techniques, dynamic programming. Design of efficient data structures and analysis of the running time and space requirements of algorithms in the worst and average cases.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 478. Logic Circuit Synthesis and Optimization.

Computer Science

Instructor(s): K. Sakallah (karem@umich.edu)

Prerequisites & Distribution: EECS 270 and 203 with a grade of at least C; and senior or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

Advanced design of logic circuits. Technology constraints. Theoretical foundations. Computer-aided design algorithms. Two-level and multilevel optimization of combinational circuits. Optimization of finite-state machines. High-level synthesis techniques: modeling, scheduling, and binding. Verification and testing.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 481. Software Engineering.

Computer Science

Instructor(s): J. Sayler (jhsayler@umich.edu)

Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

Pragmatic aspects of the production of software systems, dealing with structuring principles, design methodologies and informal analysis. Emphasis is given to development of large, complex software systems. A term project is usually required.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 482. Introduction to Operating Systems.

Computer Science

Instructor(s): A. Prakash (aprakash@umich.edu), B. Noble (bnoble@umich.edu)

Prerequisites & Distribution: EECS 370 and 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/482/001.nsf

Operating system design and implementation: multi-tasking; concurrency and synchronization; inter-process communication; deadlock; scheduling; resource allocation; memory and storage management; input-output; file systems; protection and security. Students write several substantial programs dealing with concurrency and synchronization in a multi-task environment, with file systems, and with memory management.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 483. Compiler Construction.

Computer Science

Instructor(s): S. Mahlke (mahlke@umich.edu)

Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/~mahlke/483f03/

An introduction to the specification and implementation of modern compilers. Topics covered include lexical scanning, parsing, type checking, code generation and translation, an introduction to optimization, and compile-time and run-time support for modern programming languages. As part of the course, students will build a working compiler for a subset of the C programming language.

Course Text: Compilers: Principles, Techniques, and Tools, Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman, Addison-Wesley, 1988.

Useful Reference Books:
Lex & Yacc, Levine, Mason and Brown, O'Reilly Publishers
Advanced Compiler Design & Implementation, Steven S. Muchnick, Morgan Kaufmann, 1997.
Building an Optimizing Compiler, Robert Morgan, Butterworth-Heinemann,1998.
Modern Compiler Implementation in Java. Andrew Appel. Cambridge University Press, 1997

Prerequisites:
Required: Strong C++ programming skills (EECS 281).
Recommended: Familiarity with Unix C/C++ development tools (i.e., gcc, gdb, emacs); Basic familiarity with computer organization (EECS 370); Some background in foundations of computer science (EECS 376).

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 484. Database Management Systems.

Computer Science

Instructor(s): J. Patel (jignesh@umich.edu)

Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/courses/eecs484/

EECS 484 provides basic introduction to relational database management systems (DBMSs). This course is designed to provide you with both an external and an internal view of relational DBMSs. Topics related to the external view will cover concepts that will allow you to use a relational DBMS. Topics related to the internal view will allow you to better understand how a relational DBMS works, making you more sophisticated (and perhaps higher paid) database users/administrators. The course has a group project in which you will build a simple, but fairly complete, single-user relational database engine. Note, in this course you will not learn the details of how to use any specific commercial database system, or the intricacies of SQL programming. This course is designed to cover the fundamental database concepts and the implementation techniques that are used in relational database engines. Using the course project, you will actually build a few key components of a database engine. If you are interested in the details of SQL programming, or the operation of a specific commercial database system, you will be able to pick this up very easily after you have taken this course.

Text: Database Management Systems (3rd edition) — by Raghu Ramakrishnan and Johannes Gehrke, McGraw Hill, 2003, ISBN: 0-07-115110-9

Prerequisites: EECS 281: Data Structures and Algorithms or equivalent. WARNING: The course project is programming intensive and requires that you be comfortable programming in C++.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 487. Interactive Computer Graphics.

Computer Science

Instructor(s): J. Harris (harrisjw@umich.edu), I. Guskov (guskov@umich.edu)

Prerequisites & Distribution: EECS 281 with a grade of at least C; and senior or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/courses/eecs487/f03/

Computer graphics hardware, line drawing, rasterization, anti-aliasing, graphical user interface (GUI), affine geometry, projective geometry, geometric transformation, polygons, curves, splines, solid models, lighting and shading, image rendering, ray tracing, radiosity, hidden surface removal, texture mapping, animation, virtual reality, and scientific visualization.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 489. Computer Networks.

Computer Science

Instructor(s): S. Jamin (jamin@umich.edu)

Prerequisites & Distribution: EECS 482 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://irl.eecs.umich.edu/jamin/courses/eecs489/

If you want to learn how to design way-cool Web pages, how to build and maintain a killer Web site, or how to setup, administer, and engineer a LAN, this course is not for you. In this course we do not study how modem works, nor do we study how ISDN works. We do not study Novell Netware Administration and we do not learn how to use Adobe Photoshop. We do not learn how to set up a chat room, nor how to set up an electronic guest book. We do try to understand how networks operate and how network applications are written. We study the workings of the Ethernet and the Internet: how packets are routed, how packets are transmitted, and what to do when there is network congestion. We look at packet headers and routing and transmission protocols. We learn what sockets are and how to use them. And we write code. We write code to implement various routing and transmission protocols. We write code to build client-server applications. There will be a lot of programming.

You should know what processes and threads are and be familiar with concurrency and interprocess communication. EECS 482 (Introduction to Operating Systems) is a strict prerequisite. You must also have good working knowledge of C and UNIX. An introduction to probability course such as EECS 401, EECS 501, MATH 425, MATH 525, or STATS 412 is highly recommended as a co-requisite.

Course Grade Composition:
1 Final Exam: 20%
2 Take-home Exams: 30% (15% each)
1 Course Project: 48%
Class Participation: 2%

Textbooks:

Kurose and Ross, Computer Networking: A Top-Down Approach, 2nd. ed, Addison-Wesley, 2003. ISBN 0-201-97699-4.

W.R. Stevens, UNIX Network Programming, vol. 1: Networking APIs: Sockets and XTI, 2nd. ed., Prentice-Hall, 1997.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 492. Introduction to Artificial Intelligence.

Computer Science

Instructor(s): M. Wellman (wellman@umich.edu)

Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/492/001.nsf

Fundamental concepts of AI, organized around the task of building computational agents. Core topics include search, logic, representation and reasoning, automated planning, decision making under uncertainty, and machine learning.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 494. Computer Game Design and Development.

Computer Science

Instructor(s): J. Laird (laird@umich.edu)

Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/~soar/Classes/494/

In this course, we will study the technology, science, and art involved in the creation of computer games.

The course will emphasize hands-on development of games. We will study a variety of software technologies relevant to games including programming languages, scripting languages, operating systems, file systems, networks, simulation engines, and multi-media design systems. We also will study some of the underlying scientific concepts from computer science and related fields including: simulation and modeling, graphics, artificial intelligence, real-time processing, and game theory. Finally, we will study the art and design principles for developing useable and engaging games including: software engineering, human computer interaction, thematic structure, graphic design, choreography, music and sound effects, and game aesthetics.

The course will include visiting lectures and a variety of group projects. The group projects will involve system implementation, but emphasize design and use of existing tools. The final group project will require the students to go through all phases of system conceptualization, specification, design, implementation, and evaluation.

Required Text: Tricks of the Windows Game Programming Gurus, Andre LaMothe, 2nd Edition.

Recommended Reading
Game Architecture and Design, Rollings and Morris, Coriolis Publishing.
Game Design: The Art and Business of Creating Games, Bates, Prima Tech.
Game Design: Secrets of the Sages, Saltzman, Brady Games.
Game Design: Theory and Practice, Rouse, Wordware Game Developer's Library.
3D Game Engine Design, David H. Eberly, Morgan Kaufmann.
Game Programming Gems, Mark DeLoura, Charles River Media.
The Awesome Power of Direct3D/DirectX, Kovach, Manning.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 496. Major Design Experience — Professionalism.

Computer Science

Instructor(s):

Prerequisites & Distribution: Senior standing. Prerequisites enforced at registration. Concurrent enrollment in Technical Communication 496 and one of the approved 400-level team project courses in computing. (2). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (2).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/496/001.nsf

Design principles for multidisciplinary team projects, team strategies, entrepreneurial skills, ethics, social and environmental awareness, and life long learning. Each student must take (simultaneously) TCHNCLCM 496 (2 cr.) and one of the approved 400-level team project courses (4 cr.)

Required Texts

  1. Brooks, Frederick The Mythical Man-Month, 20th anniversary edition: Essays on Software Engineering, 1995.
  2. Fleddermann, Charles Engineering Ethics, Prentice Hall, 1999.
  3. Moore, Geoffrey Crossing the Chasm, Harper Collins Publishers Inc., 1999.
  4. Smith, Karl Project Management and Teamwork, McGraw-Hill, 2000.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 497. EECS Major Design Projects.

Computer Science

Instructor(s):

Prerequisites & Distribution: Senior or graduate standing. Prerequisites enforced at registration. Successful completion of at least 2/3 credits required for Prog. Subjects. (4). (Excl). (BS). May be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/496/001.nsf

Professional problem-solving methods developed through intensive group studies. Normally, one significant design project is chosen for entire class requiring multiple EECS disciplines and teams. Use of analytic, computer, design, and experimental techniques where applicable are used. Projects are often interdisciplinary allowing non-EECS seniors to also take the course (consult with instructor)

Required Texts

  1. Brooks, Frederick The Mythical Man-Month, 20th anniversary edition: Essays on Software Engineering, 1995.
  2. Fleddermann, Charles Engineering Ethics, Prentice Hall, 1999.
  3. Moore, Geoffrey Crossing the Chasm, Harper Collins Publishers Inc., 1999.
  4. Smith, Karl Project Management and Teamwork, McGraw-Hill, 2000.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 498. Special Topics.

Computer Science

Section 002 — Non Photorealistic Computer Graphics. [4 credits].

Instructor(s): Lee Markosian

Prerequisites & Distribution: (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.

Credits: (1-4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

In this seminar we will study current research on methods for modeling and rendering non-photorealistic 3D scenes. This approach to computer graphics targets images that resemble hand-made paintings or drawings. By leveraging techniques from art and illustration (such as abstraction and stylization), one can depict complex 3D worlds more simply and expressively. Students will explore beyond the cutting edge through a combination of reading papers and implementing known (or original) methods through several group projects.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 499. Directed Study.

Computer Science

Instructor(s):

Prerequisites & Distribution: Senior or graduate standing. Prerequisites enforced at registration. Restricted to EECS concentrators. (1-4). (Excl). (BS). (INDEPENDENT). May be repeated for credit for a maximum of 4 credits. CAEN lab access fee required for non-Engineering students.

Credits: (1-4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

Individual study of selected topics in Electrical Engineering and Computer Science. May include experimental investigation or library research.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 545. Machine Learning.

Computer Science

Instructor(s): S. Baveja (baveja@umich.edu)

Prerequisites & Distribution: EECS 492. (3). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (3).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/545/001.nsf

Survey of recent research on learning in artificial intelligent systems. Topics include learning based on examples, instructions, analogy, discovery, experimentation, observation, problem solving and explanation. The cognitive aspects of learning will also be studied.

This course will cover statistical approaches to

  1. Supervised Learning (40% of course)
  2. Unsupervised Learning (20% of course)
  3. Reinforcement Learning (40% of course)

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 570. Parallel Computer Architecture.

Computer Science

Instructor(s): T. Mudge (tnm@umich.edu)

Prerequisites & Distribution: EECS 470. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/~tnm/570/

Course Objectives:
After successfully completing this course, you should:

  • understand the fundamental issues of parallel computation (communication, synchronization, naming, etc.);
  • understand the various ways in which hardware and software can interact to address these issues in parallel systems; and
  • understand how these interactions affect system cost, performance, and programmability.

Prerequisite: EECS 470 (Computer Architecture). In particular, you should feel comfortable with caches, virtual memory, dataflow concepts, and instruction-level parallelism.

Textbook: Parallel Computer Architecture: A Hardware/Software Approach by Culler & Singh, Morgan Kaufmann Publishers. ISBN 1-55860-343-3. This book should be available at the usual bookstores, or from students from previous years (we've used the same text for ~5 years now).

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 571. Principles of Real-Time Computing.

Computer Science

Instructor(s): K. Shin (kgshin@umich.edu)

Prerequisites & Distribution: EECS 470 and 482. (3). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (3).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

Principles of real-time computing based on high performance, ultra reliability and environmental interface. Architectures, algorithms, operating systems and applications that deal with time as the most important resource. Real-time scheduling, communications and performance evaluation.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 582. Advanced Operating Systems.

Computer Science

Instructor(s): J. Flinn (flinn@umich.edu)

Prerequisites & Distribution: EECS 482. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

Course discusses advanced topics and research issues in operating systems. Topics will be drawn from a variety of operating systems areas such as distributed systems and languages, networking, security, and protection, real-time systems, modeling and analysis, etc.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 584. Advanced Database Systems.

Computer Science

Instructor(s): H. V. Jagadish (jag@umich.edu)

Prerequisites & Distribution: EECS 484. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/~jag/eecs584/

EECS 584 will cover a number of advanced topics in development of database management systems (DBMS) and the application of DBMSs in modern applications.

Topics to be discussed include advanced concurrency control and recovery techniques, query processing and optimization strategies for relational database systems, advanced access methods, database resource management, parallel and distributed database systems, extensible database systems, data analysis on large databases, and application of DBMS techniques in XML-based applications, mobile applications and bioinformatics.

The course material will be drawn from a number of papers in the database literature. We will cover 2-3 papers per week, and all students attending the class are expected to read the papers before coming to the lecture. Before each class you will be required to hand in a brief summary (~10 sentences total) of the paper that will be discussed in the class. The summary should not a facsimile of the abstract of the paper, but should be your assessment of the key contributions and limitations of the paper. The reviews will be graded on a scale of 0-4, with 4 being the highest grade.

Text: There is no formal textbook for this course. The reading list is a collection of papers, which is posted on the course web page.

Reference text: The following two sources will be used often in this course. You don't need to purchase these textbooks as two copies of each of these references are on reserve at the Media Union Library.

Red Book: Readings in Database Systems (3rd edition) — edited by Michael Stonebraker and Joe Hellerstein, Morgan Kaufmann Publisher, 1998.

Cow Book: Database Management Systems (3rd edition) — by Raghu Ramakrishnan and Johannes Gehrke, McGraw Hill, 2003.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

EECS 595 / LING 541. Natural Language Processing.

Computer Science

Section 001 — Meets with SI 661.

Instructor(s): Dragomir Radev (radev@umich.edu)

Prerequisites & Distribution: Senior standing. (3). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (3).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://tangra.si.umich.edu/~radev//NLP-fall2003/

See Linguistics 541.001.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

EECS 598. Special Topics in Electrical Engineering and Computer Science.

Computer Science

Section 002 — Virtual Machine technology and applications. [3 credits].

Instructor(s): P. Chen (pchen@umich.edu)

Prerequisites & Distribution: Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.

Credits: (1-4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/~pmchen/eecs598/

Virtual machines have experienced a resurgence in recent years, both in industrial practice and in research applications. They have proven to be a powerful mechanism to improve security, system management, fault tolerance, mobility, adaptation, and portability. This class will cover different ways to design virtual machines and how to apply them to improve today's computer systems. Prerequisites for this class are EECS 482 or graduate standing in CSE. The course will be 3 credits and has been approved as a regular 500-level CSE graduate course.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1, 5, Permission of Instructor

EECS 598. Special Topics in Electrical Engineering and Computer Science.

Computer Science

Section 003 — Digital Signal Processing and Analysis. [3 credits].

Instructor(s): Sandeep Pradhan (pradhanv@umich.edu)

Prerequisites & Distribution: Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.

Credits: (1-4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/~pradhanv/EECS5983_03/EECS5983.html

Review of fourier transforms and series in CT and DT domains, sampling theorem, and extensions to 2-D case. Signal spaces, orthogonality and projection theorem. Representation and approximation in signal spaces and applications. Eigen values and eigen vectors and applications. Singular value decomposition and applications. Multirate systems, 2-channel filter banks and basis decomposition.

Grading:
1) Homeworks 15% : assigned every alternate week
2) Midterm Examination-1 30%
3) Midterm Examination-2 30%
4) Project 25%

Text: "Mathematical methods and algorithms for signal processing" by T.K. Moon and W.C. Stirling.
Reference 1: "Two-dimensional signal and image processing" by J.S. Lim
Reference 2: "Multirate systems and filter banks" by P.P. Vaidyanathan
Reference 3: "Linear Algebra and applications" by G. Strang
Reference 4: "Digital Signal Processing" by R.A. Roberts and C.T. Mullis

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1, 5, Permission of Instructor

EECS 598. Special Topics in Electrical Engineering and Computer Science.

Computer Science

Section 004 — Compute-Aided Verification of Digital Systems. [4 credits].

Instructor(s): Bertacco

Prerequisites & Distribution: Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.

Credits: (1-4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

In this seminar we will study current research on methods for modeling and rendering non-photorealistic 3D scenes. This approach to computer graphics targets images that resemble hand-made paintings or drawings. By leveraging techniques from art and illustration (such as abstraction and stylization), one can depict complex 3D worlds more simply and expressively. Students will explore beyond the cutting edge through a combination of reading papers and implementing known (or original) methods through several group projects.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 5, Permission of instructor

EECS 598. Special Topics in Electrical Engineering and Computer Science.

Computer Science

Section 005 — Non-photorealistic Computer Graphics. [3 credits]. Meets with EECS 498.004.

Instructor(s): Markosian

Prerequisites & Distribution: Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.

Credits: (1-4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No homepage submitted.

In this seminar we will study current research on methods for modeling and rendering non-photorealistic 3D scenes. This approach to computer graphics targets images that resemble hand-made paintings or drawings. By leveraging techniques from art and illustration (such as abstraction and stylization), one can depict complex 3D worlds more simply and expressively. Students will explore beyond the cutting edge through a combination of reading papers and implementing known (or original) methods through several group projects.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 5, Permission of instructor


Graduate Course Listings for EECS.


Page


This page was created at 7:21 PM on Tue, Sep 23, 2003.


lsa logo

University of Michigan | College of LS&A | Student Academic Affairs | LS&A Bulletin Index

This page maintained by LS&A Advising Technology (webmaster_saa@umich.edu), G255-E Angell Hall

Copyright © 2003 The Regents of the University of Michigan,
Ann Arbor, MI 48109 USA +1 734 764-1817

Trademarks of the University of Michigan may not be electronically or otherwise altered or separated from this document or used for any non-University purpose.