College of LS&A

Fall Academic Term 2003 Graduate 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 6:20 PM on Tue, Sep 23, 2003.

Fall Academic Term 2003 (September 2 - December 19)


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

Computer Science

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

Prerequisites: EECS 270 and 312 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 270 and 370 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 270 and 203 with a grade of at least C; and senior or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 370 and 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 281 with a grade of at least C; and senior or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 482 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). 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 497. EECS Major Design Projects.

Computer Science

Instructor(s):

Prerequisites: Senior or graduate standing. Prerequisites enforced at registration. Successful completion of at least 2/3 credits required for Prog. Subjects. (4). 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 001 — Distributed Systems. [4 credits].

Instructor(s): F. Jahanian (farnum@umich.edu)

Prerequisites: (1-4). 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/~farnam/498/498.html

Significant advances in computer and communication technologies have enabled the discovery of several distributed computing paradigms and an explosion of networked applications during the last two decades. The primary objective of this course is to examine the state of the art and practice in distributed computing and to provide students hands-on experience in developing distributed protocols and services. The course aims to convey insight into the principles underlying the design of distributed systems, providing students the necessary tools for evaluating existing systems or designing new ones.

This course provides an in-depth examination of the dominant paradigms for structuring distributed systems including: client-server computing, distributed objects, distributed file systems, group multicast, distributed shared memory, coordination-based systems and the evolving models based on the Web architecture. The course also examines several emerging paradigms such as peer-to-peer computing, mobile IP, and web services. The course also explores key design principles including: communication, consistency and replication, caching, fault-tolerance, synchronization, naming and security. Key concepts are illustrated using several case studies of experimental and commercial systems.

Reading List:
Distributed Systems by Andrew Tanenbaum and Maarten van Steen, Prentice-Hall, 2002.
Distributed Computing: Principles and Applications by M.L. Liu, Pearson Addison-Wesley, 2004. (Recommended)
Collection of papers and handouts on distributed systems.

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

EECS 498. Special Topics.

Computer Science

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

Instructor(s): Lee Markosian

Prerequisites: (1-4). 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: Senior or graduate standing. Prerequisites enforced at registration. Restricted to EECS concentrators. (1-4). (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 543. Knowledge-Based Systems.

Computer Science

Instructor(s): E. Durfee (durfee@umich.edu)

Prerequisites: EECS 281 and graduate standing. (3). 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.

Techniques and principles for developing application software based on explicit representation and manipulation of domain knowledge, as applied to computer vision, robotic control, design and manufacturing, diagnostics, autonomous systems, etc. Topics include: identifying and representing knowledge, integrating knowledge-based behavior into complex systems, reasoning, and handling uncertainty and unpredictability.

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: EECS 492. (3). 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: EECS 470. (4). 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: EECS 470 and 482. (3). 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 574. Theoretical Computer Science.

Computer Science

Instructor(s): S. Lokam (lokam@umich.edu)

Prerequisites: EECS 376. (4). 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/~satyalv/tcs/

Prerequisites: Undergraduate background in Discrete Mathematics and Theory of Computation.

Theoretical Computer Science studies the abstract principles that help understand the nature of computation. This course is a graduate introduction to computational complexity theory. Computational complexity of a problem is the amount of resources, such as time, space, number of logical gates, etc., that are needed to solve the problem in an abstract model of computation, such as a Turing Machine or a Boolean circuit. Understanding the computational complexity of problems in various models is one of the most challenging scientific pursuits of computer science. Proving that certain problems are of low complexity is accomplished by inventing efficient algorithms. On the other hand, discovering problems of provably high complexity is essential for applications such as cryptography and pseudo-randomness.

This course will cover the following basic topics in the Turing Machine model of computation: time and space complexity of languages, nondeterministic computation, basic complexity classes such as P, NP, L, and NL, general relations between time and space complexity classes, NP-Completeness, NL-completeness, structure of space complexity classes, P-Completeness, randomized complexity and classes such as ZPP, RP, BPP, and PP. Next, we will consider nonuniform models of computation such as Boolean circuits, decision trees, and branching programs. The focus here is on proving lower bounds on the complexity of explicit Boolean functions in these models using combinatorial and algebraic methods. Finally, we will return to the Turing machine model and study higher complexity classes such as PH, PSPACE, and #P and complete problems for some of them. Time permitting, we will see an overview of selected topics from: Interactive Proof Systems, Probabilistically Checkable Proof Systems, Communication Complexity, and Foundations of Cryptography. Students will be required to write a term paper on a topic from some of the advanced areas of complexity theory.

Text Book: Computational Complexity, Christos Papadimitriou, Addison-Wesley (1995).

Additional references are listed on the course web site.

Grading: Homework: 50%, Scribing: 15%, Participation: 10%, Term Paper: 25%.

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

EECS 579. Digital System Testing.

Computer Science

Instructor(s): John Patrick Hayes (jhayes@umich.edu)

Prerequisites: Graduate standing. (3). 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/579/001.nsf

This course examines the theory and practice of fault analysis, test generation, and design for testability for digital circuits and systems. The topics to be covered include: circuit and system modeling; fault sources and models; fault simulation methods; test generation algorithms for combinational and sequential circuits, including PODEM; testability measures; design-for-testability techniques; built-in self-testing (BIST); processor and memory testing, design verification. Current research issues, including topics suitable for M.S. or Ph.D. research will be discussed. A small term project is also part of the course.

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: EECS 482. (4). 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: EECS 484. (4). 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 587. Parallel Computing.

Computer Science

Instructor(s): Q. Stout (qstout@umich.edu)

Prerequisites: EECS 281 and graduate standing. (3). 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://www.eecs.umich.edu/~qstout/587/

Audience: Typically about half the class is from Computer Science and Engineering, and half is from a wide range of other areas throughout the sciences, engineering, and medicine. Some students want to become parallel computing specialists, while others intend to apply parallel computing to their discipline. Students range from seniors through postdocs, and occasionally faculty sit in on the course as well.

Satisfying Degree Requirements: This course can be used to satisfy requirements in a variety of degree programs.

  • CSE Graduate Students: it satisfies general 500-level requirements for the MA and PhD.
  • CSE Undergraduates: it satisfies "computer oriented technical elective" requirements for the CE and CS degrees.
  • Rackham Graduate Students (other than CSE): it satisfies cognate requirements.
  • Graduate students in the Scientific Computing program administered through LaSC (Laboratory for Scientific Computing): it satisfies computer science distributional requirements. It seems that most of the students in this program take this course.
  • CSCS Graduate Students: it is an approved course "related to complex systems".
  • Various other programs: it satisfies computer related distributional requirements.
  • All students: you can take it because you want to.

Content: The course covers a wide range of aspects of parallel computing, with the emphasis on developing efficient software for commercially available systems, such as the grid, clusters, and shared memory systems here on campus. We will emphasize using standard software, specifically Globus (for grids), MPI (Message Passing Interface) and OpenMP. Use of standard software helps make the code more portable, preserving the time invested in it. Because there is not a single parallel computing model, you also have to learn some about various parallel architectures, since there is significant hardware/software interaction. This includes aspects such as shared vs. distributed memory, clustering, cache coherency, interconnection networks, fine-grain vs. medium-grain, and MIMD/SIMD. For fun, we may briefly discuss some more exotic parallel models, such as DNA computing, quantum computing, or processor-in-memory systems.

We examine many reasons for poor parallel performance, and a wide range of techniques for improving it. Concepts such as domain decomposition; deterministic, probabilistic and adaptive load balancing; and synchronization will be covered. You'll learn why modest parallelization is relatively easy to achieve, and why efficient massive parallelization is quit difficult — in particular, we will cover various implications of Amdahl's Law. Examples and programs will be numeric, such as matrix multiplication, and nonnumeric, such as sorting.

Work required: Your grade will be based on written homeworks, computer programming projects, and a final project of your choosing (though I must approve it).

Prerequisites: Ability to program well in C or Fortran, plus an ability to analyze programs, plus willingness to rethink how problems should be solved. You do not need any prior experience with parallel computing or supercomputing, nor do you need to have a background in numerical analysis. You, however, do need to be a good programmer — after all, it makes little sense to use an expensive supercomputer if you can't utilize a regular computer well.

Texts: None, but you will need to buy some computer manuals and you will have lots of papers and web resources to read.

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: Senior standing. (3). 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: Permission of instructor or advisor. (1-4). 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: Permission of instructor or advisor. (1-4). 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: Permission of instructor or advisor. (1-4). 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: Permission of instructor or advisor. (1-4). 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 990. Dissertation/Precandidate.

Computer Science

Instructor(s):

Prerequisites: Election for dissertation work by doctoral student not yet admitted as a Candidate.Graduate standing. (1-8). (INDEPENDENT). May be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (1-8; 1-4 in the half-term).

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

Course Homepage: No homepage submitted.

Election for dissertation work by doctoral student not yet admitted as a Candidate.

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

EECS 995. Dissertation/Candidate.

Computer Science

Instructor(s):

Prerequisites: Graduate School authorization for admission as a doctoral Candidate. (8). (INDEPENDENT). May be repeated for credit. CAEN lab access fee required for non-Engineering students.

Credits: (8; 4 in the half-term).

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

Course Homepage: No homepage submitted.

Graduate School authorization for admission as a doctoral Candidate. N.B. The defense of the dissertation (the final oral examination) must be held under a full term Candidacy enrollment period.

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


Undergraduate Course Listings for EECS.


Page


This page was created at 6:20 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.