This page was created at 9:05 PM on Mon, Jan 29, 2001.
Course Synopsis: 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 (if time
permits) basic multiprocessor systems.
A central part of EECS 470 is the detailed design of major portions of a substantial processor using the Verilog hardware
design language. Portions of this work will be done individually as homeworks; the bulk of the work will be done in groups of three to four as a term project. You
will use modern commercial CAD tools to develop and test your design. This project represents a significant investment of time on your part, and is a significant
portion of your grade in this class. However, in computer architecture 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.
EECS 370 is a prerequisite for this course. I will assume that you have a solid understanding of the material
covered in that course: assembly language, machine language, ALU design, and the basic ideas of pipelining, caches, and virtual memory. EECS 470 expands on this material greatly in both depth and breadth. If you did not take EECS 370 here, you may need to spend extra time reviewing this material.
Textbook: Computer Architecture: A Quantitative Approach, 3rd Edition, by Hennessy and Patterson, Morgan Kaufman Publishers. We will be using a draft of the
upcoming 3 rd edition, available from the Art & Architecture Copy Center in Pierpont Commons. If you send in comments on the chapters we read to the publisher, you will receive a bound version of the text when it comes out. The text is substantially revised since the 2nd edition, so there's no point in borrowing a text from someone who took the class previously.
Second Exam 30%
Course Materials. Required Textbooks:
- Operating Systems, 4th Edition, by Stallings, Prentice Hall.
- Practical Unix Programming, Robbins and Robbins, Prentice Hall.
Other Required Reading
-
An Introduction to
Programming with Threads, A. Birrell
-
Experience with Processes
and Monitors in Mesa, B. Lampson, D. Redell
- A Fast File System for UNIX, M. McKusic, W. Joy, S. Leffler, R. Fabry
-
End-to-End Arguments
in System Design, J. Saltzer, D. Reed, D. Clark
- Using Encryption for Authentication in Large Networks of Computers , R. Needham, M. Schroeder
Supplementary reading (for your entertainment and edification)
CMPTRSC 484/EECS 484/IOE 484. Database Management Systems.
Section 001.
Prerequisites: CS 380 or IOE 373. (4). 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/2001/winter/eecs/484/001.nsf
This is an introductory course on database management systems from the viewpoint of database system user, database designer, and database system developer. Consistent with recent offerings of the course, several large programming assignments will be given. Competence in object-oriented programming and data structures is required.
Required Text: Database Management Systems (2nd edition) – by Raghu Ramakrishnan and Johannes Gehrke, McGraw Hill 1999.
CMPTRSC 486/EECS 486. Object-Oriented Software Development.
Section 001.
Prerequisites: CS 380. (4). 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.
No Description Provided
Check Times, Location, and Availability
CMPTRSC 487/EECS 487. Interactive Computer Graphics.
Section 001.
Instructor(s): Jon Harris
Prerequisites: CS 380 and senior standing. (3). 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/courses/eecs487/w01/index.htm
The course will have four major focus areas:
- Mathematics for Computer Graphics
This includes the representation and manipulation of points, lines, planes, and vectors; 2-D and 3-D coordinate transformations, and their representation as matrices; 3-D
viewing and perspective.
- Geometric Modeling
Includes the modeling hierarchy, facets, polygons, curves, splines, and solids models (combinatoric solid geometry CSG).
- Rendering
Including scan line and ray tracing techniques, camera models, illumination and reflection models for surfaces, shadowing, texture mapping, and anti-aliasing.
- Applications
Graphical User Interfaces, Visualization, Animations
While not a formal prerequisite, familiarity with simple trigonometry and linear algebra concepts will make the course material easier to understand and comprehend. Likewise, familiarity with object oriented programming techniques is a plus in developing programs driven by graphical user interfaces.
Programming exercises will use the C (or C++) language for general-purpose programming; Tcl/Tk, for UI development, and OpenGL for 3-D graphics. We will review Tcl/Tk and OpenGL in class and discussion; you are assumed to know C or C++. Extensive information about Tcl/Tk and OpenGL is available on the web. Check the class web page for
links.
You will undertake written assignments and programming assignments to explore and increase your understanding of the concepts covered in this course. Final course grades will be based on the total points earned on the homework, computer programming projects, and the two exams.
Class Text:
Computer Graphics; Donald Hearn, M. Pauline Baker Source Code Link: http://www.ncsa.uiuc.edu/Vis/Graphics/code.html
Interactive Computer Graphics, A Top-Down Approach with OpenGL; Edward Angel. Source Code Link: http://thelma.cs.unm.edu/~angel/BOOK/SECOND_EDITION/
CMPTRSC 489/EECS 489. Computer Networks.
Section 001.
Instructor(s): Kang G. Shin
Prerequisites: CS 482. (4). 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://vail.eecs.umich.edu/syllabus.html
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 Stat 412 is highly recommended as a co-requisite.
Textbooks:
Kurose and Ross,
Computer Networking: A Top-Down Approach,
Addison-Wesley, 2001.
ISBN 0-201-4711-4. W.R. Stevens, UNIX Network Programming, vol. 1: Networking APIs: Sockets and XTI, 2nd. ed., Prentice-Hall, 1997. (Don't buy the first edition!).
CMPTRSC 492/EECS 492. Introduction to Artificial Intelligence.
Section 001.
Prerequisites: CS 380. (4). 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://ai.eecs.umich.edu/people/durfee/courses/492winter01/
Course Objectives: 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 machine learning 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.
There will be three examinations – two midterms and a final. There will be six homework assignments (problem sets).
Textbook: Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice-Hall, 1995.
CMPTRSC 499(500)/EECS 499. Directed Study.
Prerequisites: Senior standing in EECS. (1-4). CAEN lab access fee required for non-Engineering students. (INDEPENDENT). May be repeated for credit.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No Homepage Submitted.
No Description Provided
Check Times, Location, and Availability
CMPTRSC 545/EECS 545. Machine Learning.
Section 001.
Prerequisites: CS 492. (3). 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.
No Description Provided
Check Times, Location, and Availability
CMPTRSC 573/EECS 573. Microarchitecture.
Section 001.
Prerequisites: CS 470. (3).
Credits: (3).
Course Homepage: No Homepage Submitted.
No Description Provided
Check Times, Location, and Availability
CMPTRSC 575/EECS 575. Theoretical Computer Science II.
Section 001.
Prerequisites: CS 574. (4). 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.
No Description Provided
Check Times, Location, and Availability
CMPTRSC 578/EECS 578. Computer-Aided Design Verification of Digital Systems.
Section 001.
Prerequisites: (3).
Credits: (3).
Course Homepage: http://www.eecs.umich.edu/~maherm/temp/
Catalog Description: Design specification vs. implementation. Design errors. Functional and temporal modeling of digital systems. Simulation vs. symbolic verification techniques. Functional verification of combinational and sequential circuits. Topological and functional path delays; path sensitization. Timing verification of combinational and sequential circuits. Clock schedule optimization.
Course Description: In this course we explore how large complex digital systems are verified to ascertain their functional and temporal correctness. Students who enroll can expect to gain proficiency in state-of-the-art informal as well as formal approaches to verification of large-scale systems. Many of these techniques, and the insights that inspired them, can also be adapted to the verification of other large-scale systems, e.g., complex software. Hands-on experience with a variety of verification tools (equivalence checkers, model checkers, SAT solvers, symbolic simulators, etc.) is an integral part of the course.
Course Objective:
Primary
- Understand what verification means (mostly functional, some timing)
- Develop Appreciation of the need for verification
- Survey main approaches to verification
- Develop working knowledge of verification "infrastructure"
- Get involved in verification research
Secondary
- Learn how to do research!
Course Topics:
- Foundations: BDDs, SAT, theorem proving,...
- Simulation-based verification
- Combinational Equivalence Checking
- Sequential Equivalence Checking
- Model Checking
- Microprocessor Verification
- Timing verification of combinational circuits
CMPTRSC 581/EECS 581. Software Engineering Tools.
Section 001.
Prerequisites: CS 481 or equivalent programming experience. (3). 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.
No Description Provided
Check Times, Location, and Availability
CMPTRSC 582/EECS 582. Advanced Operating Systems.
Section 001.
Prerequisites: CS 482. (4). 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/~bnoble/582/
This course covers advanced topics and current issues in operating systems. The objective of the course is threefold. First, it will expose you to many of the important results in the field of operating systems over the last three decades. Second, it will illustrate some current trends and topics in the field. Third, it will give you experience planning and carrying out a modest OS project, from design through communication of results.
Commensurate with its numbering, this is a graduate-level course. The official prerequisite is EECS 482. While graduate standing is not strictly required, undergraduates are strongly discouraged from taking this course. This course is run very differently from an undergraduate course, and the few undergraduates who have taken it have found it to be quite difficult.
The work of this course consist of:
- Reading, analyzing, and actively discussing papers.
- As part of a team, designing a semester-long project, carrying it out, and writing up the results.
- Writing a review for a project done by other students.
- Writing a critique of current research papers submitted to a top-tier conference.
- Taking a final exam during the last week of class.
CMPTRSC 586/EECS 586. Design and Analysis of Algorithms.
Section 001.
Prerequisites: CS 380. (3). 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/586/index.html
Audience: In decreasing order of frequency, historically the students in this class have been
- Gradute students in Computer Science and Engineering: For these students, this class can satisfy the Theory distributional requirements for the MS and PhD degrees, and helps satisfy the 500-level course requirements.
- Graduate students from other disciplines: For these students, this class can satisfy cognate requirements, and it can satisfy computer science requirements for students in the Scientific Computing program.
- Undergraduate students: For CSE undergraduates it can satisfy computer-oriented technical elective requirements, and can be used to satisfy theory requirements (though this is not recommended unless you are very good).
Prerequisites
In terms of computational maturity, you should be able to program well in some standard procedural language such as C, Fortran, Pascal, or Java, including experience in
data structures at least equivalent to EECS 380 (preferably you've had at least one class that used 380 as a prerequisite). In class we'll use pseudo-code, so the
computer language you've used is not critical (though if you have only used Fortran it is likely that your background is quite weak).
In terms of mathematical background, you should have had least EECS 303 or its equivalent and done well in it. Any additional upper level courses in theoretical
computer science, logic, or discrete mathematics in which you had to do proofs will be helpful. In addition to the discrete mathematics, we will also make use of calculus
and basic probability theory.
For all students, the course can satisfy a general desire to learn more about algorithms and computer science. This is one of the core graduate computer science courses, both here and elsewhere, and I make an attempt to show how algorithms relate to a wide range of software and hardware concerns. By far, most of the students
enrolled are in the first category. If you are in the other categories, make sure you satisfy the prerequisites.
Content: We will cover the design and analysis of efficient algorithms to solve fundamental computational problems in searching, sorting, graph theory, geometry, optimization, and decision theory. We cover a variety of algorithmic design principles, such as greedy algorithms, divide-and-conquer, and dynamic programming. We also cover the ways in which one analyzes the efficiency of algorithms, through the use of "generalized O-notation" for worst-case, expected-case, and competitive analysis. We also give techniques for proving that an algorithm is an optimal solution to a problem – of course, we first have to define what that means.
Texts: Corman, Leiserson, and Rivest, Introduction to Algorithms, Garey and Johnson, Computers and Intractability: a Guide to the Theory of NP-Completeness, additional handouts.
Grading: Based on many rather difficult homework assignments, and class participation. No tests.
CMPTRSC 589/EECS 589. Advanced Computer Networks.
Section 001.
Prerequisites: CS 489. (4). 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/eecs589/
In this course we study the Internet; we study the protocols and architectures that
make the Internet tick and allow it to grow beyond its designers' wildest dreams.
We will investigate the design principles and architectural considerations that have allowed the Internet to survive the onslaught of the World-Wide Web. Most
importantly, we ask where to take the Internet from here. For those interested in
exploring and advancing the state of the art in computer networking, this is a
required course.
Aside from EECS 489, an introductory probability course such as EECS 401, EECS
501, Math 425, Math 525, or Stat 412 is highly recommended as a co-requisite.
It is an understatement to say that computer networking, in the forms of the
Internet and the World-Wide-Web, has had a much felt impact on our daily lifes.
When the Internet was first designed in the mid 70's, it was never intended to provide virtual tours of the Vatican. Yet it has done so without melting down (yet).
In this course, we will study the design philosophy and architectural choices that
make the Internet scalable. We will look at how the Internet has continually
evolved to accommodate new usages and applications. And most importantly, we will study the issues facing the Internet architectures of today to bring the Net into the next century, to carry not just email and low bandwidth phone calls, but high-quality realtime streams. In the end, what we will be studying is not just the
Internet, but how to build scalable and sustainable global computer and communication networks.
Textbooks:
Please see the course's Reading List for the papers we will be reading this semester. There is no textbook for this course. For background review and reference, you may find the following textbooks useful:
- Huitema, C., "Routing in the Internet," Prentice-Hall, 1995.
- Keshav, S., "An Engineering Approach to Computer Networking,"
Addison-Wesley, 1997.
- Kurose and Ross, "Computer Networking: A Top-Down Approach,"
Addison-Wesley, 2000.
- Patterson and Davie, "Computer Networks: A Systems Approach," 2nd.
ed., Morgan Kaufmann, 2000.
- Stevens, "UNIX Network Programming, vol. 1: Networking APIs: Sockets and XTI," 2nd. ed., Prentice-Hall, 1997.
- Tanenbaum, A., "Computer Networks," 3rd ed., Prentice-Hall, 1996. Wright and Stevens, TCP/IP Illustrated v.2, Addison-Wesley.
CMPTRSC 592/EECS 592. Advanced Artificial Intelligence.
Section 001 – Topic
Prerequisites: CS 492. (4). 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.
No Description Provided
Check Times, Location, and Availability
CMPTRSC 598/EECS 598. Special Topics in Electrical Engineering and Computer Science.
Section 001 – Cryptography and Network Security. (3 credits).
Prerequisites: Permission of instructor or advisor. (1-4). CAEN lab access fee required for non-Engineering students. May be repeated for credit.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.citi.umich.edu/u/honey/crypto/
This course will provide a practical survey of both the principles and practices of cryptography and network security. In the first half of the course, we will explore the basic issues addresses by network security capabilities, such as conventional and modern cryptography. The latter half of the course deals with the practice of network security, including Kerberos, PGP, public key infrastructures, SSL, and IP security. We will follow the textbook closely. There will be weekly homework assignments, occasional programming assignments, and a midterm and final exams. Enrollment is restricted to graduate students.
Textbook: Cryptography and Network Security: Principles and Practice, Second Edition, by William Stallings, Prentice Hall. ISBN 0-13-869017-0
CMPTRSC 598/EECS 598. Special Topics in Electrical Engineering and Computer Science.
Section 002 – Control of Motion in Animals and Machines. (3 credits).
Prerequisites: Permission of instructor or advisor. (1-4). CAEN lab access fee required for non-Engineering students. May be repeated for credit.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2001/winter/eecs/598/003.nsf
This course will explore the connections between biological and engineering theories of motion control. We will focus on problems of legged locomotion, developing the relevant mechanics models, exploring in that context the efficacy of various biological theories of neural control, and contrasting their explanatory power with various ideas from engineering control theory. Format: There will be twice weekly lectures with
reading assignments and a required project. Projects, to be arranged with the instructor's consultation and approval, will involve a combination of
- readings,
- numerical or analytical follow on,
- class presentation.
- culminating in a written report according to the individual agreement with the
instructor
Prerequisites: The instructor welcomes all interested students with advanced (e.g., first
year graduate level) background in any one of the areas: computer science, control; dynamical systems; mechanics; neurobiology; and related disciplines. The hope is to establish a strong
interdisciplinary dialogue at as detailed a technical level as possible.
CMPTRSC 598/EECS 598. Special Topics in Electrical Engineering and Computer Science.
Section 003 – (3 credits).
Prerequisites: Permission of instructor or advisor. (1-4). CAEN lab access fee required for non-Engineering students. May be repeated for credit.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No Homepage Submitted.
No Description Provided
Check Times, Location, and Availability
CMPTRSC 598/EECS 598. Special Topics in Electrical Engineering and Computer Science.
Section 004.
Prerequisites: Permission of instructor or advisor. (1-4). CAEN lab access fee required for non-Engineering students. May be repeated for credit.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No Homepage Submitted.
No Description Provided
Check Times, Location, and Availability
CMPTRSC 695/Psych. 640/EECS 695. Neural Models and Psychological Processes.
Section 001.
Instructor(s): Stephen Kaplan
Prerequisites: Permission of instructor. (3).
Credits: (3).
Course Homepage: No Homepage Submitted.
See Psychology 640.001.
CMPTRSC 995/EECS 995. Dissertation/Candidate.
Prerequisites: Graduate School authorization for admission as a doctoral Candidate. (8). (INDEPENDENT). May be repeated for credit.
Credits: (8; 4 in the half-term).
Course Homepage: No Homepage Submitted.
No Description Provided
Check Times, Location, and Availability

This page was created at 9:05 PM on Mon, Jan 29, 2001.
This page maintained by LS&A Academic Information and Publications, 1228 Angell Hall
Copyright © 2001 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.