College of LS&A

Fall '00 Graduate Course Guide

Note: You must establish a session on wolverineacccess.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 (Division 353)

This page was created at 6:23 PM on Thu, Oct 12, 2000.

Fall Term, 2000 (September 6 December 22)

Open courses in Computer Science

Wolverine Access Subject listing for CMPTRSC

Take me to the Fall Term '00 Time Schedule for Computer Science.

To see what graduate courses have been added to or changed in Computer Science this week go to What's New This Week.


CMPTRSC 400/EECS 400/Math. 419. Linear Spaces and Matrix Theory.

Section 001, 003.

Instructor(s): Alexandre I Barvinok (barvinok@umich.edu)

Prerequisites & Distribution: Four terms of college mathematics beyond Math. 110. Credit can be earned for only one of Math. 214, 217, 417, or 419. No credit granted to those who have completed or are enrolled in Math. 513. 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.math.lsa.umich.edu/~barvinok/m419.html

See Mathematics 419.001.

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

CMPTRSC 400/EECS 400/Math. 419. Linear Spaces and Matrix Theory.

Section 002, 004.

Instructor(s): J Tobias Stafford (jts@umich.edu)

Prerequisites & Distribution: Four terms of college mathematics beyond Math. 110. Credit can be earned for only one of Math. 214, 217, 417, or 419. No credit granted to those who have completed or are enrolled in Math. 513. 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.

See Mathematics 419.002.

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

CMPTRSC 400/EECS 400/Math. 419. Linear Spaces and Matrix Theory.

Section 005, 006.

Instructor(s): Bruce A Kleiner (bkleiner@umich.edu)

Prerequisites & Distribution: Four terms of college mathematics beyond Math. 110. Credit can be earned for only one of Math. 214, 217, 417, or 419. No credit granted to those who have completed or are enrolled in Math. 513. 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.math.lsa.umich.edu/~bkleiner/syllabus.html

See Mathematics 419.005.

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

Comp. Sci. 476/EECS 476. Foundations of Computer Science.

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

Prerequisites & Distribution: 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/~yjin/eecs476/

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

  • Review of discrete math
  • Discrete math; introduction to finite automata
  • Regular lanuages, NDFA, and DFA
  • State equivalence and minimization
  • Non-pumping lemma, proofs of nonregularity
  • Context-free grammars
  • Pushdown automata; closure properties
  • Pumping Lemma, Non-CF languages
  • Algorithms for CFG
  • More algorithms
  • Turing machines
  • What Turing machines do
  • What TMs do NOT and CANNOT do.
  • Undecidable problems; reducibility

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: No Data Given.

Comp. Sci. 477/EECS 477. Introduction to Algorithms.

Instructor(s): John Meyer (jfm@umich.edu)

Prerequisites & Distribution: 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://www.eecs.umich.edu/courses/eecs477/

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

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

Comp. Sci. 478/EECS 478. Logic Circuit Synthesis and Optimization.

Section 001.

Instructor(s): Marios Papaefthymiou (marios@umich.edu)

Prerequisites & Distribution: 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/

This course covers digital logic synthesis and its underlying theory from an advanced perspective. Topics include basic switching and sequential systems and high-level synthesis. Emphasis will be placed on algorithmic techniques that are currently used in the design of integrated systems with millions of transistors.

Assignments, Exams, and Grades

  • Five or six homework assignments (30% of final grade)
  • Midterm exam (30%)
  • Final exam (40%)

Textbook:

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

Comp. Sci. 481/EECS 481. Software Engineering.

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

Prerequisites & Distribution: 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://www.eecs.umich.edu/courses/eecs481/

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

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

Comp. Sci. 482/EECS 482. Introduction to Operating Systems.

Section 001.

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

Prerequisites & Distribution: 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/~bnoble/482/

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 hard-ware 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 se-curity. In order to more fully understand operating systems, you will implement several projects that expose you to much of the core functionality in 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, or have equivalent knowl-edge of computer architecture, data structures, and C/C++ programming. Students are expected to have had exten-sive 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 over-whelming number of students interested in this course, we will strictly enforce the prerequisites.

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 work load in this course to be heavy. However, we expect that effort spent on pro-gramming 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. The second exam will only cover material from the second half of the course; it will not be comprehensive. There will be no final exam.

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 fo-lows:

  • Projects 40%
  • First Exam 30% (October 26)
  • Second Exam 30% (December 12)

Reading List: This course has one required text: Operating Systems Concepts, by Silberschatz and Galvin. There will also be a number of required papers and handouts; these will be available on the course web page.

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

Comp. Sci. 482/EECS 482. Introduction to Operating Systems.

Section 006.

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

Prerequisites & Distribution: 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/~bnoble/482/

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 hard-ware 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 se-curity. In order to more fully understand operating systems, you will implement several projects that expose you to much of the core functionality in 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, or have equivalent knowl-edge of computer architecture, data structures, and C/C++ programming. Students are expected to have had exten-sive 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 over-whelming number of students interested in this course, we will strictly enforce the prerequisites.

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 work load in this course to be heavy. However, we expect that effort spent on pro-gramming 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. The second exam will only cover material from the second half of the course; it will not be comprehensive. There will be no final exam.

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 fo-lows:

  • Projects 40%
  • First Exam 30% (October 26)
  • Second Exam 30% (December 12)

Reading List: This course has one required text: Operating Systems Concepts, by Silberschatz and Galvin. There will also be a number of required papers and handouts; these will be available on the course web page.

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

Comp. Sci. 483/EECS 483. Compiler Construction.

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

Prerequisites & Distribution: CS 380 and 476. (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/~tnm/483/483.htm

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.

This is a fair description of what we will be covering, but the subject of compiler construction is a large one, and time limitations mean that we will not cover everything mentioned in the description in great depth. The goal will be to introduce the basics of compiler construction with an emphasis on using tools to construct a simple compiler.

Homework: Homework will be set on a regular basis. It will not be graded. The solutions will be discussed in class. The homework material will be typical of the questions that will be on the exams.

Exams: There will be two written exams, but no final.

Projects: The main grade will come from five projects that will require you to write parts of a compiler.

Books: There are two books that you should purchase. The first one is a classic, which is often referred to as the dragon or dinosaur book (I think it's a dragon on the cover).

  • Title: Compilers: Principles, Techniques, and Tools Authors: Aho, Sethi, and Ullman. Publisher: Addison-Wesley Pub Co ISBN: 0201100886
  • The second book is: Title: Lex & Yacc Authors: John R. Levine, Tony Mason, Doug Brown. Publisher: O'Reilly & Associates ISBN: 1565920007

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

Comp. Sci. 484/EECS 484/IOE 484. Database Management Systems.

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

Prerequisites & Distribution: 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: 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, single-user relational database engine. Note, in this course you will not learn the details of how to use any specific commercial database system, or the intricacies of SQL programming. This course is designed to cover the fundamental database concepts and the implementation techniques that are used in relational database engines. Using the course project, you will actually build a few key components of a database engine. If you are interested in the details of SQL programming, or the operation of a specific commercial database system, you will be able to pick this up very easily after you have taken this course.

Prerequisites EECS 380: Data Structures and Algorithms or equivalent. WARNING: The course project is programming intensive and requires that you be comfortable programming in C++. For most of you, the course project will be the largest and most complex software project that you have built so far. If you are not comfortable programming in C++, you should take a lower-level course to build these skills, and take 484 in a later semester.

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: No Data Given.

Comp. Sci. 486/EECS 486. Object-Oriented Software Development.

Section 001.

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

Prerequisites & Distribution: 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.

Object-oriented programming concepts such as data and program abstraction, encapsulation, polymorphism, single and multiple inheritance, and reusable objects. Techniques for object-oriented system decomposition and class design. Study and use of class libraries and application frameworks. Programming projects in an object-oriented language currently standard in industry.

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

Comp. Sci. 487/EECS 487. Interactive Computer Graphics.

Instructor(s): Jon Harris (harrisjw@umich.edu)

Prerequisites & Distribution: 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/f00/index.html

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

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

Comp. Sci. 489/EECS 489. Computer Networks.

Section 001.

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

Prerequisites & Distribution: 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://crib.eecs.umich.edu/

Protocols and architectures of computer networks. Topics include client-server computing, socket programming, naming and addressing, media access protocols, routing and transport protocols, flow and congestion control, and other application-specific protocols. Emphasis is placed on understanding protocol design principles. Programming problems to explore design choices and actual implementation issues assigned.

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

Comp. Sci. 492/EECS 492. Introduction to Artificial Intelligence.

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

Prerequisites & Distribution: 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: https://coursetools.ummu.umich.edu/2000/fall/engin/eecs/492/001.nsf

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

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

Comp. Sci. 493/EECS 493. User Interface Development.

Section 001.

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

Prerequisites & Distribution: CS 380. Fluency in a standard object-oriented programming language is assumed. (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/eecs493/

Usefulness and usability of software is becoming more critical, as we see hard-to-use e-commerce sites frustrating millions, and a brilliant open-source OS floundering under the burden of misguided GUIs that do not solve the fundamental usability problems. This course is intended for advanced undergraduates and graduate students who plan a career in software development in domains where the usefulness and usability of the software is a critical design goal. The ideal student is a good programmer who has done some significant application programming and is now ready to focus on getting a good design of the software and its interface rather than simply getting code to work.

The emphasis of the course will be on learning and applying modern concepts & techniques for user interface design and evaluation. Because this is the first offering under the new description and credit hours, the coverage of interface implementation programming will depend on the background and interests of the enrolled students. Because no TA will be available, the enrollment will be limited and will include only students who have an appropriate background and who will clearly benefit from the course. Thus, instructor's permission is required to register.

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

Comp. Sci. 494/EECS 494. Computer Game Design and Development.

Section 001.

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

Prerequisites & Distribution: 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://ftp.eecs.umich.edu/~soar/Classes/494/

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

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

Required texts: Tricks of the Windows Game Programming Gurus, Andre LaMothe, SAMS publishing. Game Architecture and Design, Rollings & Morris, Coriolis. Coursepack Available from Dollar Bill Copying ($61.28)

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

Comp. Sci. 499(500)/EECS 499. Directed Study.

Prerequisites & Distribution: 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


Comp. Sci. 543/EECS 543. Knowledge-Based Systems.

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

Prerequisites & Distribution: CS 380 and permission of instructor. (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://ai.eecs.umich.edu/people/durfee/courses/543fall00/

Knowledge-based systems (also called just knowledge systems) are sophisticated AI programs that solve complex problems. These programs have found considerable use in industry, and are finding exciting new applications in cyberspace (e.g., as intelligent agents). Knowledge-based systems are particularly suited to these kinds of applications because they help users define and modify knowledge for tasks in a way that users are comfortable with, and then use this knowledge based on complex inference techniques.

The goal of this class is provide students with an understanding of the principles and system-building experience needed to create a knowledge system by introducing the student to programming languages and techniques that promote a knowledge-based, or declarative, approach to software development. Although a rigorous characterization of what this means is elusive (though we will attempt to accomplish this in the course), what it amounts to practically is emphasis on programming constructs that facilitate:

  • building levels of abstraction and interpretation
  • modular specification of functionality (e.g., object orientation)
  • representations of propositions and inference (e.g., logic)

.Historically, researchers in the field of Artificial Intelligence have identified these properties as important for development of "intelligent" (whatever that means) programs, and thus have developed languages embodying them. We will explore this "knowledged-based" programming methodology through substantial exercises in three "AI" languages:

  1. Common Lisp (including its object-oriented extension, CLOS)
  2. Prolog
  3. SOAR (a problem solving architecture based on production rules)

Successful students will complete the course with a working knowledge in each of these languages, and more importantly, with a broader perspective on programming itself.

Textbooks:

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

Comp. Sci. 570/EECS 570. Parallel Computer Architecture.

Instructor(s): Steven Reinhardt (stever@umich.edu)

Prerequisites & Distribution: CS 470. (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/eecs570/

Pipelining and operation overlapping, SIMD and MIMD architectures, numeric and non-numeric applications, VLSI, WSI architectures for parallel computing, performance evaluation. Case studies and term projects.

Course Objectives:

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

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

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

CMPTRSC 571/EECS 571. Principles of Real-Time Computing.

Section 001.

Instructor(s): Kang G. Shin (kgshin@umich.edu)

Prerequisites & Distribution: CS 470 and CS 482. (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/eecs571/

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

Textbook: C. M. Krishna and Kang G. Shin, Real-Time Systems, McGraw Hill 97. Errata are maintained at http://www.ecs.umass.edu/ece/gradfac/krishna.html

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

Comp. Sci. 574/EECS 574. Theoretical Computer Science I.

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

Prerequisites & Distribution: CS 476. (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/~kjc/eecs574_00.html

Fundamentals of the theory of computation and complexity theory. Computability, undecidability, and logic. Relations between complexity classes, NP-completeness, P-completeness, and randomized computation. Applications in selected areas such as cryptography, logic programming, theorem proving, approximation of optimization problems, or parallel computing.

Text: Theory of Computational Complexity, Ding-Zhu Du and Ker-I Ko, Wiley.

Homework is due in class one week after it is assigned. No late homework will be accepted. I will pick one or two problems from each assignment to grade. Your homework score will be based on the best 6 scores (out of 8) throughout the semester. You may work with others in the class on homework and consult any source you like, but the answers you turn in must be written (or typed) in your own hand. There will be three take-home exams handed out in class Oct. 6, Nov. 3, and Dec. 11. They will be due one week after they are handed out. You may use the textbook and course notes on these exams, but no other source. In particular, there may be no collaboration between students on the take-home exams.

Grade: Exam 1 28%; Exam 2 28%; Exam 3 28%; Homework (best 6 of 8) 16%.

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

Comp. Sci. 579/EECS 579. Digital System Testing.

Section 001.

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

Prerequisites & Distribution: CS 478. (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/eecs579/index.html

This course examines in depth the theory and practice of fault analysis, test generation, and design for testability for digital integrated circuits and systems. The topics to be covered include: circuit and system modeling; fault sources and types; the single stuck-line fault model; fault simulation methods; test generation algorithms for combinational and sequential circuits, including PODEM; testability measures; design-for- testability techniques; scan design; test compression methods; logic-level diagnosis; self-checking circuits; built-in self- testing (BIST); system-level diagnosis; processor and memory testing; VLSI and system-on-a-chip (SOC) testing; design verification and its relation to physical fault testing. A term paper or small experimental/research project will be part of the course. Current research issues, including topics suitable for M.S. or Ph.D. thesis research, will be discussed.

Text: Digital System Testing and Testable Design, by M. Abramovici, M. A. Breuer and A. D. Friedman, New York, IEEE Press, 1990. (Required text). Additional reference material will be placed on reserve in the Media Union (Engineering) Library.

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

Comp. Sci. 583/EECS 583. Programming Languages.

Instructor(s): Gary Tyson (tyson@umich.edu)

Prerequisites & Distribution: CS 476 and CS 483. CS 482 or CS 489 are recommended. (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/~tyson/class/583/index.html

No Description Provided

Check Times, Location, and Availability


Comp. Sci. 584/EECS 584. Advanced Database Systems.

Section 001.

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

Prerequisites & Distribution: CS 484. (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/~jag/eecs584/

Survey of advanced topics in database systems. Distributed databases, query processing, transaction processing. Effects of data models: object-oriented and deductive databases; architectures: main-memory and parallel repositories; distributed organizations: data management for emerging areas: Internet applications, OLAP, data mining. Case studies of existing systems.

This is an advanced database course that will give you a good understanding of the pieces of a database system and what is involved in building one. I will also try to give you a feeling for the role of databases in today's computing infrastructure and how this has evolved. This is NOT a course on how to use databases, though you will arguably be a better user if you have an understanding of what is going on "under the hood". Also, this is NOT a course on XML, even though XML and the inernet will be mentioned frequently.

2 midterm exams. Both in-class. No make-ups for missed midterm exams. No final exam. Term Project: A course project is required.

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

CMPTRSC 587/EECS 587. Parallel Algorithms.

Section 001.

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

Prerequisites & Distribution: CS 380 and graduate 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/~qstout/587/

Audience: Typically about half the class is from Computer Science and Engineering, and half is from a wide range of other areas throughout the sciences, engineering, and medicine. Some students want to become parallel computing specialists, while others intend to apply parallel computing to their discipline. Students range from seniors through postdocs, and occasionally faculty sit in on the course as well. For a CSE graduate student, the course satisfies general 500-level requirements for the MA and PhD. For a CSE undergraduate, it satisfies "computer oriented technical elective" requirements for the CE and CS degrees. For a student in the Scientific Computing program and various other programs, it satisfies computer science distribution requirements. For a general graduate student, it can be used for Rackham cognate requirements. Or you can just take it because you want to.

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

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

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

Work required: Your grade will be based on written homeworks, computer programming projects, and a final project of your choosing (though I must approve it). Often students can integrate this project in with their other work, so, for example, it may be part of their thesis. Many other students have used this project to start a new research area, and have ultimately gotten a thesis in the topic. Many of the projects have lead to publications, and a few have resulted in awards of various types. If you don't have any ideas for a project, I'll help you find some. Here is some more information and suggestions for the final project.

Computing Resources: The class will use the parallel machines in the Center for Parallel Computing (CPC) here at the University of Michigan. These include an IBM SP2, an SGI PowerChallenge, an SGI Origin, and a PC-based cluster computer. Sometimes, for illustrative purposes, the class itself will be the parallel computer.

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

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

Comp. Sci. 591/EECS 591. Distributed Systems.

Instructor(s): Farnam Jahanian (farnam@umich.edu)

Prerequisites & Distribution: CS 482 and 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: No Homepage Submitted.

Principles and practice of distributed systems design. Computations, consistency semantics, and failure models. Programming paradigms including group communication, RPC, distributed shared memory, and distributed objects. Operating system kernel support; distributed system services including replication, caching, file system management, naming, clock synchronization, and multicast communication.

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

Comp. Sci. 595/EECS 595/Ling. 541. Natural Language Processing.

Section 001.

Instructor(s): Richmond Thomason (rthomaso@umich.edu)

Prerequisites & Distribution: 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/~rthomaso/cl/cl-course.html

See Linguistics 541.001.

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

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

Prerequisites & Distribution: 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.

Topics of current interest in electrical engineering and computer science.

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

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

Section 001.

Instructor(s): Demos Teneketzis (teneket@umich.edu)

Prerequisites & Distribution: 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


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

Section 002 Web Technologies. (credits?) Prereqs: CS 482 or 484.

Instructor(s): Atul Prakash (aprakash@umich.edu)

Prerequisites & Distribution: 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.eecs.umich.edu/~aprakash/585/info.html

Provides an overview of the current work on web-related infrastructure and applications.

Topics will include the following:

  • HTTP protocol performance issues; client architecture; web server architecture
  • web proxies: Security and performance issues, web caching, data distillation to support mobile web clients
  • scalability issues in web servers
  • security: cookies, certificates, secure socket layer, secure http, authentication, anonymity, firewalls, safe-guarding web sites against malicious attacks
  • XML, server-side technologies such as servlets, JSP, ASP, database/web integration.
  • design of web search engines and information filtering/classification
  • electronic commerce-related topics
  • virtual communities

Grading: This will be a interactive, discussion-oriented class, with both lectures and discussions. The goal is to find out about cutting-edge technologies related to the web and share them with the class. Grading will be based on short quizzes; homeworks; class presentations of assigned readings and project work; and a term project.

For the term project, you can work alone or in small groups. A project write-up and and in-class presentation on the project is required.

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

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

Section 003 Control of Motion in Animals and Machines. (Credits ?).

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

Prerequisites & Distribution: 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.

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

Pre-requisites: 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.

Comp. Sci. 990/EECS 990. Dissertation/Precandidate.

Section 001.

Prerequisites & Distribution: Election for dissertation work by doctoral student not yet admitted as a Candidate.Graduate standing. (1-8). (INDEPENDENT). May be repeated for credit.

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

Course Homepage: No Homepage Submitted.

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

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

Comp. Sci. 995/EECS 995. Dissertation/Candidate.

Section 001.

Prerequisites & Distribution: 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.

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

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

This page was created at 6:23 PM on Thu, Oct 12, 2000.


University of Michigan | College of LS&A | LS&A Research and Graduate Education | Rackham Bulletin Index | Rackham School of Graduate Studies

This page maintained by LS&A Academic Information and Publications, 1228 Angell Hall

Copyright © 2000 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.