Note: You must establish a session for Fall Academic Term 2002 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 5:16 PM on Thu, Oct 3, 2002.
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."
EECS 181. Introduction to Computer Systems.
Computer Science
Instructor(s):
Prerequisites & Distribution: Intended for students whose goal is computer literacy; not intended for computer science, computer engineering, electrical engineering concentrators. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
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 nonCE/CS/EE concentrators whose goal is computer literacy.
EECS 183. Elementary Programming Concepts.
Computer Science
Instructor(s):
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. Credit is granted for only one course among EECS 183 or ENGR 101. (4). (MSA). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Fundamental concepts and skills of programming in a high level language. Flow of control: selection, iteration, and subprograms. Data structures: strings, arrays, records, lists, and tables. Algorithms using selection and iteration (decision making, finding maxima/minima, searching, sorting, simulation, etc.). Good program design, structure, and style are emphasized. Testing and debugging. This course is intended for CS majors as well as nonconcentrators in LS&A, and is not intended for Engineering students.
EECS 203(303). Discrete Mathematics.
Computer Science
Instructor(s):
Prerequisites & Distribution: MATH 115. (4). (MSA). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2002/fall/eecs/203/001.nsf
Introduces the mathematical foundations of computer science and
engineering. Topics covered include: propositional and predicate logic,
set theory, functions and relations, growth of functions and asymptotic
notation, introduction to algorithms, elementary combinatorics and
graph theory.
EECS 270. Introduction to Logic Design.
Computer Science
Instructor(s):
Prerequisites & Distribution: Engineering 101 or EECS 183. (4). (MSA). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs270/index.html
Course goals: This course is intended to give you an understanding of digital logic. We will mostly concern ourselves with gatelevel 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.
Textbook: Wakerly, J. F., Digital Design: Principles and Practices, 3d ed. Upper Saddle River, NJ: PrenticeHall, 2000.
EECS 280. Programming and Introductory Data Structures.
Computer Science
Instructor(s):
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. No credit granted to those who have completed or are enrolled in EECS 283. (4). (MSA). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2002/fall/eecs/280/001.nsf
Techniques of algorithm development and effective programming, topdown analysis, structured programming, testing, and program correctness. Program language syntax and static and runtime 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.
EECS 281(380). Data Structures and Algorithms.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 280 and 203. (4). (NS). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Introduction to algorithm analysis and Onotation; 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.
EECS 283. Programming for Science and Engineering.
Computer Science
Instructor(s):
Prerequisites & Distribution: ENGR 101 or EECS 183. This course is not intended for computer science concentrators. No credit granted to those who have completed or are enrolled in EECS 280. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Programming concepts with numeric applications for mathmatics, the sciences, and engineering. Objectoriented programming, abstract data types, and standard class libraries with numeric and nonnumeric applications. Elementary data structures, linked lists, and dynamic allocation. Searching and sorting methods. Not intended for Computer Science majors.
EECS 285. A Programming Language or Computer System.
Computer Science
Instructor(s):
Prerequisites & Distribution: Some programming knowledge required. (2). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (2).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
A course covering a complex computer system or programming language. Programming problems will be assigned. Specific languages or systems to be offered will be announced in advance.
EECS 285. A Programming Language or Computer System.
Computer Science
Section 001 – Java.
Prerequisites & Distribution: Some programming knowledge required. (2). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (2).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Supported programming environment  Java 1.2  Java 1.4 using Sun's JDK on Unix using Sun's JDK on Unix
 Writing, compiling and running Java programs, and Java syntax
 Object Oriented Programming in Java
 Object Oriented Design in Java
 Exception handling
 Applets
 AWT and Swing Components
 Layout managers and GUI design
 Event handling
 Images and sounds, animation basics  Thanksgiving week
 Advanced animation and Threads
Textbooks
EECS 370. Introduction to Computer Organization.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 280 or 283. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering 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 highlevel programming language such as C/C++. In
EECS 370, you will see how a lowlevel 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, finitestate 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 EECS 280. Depending on when you took EECS 280, you may not yet be familiar with programming C on Unix. I 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.
Class Projects: Four projects will be assigned during the term, each of which will require a substantial time commitment on your part. Many students find the
work load in this course to be heavy.
Exams: There will be three exams this semester.
Homework: There will be somewhere around 4 to 7 homework assignments during the semester.
EECS 373. Design of Microprocessor Based Systems.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 370 and 270; junior standing. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs373/
Course Overview
We have a number of educational goals when teaching 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 nontrivial 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, flipflops, and finitestate 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, pointerbased data structures, and basic structured programming techniques (information hiding, modular
programming, etc.).
EECS 376(476). Foundations of Computer Science.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 280 or 203. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
An introduction to computation theory: finite automata, regular languages, pushdown automata, contextfree languages, Turing machines, recursive languages and functions, and computational complexity.
EECS 381. Object Oriented and Advanced Programming.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 281. Recommended for students in interested in a career in software development, especially applications. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://www.engin.umich.edu/class/eecs381/
Prerequisite:
EECS 281 (formerly 380) 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 (Cminus) or lower in 281/380, you do not belong in this course, but should be retaking 281/380 (or any other
course with a C or lower grade).
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 objectoriented programming with the use of single and multiple inheritance and polymorphism, and using the
Standard Library algorithms and containers. Key ideas in objectoriented 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 highperformance
software relatively easily.
Course format and attendance:
There are two lectures per week, one discussion session per week. The lecture topics and reading assignments will be announced in the schedule posted and
revised on the course web site. The purpose of the lectures and the discussion sessions is to explain the material and to answer your questions. You are
expected to have studied the assigned textbook material yourself prior to the lectures on each subject. There will be several programming projects (one due
approximately every two weeks), a midterm exam, and a final exam; their due dates are given in the course schedule which will be maintained on the course web
page. Changes to the schedule will be announced in lecture and via the announcements email group, and updated on the course web page. You should plan on attending the lectures and discussion sections regularly. You may choose to skip, but you are responsible for all material and
announcements presented in the lectures and in the discussion sections. You are not entitled to a private presentation of a lecture or a discussion that you
chose to skip. Material not in the textbooks will often be presented in lecture or discussion; you are responsible for this material, in addition to the material in
the assigned readings. Your projects will be evaluated in terms of whether they take advantage of the course material properly, not just whether they happen to
work correctly So skip the lectures and discussion at your own risk.
When feasible and useful, the course web pages will include materials such as handouts, lecture outlines, and examples. In general, this material will not be
comprehensible without the lecture; it will be provided to supplement, not replace, the lecture presentation.
Required Textbooks:
 Kernighan, B. & Ritchie, D. The C Programming Language. (2nd edition), PrenticeHall, 1988.
 Stroustrup, B. The C++ Programming Language. (3rd or Special edition). AddisonWesley, 1997.
Recommended References:
 Harbison, S., & Steele, G. C: A Reference Manual. (4th edition), PrenticeHall, 1994.
 Josuttis, N. The C++ Standard Library: A Tutorial and Reference. AddisonWesley, 1999.
EECS 427. VLSI (Very Large Scale Integrated) Design I.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 270 and 311. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
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, and logic and circuit simulation. Timing. Testability. Architectures for VLSI. Projects to develop and lay out circuits.
EECS 470. Computer Architecture.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 370. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs470/
Basic concepts of computer architecture and organization. Computer evolution. Design methodology. Performance evaluation. Elementary queueing models. CPU architecture. Instruction sets. ALU design. Hardwired and microprogrammed control. Nanoprogramming. Memory hierarchies. Virtual memory. Cache design. Inputoutput architectures. Interrupts and DMA. I/O processors. Parallel processing. Pipelined processors. Multiprocessors.
EECS 477. Introduction to Algorithms.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 281. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Fundamental techniques for designing efficient algorithms and basic mathematical methods for analyzing their performance. Paradigms for algorithm design: divideandconquer, greedy methods, graph search techniques, and dynamic programming. Design of efficient data structures and analysis of the running time and space requirements of algorithms in the worst and average cases.
EECS 478. Logic Circuit Synthesis and Optimization.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 270 and 203, and senior or graduate standing. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Advanced design of logic circuits. Technology constraints. Theoretical foundations. Computeraided design algorithms. Twolevel and multilevel optimization of combinational circuits. Optimization of finitestate machines. Highlevel synthesis techniques: modeling, scheduling, and binding. Verification and testing.
EECS 481. Software Engineering.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 281. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering 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.
EECS 482. Introduction to Operating Systems.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 370 and 281. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://www.eecs.umich.edu/~pmchen/eecs482/
Operating system design and implementation: multitasking; concurrency and synchronization; interprocess communication; deadlock; scheduling; resource allocation; memory and storage management; inputoutput; file systems; and protection and security. Students write several substantial programs dealing with concurrency and synchronization in a multitask environment, with file systems, and with memory management.
EECS 482. Introduction to Operating Systems.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 370 and 281. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://www.eecs.umich.edu/~pmchen/eecs482/
No Description Provided. Contact the Department.
EECS 483. Compiler Construction.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 281 or graduate standing. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://wwwpersonal.engin.umich.edu/~jcaputo/eecs483/
Introduction to compiling techniques including parsing algorithms, semantic processing, and optimization. Students implement a compiler for a substantial programming language using a compiler generating system.
The class will have about 6 homeworks and no exams. The grades will be 40% homeworks and 60% projects.
Books:
 Lex & Yacc (Required) by Levine, Mason, Brown O'Reilly Publishers
 Compilers: Principles, Techniques, and Tools (Required) Alfred V. Aho, Ravi Sethi, Jeffrey Ulman
 Mastering Regular Expression (Recommendd) Powerful Techniques for Perl and Other Tools By Jeffrey Friedl O'Reilly
Publishers
EECS 484. Database Management Systems.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 380. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering 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 course
project in which you will build a simple, but fairly complete, singleuser 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.
EECS 487. Interactive Computer Graphics.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 281 and senior standing. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Computer graphics hardware, line drawing, rasterization, antialiasing, 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 visiualization.
EECS 489. Computer Networks.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 482. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://devon.eecs.umich.edu/
Textbooks:
 Kurose and Ross, "Computer Networking: A TopDown Approach," 2nd. ed., AddisonWesley, 2002. ISBN 020147114.
 W.R. Stevens, UNIX Network Programming, vol. 1: Networking APIs: Sockets and XTI, 2nd. ed., PrenticeHall, 1997. (Don't buy the first edition!).
If you want to learn how to design waycool 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 clientserver 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 Stat 412 is highly recommended as a corequisite.
EECS 492. Introduction to Artificial Intelligence.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 281. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2002/fall/eecs/492/001.nsf
The purpose of this course is to introduce the student to the major
ideas and techniques of Artificial Intelligence, as well as to develop an
appreciation for the engineering issues underlying the design of
intelligent, computational agents. The successful student will finish the
course with specific modeling and analytical skills (e.g., search, logic, probability), knowledge of many of the most important knowledge
representation, reasoning, and machinelearning schemes, and a
general understanding of AI principles and practice. The course will
serve to prepare the student for further study of AI, as well as to
inform any work involving the design of computer programs for
substantial application domains.
EECS 494. Computer Game Design and Development.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 281. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Concepts and methods for the design and development of computer games. Topics include: history of games, 2D graphics and animation, sprites, 3D animation, binary space partition trees, software engineering, game design, interactive fiction, user interfaces, artificial intelligence, game SDK's, networking, multiplayer games, game development environments, and commercialization of software.
EECS 496. Capstone Design Course in Computing.
Computer Science
Instructor(s):
Prerequisites & Distribution: Senior standing, and concurrent enrollment in Technical Communication 496 and one of the approved 400level team project courses in computing. (2). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (2).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2002/fall/eecs/496/001.nsf
Capstone design course for seniors in computer science or computer engineering. Design principles for multidisciplinary team projects, team strategies, entrepreneurial skills, ethics, and social and environmental awareness.
Each student must take (simultaneously) Tech Comm 496 (2 credits) and one of the approved 400level team project courses in computing (24 credits).
EECS 497. EECS Major Design Projects.
Computer Science
Instructor(s):
Prerequisites & Distribution: Senior standing. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Professional problemsolving 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 nonEECS seniors to also take the course (consult with instructor).
EECS 498. Special Topics.
Computer Science
Instructor(s):
Prerequisites & Distribution: (14). (Excl). CAEN lab access fee required for nonEngineering students.
Credits: (14).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Topic of current interest selected by faculty.
EECS 498. Special Topics.
Computer Science
Section 001 – Programming Science and Engineering
Instructor(s):
A Morgan
Prerequisites & Distribution: (14). (Excl). CAEN lab access fee required for nonEngineering students.
Credits: (14).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
No Description Provided. Contact the Department.
EECS 498. Special Topics.
Computer Science
Section 003 – Patent Fundamentals for Engineers. (3 credits).
Instructor(s):
M Islam
Prerequisites & Distribution: (14). (Excl). CAEN lab access fee required for nonEngineering students.
Credits: (14).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
No Description Provided. Contact the Department.
EECS 570. Parallel Computer Architecture.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 470. (4). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs570/
Pipelining and operation overlapping, SIMD and MIMD architectures, numeric and nonnumeric applications, VLSI, WSI architectures for parallel computing, and performance evaluation. Case studies and term projects.
EECS 584. Advanced Database Systems.
Computer Science
Instructor(s):
Prerequisites & Distribution: EECS 484. (3). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (3).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Survey of advanced topics in database systems. Distributed databases, query processing, and transaction processing. Effects of data models: objectoriented and deductive databases, architectures, mainmemory and parallel repositories, distributed organizations, and clientserver and heterogeneous systems. Basic data management for emerging areas: Internet applications, OLAP, and data mining. Case studies of existing systems. Group projects.
EECS 595 / LING 541. Natural Language Processing.
Computer Science
Section 001.
Prerequisites & Distribution: Senior standing. (3). (Excl). (BS). CAEN lab access fee required for nonEngineering students.
Credits: (3).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://www.eecs.umich.edu/~rthomaso/cl/clcourse.html
See Linguistics 541.001.
EECS 598. Special Topics in Electrical Engineering and Computer Science.
Computer Science
Instructor(s):
Prerequisites & Distribution: Permission of instructor or advisor. (14). (Excl). (BS). CAEN lab access fee required for nonEngineering students. May be repeated for credit.
Credits: (14).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
Topics of current interest in electrical engineering and computer science. Lectures, seminar, or laboratory.
EECS 598. Special Topics in Electrical Engineering and Computer Science.
Computer Science
Section 001 – RF Power Amplifier Design. [credits?].
Instructor(s):
A Mortazawi
Prerequisites & Distribution: Permission of instructor or advisor. (14). (Excl). (BS). CAEN lab access fee required for nonEngineering students. May be repeated for credit.
Credits: (14).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
No Description Provided. Contact the Department.
EECS 598. Special Topics in Electrical Engineering and Computer Science.
Computer Science
Section 002 – Analog to Digital Conversion Circuits. [credits?].
Instructor(s):
M Flynn
Prerequisites & Distribution: Permission of instructor or advisor. (14). (Excl). (BS). CAEN lab access fee required for nonEngineering students. May be repeated for credit.
Credits: (14).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
No Description Provided. Contact the Department.
EECS 598. Special Topics in Electrical Engineering and Computer Science.
Computer Science
Section 003 – Theory of Quantum Computation: Introduction and Current Problems. [credits?].
Prerequisites & Distribution: Permission of instructor or advisor. (14). (Excl). (BS). CAEN lab access fee required for nonEngineering students. May be repeated for credit.
Credits: (14).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: http://www.eecs.umich.edu/~shiyy/598/
As a result of remarkable theoretical advances in recent years, the emerging field of quantum computation has drawn enthusiastic participations from scientists in many fields. It has been demonstrated that quantum information behaves fundamentally differently from classical information, and, it appears that computers based on exact quantum mechanical principles can be dramatically more powerful than those currently deployed.
This course is to provide an introduction to the theory of quantum computation, as well as to explore its frontier. Topics include, but are not limited to:
 Mathematical foundations of quantum mechanics and models of quantum computation;
 Quantum algorithms;
 Classical simulations of quantum circuits;
 Quantum lower bounds;
 Quantum communication complexity;
 Quantum errorcorrecting codes, and faulttolerant quantum computation;
 Quantum cryptography.
The course is intended for all interested and mathematically mature audiences. Collegelevel linear algebra is required. Knowledge in quantum
mechanics and theoretical computer science is helpful, but not required.
Reference Books
 A. Yu. Kitaev, A. H. Shen and M. N. Vyalyi. Classical and Quantum Computation, American Mathematical Society, July 2002. ISBN: 0821832298.
 John Preskill. Quantum Information and Computation, Lecture notes available at http://theory.caltech.edu/people/preskill/ph229/.
 Isaac L. Chuang and M.A. Nielsen. Quantum Computation and Information, Cambridge University Press, December 2000. ISBN: 0521635039.
EECS 598. Special Topics in Electrical Engineering and Computer Science.
Computer Science
Section 004.
Instructor(s):
Wise
Prerequisites & Distribution: Permission of instructor or advisor. (14). (Excl). (BS). CAEN lab access fee required for nonEngineering students. May be repeated for credit.
Credits: (14).
Lab Fee: CAEN lab access fee required for nonEngineering students.
Course Homepage: No homepage submitted.
No Description Provided. Contact the Department.
This page was created at 5:16 PM on Thu, Oct 3, 2002.
University of Michigan  College of LS&A  Student Academic Affairs  LS&A Bulletin Index
This page maintained by LS&A Academic Information and Publications, 1228 Angell Hall
Copyright © 2002 The Regents of the University of Michigan,
Ann Arbor, MI 48109 USA +1 734 7641817
Trademarks of the University of Michigan may not be electronically or otherwise altered or separated from this document or used for any nonUniversity purpose.
