College of LS&A

Winter '01 Graduate Course Guide

Note: You must establish a session for Winter Term 2001 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 Computer Science


This page was created at 9:05 PM on Mon, Jan 29, 2001.

Winter Term, 2001 (January 4 April 26)

Open courses in Computer Science
(*Not real-time Information. Review the "Data current as of: " statement at the bottom of hyperlinked page)

Wolverine Access Subject listing for CMPTRSC

Winter Term '01 Time Schedule for Computer Science.


CMPTRSC 470/EECS 470. Computer Architecture.

Section 001.

Instructor(s): Steven K Reinhardt

Prerequisites: CS 370. (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/courses/eecs470/

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.

Course policies:

  • Attendance at the discussion section is mandatory. The TA will hand out homework assignments and present vital information on the CAD tools you will be using for your project. Do not register for this course unless you can attend the discussion section.
  • This course is a lot of work. You will spend many long nights debugging your processor at the end of the term. If you are registered for other classes that may interfere with your ability to dedicate a lot of time to this course, especially in the last few weeks, you should reconsider your schedule.
  • You are encouraged to interact with other students to discuss course material, form study groups for the exams, help each other learn Verilog and the CAD tools, and provide each other with debugging assistance, encouragement, and moral support. However, the honor code is still in force: all individual assignments (i.e., homeworks and exams) are to be performed on your own, and all group assignments (i.e., the project) are to be performed only by members of the group. Violation of this policy is grounds for initiating an action that would be filed with the Dean's office and would come before the College of Engineering's Honor Council. If you have any doubts about whether your level of collaboration is permissible, contact the professor or the TA first.

    Grading: Homeworks 30%, Midterm 15%, Final 20%, Project 35%.

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

    CMPTRSC 476/EECS 476. Foundations of Computer Science.

    Section 001 Theory of Computation

    Instructor(s): William C. Rounds (rounds@umich.edu)

    Prerequisites: CS 280 and 303. (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-personal.engin.umich.edu/~hge/476/

    Texts:

    • Sipser, Introduction to the Theory of Computation, PWS Publishers
    • Barwise and Etchemendy: Turing's World, CSLI Publications
    Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

    CMPTRSC 476/EECS 476. Foundations of Computer Science.

    Section 004.

    Instructor(s): Richmond Thomason

    Prerequisites: CS 280 and 203 (or 303). (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/courses/eecs476/w01/sec4/

    Finite Automata, Regular Operations, Nondeterminism. Regular Expressions. Proofs of non-regularity. Context-Free Grammars. Pushdown Automata. Proofs of non-context-freeness. Background to computability. Turing machines. Variations on Turing Machines. Abstract algorithms. Decidability Halting problem. Undecidability. Reducibility Time complexity. P complexity, NP complexity. NP-completeness. NP-complete problems.

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

    CMPTRSC 477/EECS 477. Introduction to Algorithms.

    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 478/EECS 478. Logic Circuit Synthesis and Optimization.

    Section 001.

    Instructor(s): Marios C. Papaefthymiou (marios@umich.edu), Sayan Bhattacharyya (bhattach@umich.edu)

    Prerequisites: CS 270 and CS 303, and senior or graduate standing. (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/courses/eecs478/

    Course Overview: This course covers digital logic synthesis and its underlying theory from an advanced perspective. Topics include: combinational logic optimization (two-level and multilevel minimization), sequential logic optimization (state assignment, FSM minimization, retiming), timing analysis and optimization, technology mapping, scheduling, allocation, and verification. Emphasis will be placed on algorithmic techniques that are currently used in the design of integrated systems with millions of transistors.

    Textbook: Logic synthesis and verification algorithms, G. Hachtel and F. Somenzi, Kluwer Academic Publishers.

    Supplementary textbook: Synthesis and optimization of digital circuits, G. DeMicheli, McGraw-Hill.

  • Both textbooks have been placed on reserve in the Media Union Library.

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

    CMPTRSC 481/EECS 481. Software Engineering.

    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 482/EECS 482. Introduction to Operating Systems.

    Section 001.

    Instructor(s): Atul Prakash

    Prerequisites: CS 370 and 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://www.eecs.umich.edu/courses/eecs482/

    Course Overview: EECS 482 is an introductory course in operating systems at the senior undergraduate level or first-year graduate level. The objective of the course is to familiarize you with the issues involved in the design and implementation of modern operating systems. The concepts in this course are not limited to any particular operating system or hardware platform. We will discuss examples that are drawn from historically significant and modern operating systems. We will cover topics such as processes and threads, concurrency and synchronization, CPU scheduling, virtual memory management, communication in distributed systems, secondary-storage management, file systems, and security.

    In order to more fully understand operating systems, you will implement several projects that expose you to the core features of modern operating systems. These projects will give you practical exposure to topics such as threads, efficient resource usage, caching, and client-server systems. To further your understanding of other topics, we will provide practice questions that will be presented in the discussion sections. In discussion sections, we will also present material on the practice of programming, including elegance in design and coding; the process of testing and debugging; and how to effectively work in teams.

    Prerequisites Students must have obtained a grade of C or better in each of EECS 370 and EECS 380. Graduate students must have equivalent knowledge of computer architecture, data structures, and C/C++ programming. Students are expected to have had extensive C/C++ programming experience and to be familiar with UNIX. Students with questions about whether they have sufficient preparation for this course should speak with the instructors as soon as possible. Due to the overwhelming number of students interested in this course, we will strictly enforce the prerequisites. We will also give priority to senior students who need the course to graduate in May and have declared their major. Undeclared majors will not be accepted into this course because of high enrollment.

    Course Projects: Four projects will be assigned during the term. These projects will require a substantial time commitment on your part. Many students find the workload in this course to be heavy. However, we expect that effort spent on programming projects will be conceptual rather than brute-force; none of the projects are excessively large in terms of lines of code.

    Exams: There will be two exams for this course a midterm and a final.

    Grading Policy Final grades will be based on the total points earned on the projects and exams. Factors such as class participation may be used to adjust your final grade, especially if it falls on a borderline. The tentative point breakdown is as follows:

  • Projects 40%
  • First Exam 30%
  • 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

    Supplementary reading (for your entertainment and edification)

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

    CMPTRSC 482/EECS 482. Introduction to Operating Systems.

    Section 006.

    Instructor(s): Donald C Winsor (don@umich.edu)

    Prerequisites: CS 370 and 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://www.eecs.umich.edu/courses/eecs482/

    Course Overview: EECS 482 is an introductory course in operating systems at the senior undergraduate level or first-year graduate level. The objective of the course is to familiarize you with the issues involved in the design and implementation of modern operating systems. The concepts in this course are not limited to any particular operating system or hardware platform. We will discuss examples that are drawn from historically significant and modern operating systems. We will cover topics such as processes and threads, concurrency and synchronization, CPU scheduling, virtual memory management, communication in distributed systems, secondary-storage management, file systems, and security.

    In order to more fully understand operating systems, you will implement several projects that expose you to the core features of modern operating systems. These projects will give you practical exposure to topics such as threads, efficient resource usage, caching, and client-server systems. To further your understanding of other topics, we will provide practice questions that will be presented in the discussion sections. In discussion sections, we will also present material on the practice of programming, including elegance in design and coding; the process of testing and debugging; and how to effectively work in teams.

    Prerequisites Students must have obtained a grade of C or better in each of EECS 370 and EECS 380. Graduate students must have equivalent knowledge of computer architecture, data structures, and C/C++ programming. Students are expected to have had extensive C/C++ programming experience and to be familiar with UNIX. Students with questions about whether they have sufficient preparation for this course should speak with the instructors as soon as possible. Due to the overwhelming number of students interested in this course, we will strictly enforce the prerequisites. We will also give priority to senior students who need the course to graduate in May and have declared their major. Undeclared majors will not be accepted into this course because of high enrollment.

    Course Projects: Four projects will be assigned during the term. These projects will require a substantial time commitment on your part. Many students find the workload in this course to be heavy. However, we expect that effort spent on programming projects will be conceptual rather than brute-force; none of the projects are excessively large in terms of lines of code.

    Exams: There will be two exams for this course a midterm and a final.

    Grading Policy Final grades will be based on the total points earned on the projects and exams. Factors such as class participation may be used to adjust your final grade, especially if it falls on a borderline. The tentative point breakdown is as follows:

  • Projects 40%
  • First Exam 30%
  • 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

    Supplementary reading (for your entertainment and edification)

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

    CMPTRSC 484/EECS 484/IOE 484. Database Management Systems.

    Section 001.

    Instructor(s): Toby J. Teorey (teorey@umich.edu)

    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.

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

    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/

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

    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!).

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

    CMPTRSC 492/EECS 492. Introduction to Artificial Intelligence.

    Section 001.

    Instructor(s): Edmund H. Durfee (durfee@umich.edu)

    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.

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

    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.

    Instructor(s): Karem A. Sakallah (karem@umich.edu)

    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

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

    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.

    Instructor(s): Brian Noble (bnoble@umich.edu)

    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.

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

    CMPTRSC 586/EECS 586. Design and Analysis of Algorithms.

    Section 001.

    Instructor(s): Quentin F. Stout (qstout@umich.edu)

    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.

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

    CMPTRSC 589/EECS 589. Advanced Computer Networks.

    Section 001.

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

    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.

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

    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).

    Instructor(s): Peter Honeyman (honey@umich.edu)

    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

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

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

    Section 002 Control of Motion in Animals and Machines. (3 credits).

    Instructor(s): Daniel Koditschek (kod@umich.edu)

    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.

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

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

    Section 003 (3 credits).

    Instructor(s): Lingjie Guo (guo@umich.edu)

    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.

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

    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


    Undergraduate Course Listings for CMPTRSC.


    Page


    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.