|

Note: You must establish a session for Fall Academic Term 2003 on wolverineaccess.umich.edu in order to use the link "Check Times, Location, and Availability". Once your session is established, the links will function.
Courses in Electrical Engineering and Computer Science
This page was created at 7:20 PM on Tue, Sep 23, 2003.
For all courses numbered 499 and below, prerequisites are being enforced. If the machine doesn't find that you have completed or are currently enrolled in the prequisites, you will get this message when trying to enroll: "Requisites not met for class. Not enrolled."
For courses listed below without course descriptions, consult http://www.eecs.umich.edu/eecs/undergraduate/F03TS.pdf to see if a description is available.
EECS 181. Introduction to Computer Systems.
Computer Science
Prerequisites & Distribution: Intended for students whose goal is computer literacy; not intended for computer science, computer engineering, electrical engineering concentrators. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://coursetools.ummu.umich.edu/2003/fall/eecs/181/001.nsf
Fundamental computer skills needed to increase productivity. Use of software packages and applications including word processors, web browsers, spreadsheets, database systems. Creating a web home page. History of computing, ethics and legal issues. Introduction to basic hardware components. Intended for non-CE/CS/EE majors whose goal is computer literacy.
EECS 183. Elementary Programming Concepts.
Computer Science
Prerequisites & Distribution: Not intended for engineering students. Students intending transfer to the College of Engineering should take ENGR 101. CS concentrators who qualify should elect EECS 280. (4). (MSA). (BS). May not be repeated for credit. Credit is granted for only one course among EECS 183 or ENGR 101. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
Fundamental concepts and skills of programming in a high level language. Flow of control; selection, iteration, subprograms. Data structures: strings, arrays, records, lists, tables. Algorithms using selection and iteration (decision making, finding maxima/minima, searching, sorting, simultation, etc.). Good program design, structure, and style are emphasized. Testing and debugging. This course is intended for Computer Science concentrators as well as non-concentrators in LS&A, and is not intended for Engineering students.
EECS 203. Discrete Mathematics.
Computer Science
Prerequisites & Distribution: MATH 115 with a grade of at least C. Prerequisites enforced at registration. (4). (MSA). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/203/001.nsf
Fundamental concepts and skills of programming in a high level language. Flow of control; selection, iteration, subprograms. Data structures: strings, arrays, records, lists, tables. Algorithms using selection and iteration (decision making, finding maxima/minima, searching, sorting, simultation, etc.). Good program design, structure, and style are emphasized. Testing and debugging. This course is intended for Computer Science concentrators as well as non-concentrators in LS&A, and is not intended for Engineering students.
EECS 270. Introduction to Logic Design.
Computer Science
Prerequisites & Distribution: ENGR 101 or EECS 183 with a grade of at least C. Prerequisites enforced at registration. (4). (MSA). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs270/
Binary and non-binary systems, Boolean algebra digital design techniques, logic gates, logic minimization, standard combinational circuits, sequential circuits, flip-flops, synthesis of synchronous sequential circuits, PLA's, ROM's, RAM's, arithmetic circuits, computer-aided design. Laboratory includes hardware design and CAD experiments. Lectures and laboratory.
Course goals:
This course is intended to give you an understanding of digital logic. We will mostly concern ourselves with gate-level designs, but we will
also address one level of abstraction up (larger logic devices such as MUXes, adders, etc.) and one level down (CMOS and TTL logic). There
will be a heavy emphasis on learning design tools in your lab sections, and in the latter half of the course, the use of a hardware description
language (HDL), namely the ABEL HDL, to complete labs.
Grading:
Lab assignments: 30%
Homework: 10%
Quizzes: 5% (given in lecture)
Midterms: 30% (15% each)
Final: 25%
EECS 280. Programming and Introductory Data Structures.
Computer Science
Instructor(s):
Antonelli,
Opyrchal
Prerequisites & Distribution: MATH 115 and prior programming experience (assumes prior programming experience using decision constructs, iteration, functions, basic I/O, and simple arrays in C/C++). Those without prior programming experience should elect ENGR 101 or EECS 183 before electing EECS 280. (4). (MSA). (BS). May not be repeated for credit. No credit granted to those who have completed or are enrolled in EECS 283. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/280/001.nsf
Techniques of algorithm development and effective programming, top-down analysis, structured programming, testing, and program correctness. Program language syntax and static and run-time semantics. Scope, procedure instantiation, recursion, abstract data types, and parameter passing methods. Structured data types, pointers, linked data structures, stacks, queues, arrays, records, and trees.
EECS 281(380). Data Structures and Algorithms.
Computer Science
Prerequisites & Distribution: EECS 280 and 203 with a grade of at least C. Prerequisites enforced at registration. (4). (NS). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/281/001.nsf
Introduction to algorithm analysis and O-notation; Fundamental data structures including lists, stacks, queues, priority queues, hash tables, binary trees, search trees, balanced trees, and graphs; searching and sorting algorithms; recursive algorithms; basic graph algorithms; introduction to greedy algorithms and divide and conquer strategy. Several programming assignments.
EECS 285. A Programming Language or Computer System.
Computer Science
Topic?
Prerequisites & Distribution: Some programming knowledge required. (2). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (2).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
No Description Provided. Contact the Department.
EECS 370. Introduction to Computer Organization.
Computer Science
Prerequisites & Distribution: EECS 203 or 270 with a grade of at least C; and EECS 280 or 283 with a grade of at least C. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs370/
This course is intended to give you a basic understanding of how computers execute programs. Understanding computers means
understanding the hardware/software process of how you and the computer work together to have the computer carry out a concept. In your
introductory programming courses (e.g., EECS 280), you learned how to express a concept in terms of a high-level programming language
such as C/C++. In EECS 370, you will see how a low-level language is executed by the hardware, and you will see how to put together basic, hardware building blocks to form the functional units of a computer.
To achieve these goals, you will design and "build" simple computers at various levels of detail. Building in this course will not mean
connecting chips and gates. Rather, you will describe the hardware in diagrams, finite-state machines, and hardware simulators (written in
C). To further your understanding of other topics, we will provide practice questions that will be discussed in the discussion sections.
Prerequisites:
Students must have taken one of EECS 203 or EECS 270 and one of EECS 280 or EECS 283. Depending on when you took EECS 280 or
EECS 283, you may not yet be familiar with programming in C on Unix. We advise you to learn quickly. A brief overview of C vs. C++ will occur
during the first discussion section of the semester. Also you can go to GSI office hours for additional help.
Course Material:
The required text for the course is Computer Organization and Design: The Hardware/Software Interface (2nd edition), by Patterson and
Hennessy. There are also optional lecture notes on the course web page.
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 10% each = 40%
Homework (Probably 4-5 assignments) = 5%
Exams 2 midterms, 15% each, 1 final 25% = 55%
EECS 373. Design of Microprocessor Based Systems.
Computer Science
Prerequisites & Distribution: EECS 370 and 270 with a grade of at least C; and junior standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs373/
We have a number of educational goals when teaching EECS 373. The primary ones are:
- Learning the basics of embedded systems including hardware/software interfacing.
- Learning about computer architecture outside of the CPU core.
- Design and implementation of non-trivial projects involving both hardware and software.
In the classroom, we will focus on generic principles and ideas. In the lab, we will focus on the Motorola PowerPC 823 (MPC823) and the specific support
hardware and software found in the lab. When needed the lecture will support the lab, and where possible, the lab will support the lecture. You will find that you will
need to spend large amounts of time in the lab in order to complete your projects — this is a lab intensive class.
Prerequisites:
You must have taken EECS 270 and EECS 370 to take this course. This also implies you have taken EECS 280. I will assume you are familiar with (on the
hardware side) Boolean algebra, gates, multiplexers, flip-flops, and finite-state machines, (on the computer architecture side) assembly language, pipelining, memory, and caching, and (on the software side) program control structures (if/then/else, while and for loops), functions, procedures, parameter passing, pointer-based data
structures, and basic structured programming techniques (information hiding, modular programming, etc.).
EECS 376(476). Foundations of Computer Science.
Computer Science
Section 001.
Instructor(s):
D. Koditchek (kod@umich.edu)
Prerequisites & Distribution: EECS 280 and 203 with a grade of at least C. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/376/001.nsf
An introduction to computation theory: finite automata, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions, and computational complexity.
EECS 376(476). Foundations of Computer Science.
Computer Science
Section 002.
Prerequisites & Distribution: EECS 280 and 203 with a grade of at least C. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
An introduction to computation theory: finite automata, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions, and computational complexity.
EECS 381. Object Oriented and Advanced Programming.
Computer Science
Prerequisites & Distribution: EECS 281 with a grade of at least C. Prerequisites enforced at registration. Recommended for students in interested in a career in software development, especially applications. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.engin.umich.edu/class/eecs381/
Programming techniques in standard C++ for large-scale, complex, or high-performance software. Encapsulation, automatic memory management, exceptions, generic programming with templates and function objects, Standard Library algorithms and containers. Using single and multiple inheritance and polymorphism for code reuse and extensibility; basic design idioms, patterns, and notation.
Course goals: This is a relatively new elective course that introduces advanced concepts and techniques in practical C/C++ programming. Some important "legacy" topics in C will be
covered, but the course will emphasize object-oriented programming with the use of single and multiple inheritance and polymorphism, and using the Standard Library algorithms and
containers. Key ideas in object-oriented analysis and design and common design patterns will be introduced. Programming projects will focus on learning and using techniques that are valuable
for professional practice in developing and extending large scale or high-performance software relatively easily. In addition to these content goals, an important function of the course is to help
students develop good programming practices, style, and skill, with as much personalized coaching and critique of individual student's code as possible.
Prerequisite: EECS 281 is the required prerequisite for this course. Since a grade of C or better is the minimum grade for required courses in the CS and CE degree programs, if you received a grade of C- (C-minus) or lower in 281, you do not belong in this course, but should be retaking 281 (or any other course with a C- or lower grade).
EECS 427. VLSI (Very Large Scale Integrated) Design I.
Computer Science
Prerequisites & Distribution: EECS 270 and 312 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs427/
Design techniques for rapid implementations of very large scale integrated (VLSI) circuits, MOS technology and logic. Structured design. Design rules, layout procedures. Design aids: layout, design rule checking, logic and circuit simulation. Timing. Testability. Architectures for VLSI. Projects to develop and lay out circuits.
Course Objectives:
This course introduces mask level integrated circuit design. Correct engineering
design methodology is emphasized. Topics covered in lectures include: CMOS
processes, mask layout method and design rules; circuit characterization and
performance estimation; design for testability; and CMOS subsystem and system
design.
Textbook:
Jan Rabaey, Anantha Chandrakasan, and Borivoje Nikolic, Digital Integrated
Circuits: A Design Perspective, second edition, Prentice Hall, 2003.
Grading Policy:
Homeworks (including project presentation):
10%
CAD assignments:
35%
Quizzes:
20%
Final project, report, and individual
contributions:
35%
EECS 470. Computer Architecture.
Computer Science
Prerequisites & Distribution: EECS 270 and 370 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs470/
EECS 470 is an introductory graduate-level course in computer architecture. This course is intended to do two things: to give you a solid, detailed
understanding of how computers are designed and implemented, including the central processor and memory and I/O interfaces; and to make you
aware of the numerous tradeoffs in design and implementation, their interaction, their realization in both historical and state-of-the-art systems, and
trends that will affect them in future systems. We will cover instruction set architectures, pipelining (including basic pipelining, multiple-instruction-per-cycle machines, out-of-order instruction execution, and vector processing), memory systems (including caches and virtual
memory), I/O interfaces, operating system issues, and basic multiprocessor systems. We also will do case studies on microprocessors and systems
you may have used, perhaps including the P6 (Pentium Pro/II/III), Pentium 4, and the Sony PlayStation/2.
A central part of EECS 470 is the detailed design of major portions of a substantial processor using the Verilog hardware design language (HDL).
Portions of this work will be done individually as homeworks; the bulk of the work will be done in groups of four to five as a term project. You will
use modern commercial CAD tools to develop your design. This project represents a significant investment of time on your part, and is a
significant portion of your grade in this class. In computer architecture, however, it is particularly true that "the devil is in the details," and you will
gain important experience and knowledge by coming face to face with that devil.
Textbooks:
Computer Architecture: A Quantitative Approach, 3rd edition, by Hennessy and Patterson, Morgan Kaufman Publishers.
Optional: Verilog Styles for Synthesis of Digital Systems, 1st edition, by Smith and Franzon, Prentice Hall.
EECS 477. Introduction to Algorithms.
Computer Science
Instructor(s):
K. Compton (kjc@umich.edu)
Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
Fundamental techniques for designing efficient algorithms and basic mathematical methods for analyzing their performance. Paradigms for algorithm design: divide-and-conquer, greedy methods, graph search techniques, dynamic programming. Design of efficient data structures and analysis of the running time and space requirements of algorithms in the worst and average cases.
EECS 478. Logic Circuit Synthesis and Optimization.
Computer Science
Prerequisites & Distribution: EECS 270 and 203 with a grade of at least C; and senior or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
Advanced design of logic circuits. Technology constraints. Theoretical foundations. Computer-aided design algorithms. Two-level and multilevel optimization of combinational circuits. Optimization of finite-state machines. High-level synthesis techniques: modeling, scheduling, and binding. Verification and testing.
EECS 481. Software Engineering.
Computer Science
Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
Pragmatic aspects of the production of software systems, dealing with structuring principles, design methodologies and informal analysis. Emphasis is given to development of large, complex software systems. A term project is usually required.
EECS 482. Introduction to Operating Systems.
Computer Science
Prerequisites & Distribution: EECS 370 and 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/482/001.nsf
Operating system design and implementation: multi-tasking; concurrency and synchronization; inter-process communication; deadlock; scheduling; resource allocation; memory and storage management; input-output; file systems; protection and security. Students write several substantial programs dealing with concurrency and synchronization in a multi-task environment, with file systems, and with memory management.
EECS 483. Compiler Construction.
Computer Science
Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/~mahlke/483f03/
An introduction to the specification and implementation of modern compilers. Topics covered include lexical scanning, parsing, type checking, code generation
and translation, an introduction to optimization, and compile-time and run-time support for modern programming languages. As part of the course, students
will build a working compiler for a subset of the C programming language.
Course Text:
Compilers: Principles, Techniques, and Tools, Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman, Addison-Wesley, 1988.
Useful Reference Books:
Lex & Yacc, Levine, Mason and Brown, O'Reilly Publishers
Advanced Compiler Design & Implementation, Steven S. Muchnick, Morgan Kaufmann, 1997.
Building an Optimizing Compiler, Robert Morgan, Butterworth-Heinemann,1998.
Modern Compiler Implementation in Java. Andrew Appel. Cambridge University Press, 1997
Prerequisites:
Required: Strong C++ programming skills (EECS 281). Recommended: Familiarity with Unix C/C++ development tools (i.e., gcc, gdb, emacs); Basic familiarity
with computer organization (EECS 370); Some background in foundations of computer science (EECS 376).
EECS 484. Database Management Systems.
Computer Science
Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs484/
EECS 484 provides basic introduction to relational database management systems (DBMSs). This course is designed to provide you with both an external and an
internal view of relational DBMSs. Topics related to the external view will cover concepts that will allow you to use a relational DBMS. Topics related to the
internal view will allow you to better understand how a relational DBMS works, making you more sophisticated (and perhaps higher paid) database
users/administrators. The course has a group project in which you will build a simple, but fairly complete, single-user relational database engine. Note, in this
course you will not learn the details of how to use any specific commercial database system, or the intricacies of SQL programming. This course is designed to
cover the fundamental database concepts and the implementation techniques that are used in relational database engines. Using the course project, you will actually
build a few key components of a database engine. If you are interested in the details of SQL programming, or the operation of a specific commercial database
system, you will be able to pick this up very easily after you have taken this course.
Text: Database Management Systems (3rd edition) — by Raghu Ramakrishnan and Johannes Gehrke, McGraw Hill, 2003, ISBN: 0-07-115110-9
Prerequisites:
EECS 281: Data Structures and Algorithms or equivalent. WARNING: The course project is programming intensive and requires that you be comfortable programming in C++.
EECS 487. Interactive Computer Graphics.
Computer Science
Prerequisites & Distribution: EECS 281 with a grade of at least C; and senior or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/courses/eecs487/f03/
Computer graphics hardware, line drawing, rasterization, anti-aliasing, graphical user interface (GUI), affine geometry, projective geometry, geometric transformation, polygons, curves, splines, solid models, lighting and shading, image rendering, ray tracing, radiosity, hidden surface removal, texture mapping, animation, virtual reality, and scientific visualization.
EECS 489. Computer Networks.
Computer Science
Prerequisites & Distribution: EECS 482 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://irl.eecs.umich.edu/jamin/courses/eecs489/
If you want to learn how to design way-cool Web pages, how to build and maintain a
killer Web site, or how to setup, administer, and engineer a LAN, this course is not for
you. In this course we do not study how modem works, nor do we study how ISDN
works. We do not study Novell Netware Administration and we do not learn how to
use Adobe Photoshop. We do not learn how to set up a chat room, nor how to set up
an electronic guest book.
We do try to understand how networks operate and how network applications are
written. We study the workings of the Ethernet and the Internet: how packets are
routed, how packets are transmitted, and what to do when there is network
congestion. We look at packet headers and routing and transmission protocols. We
learn what sockets are and how to use them. And we write code. We write code to
implement various routing and transmission protocols. We write code to build
client-server applications. There will be a lot of programming.
You should know what processes and threads are and be familiar with concurrency
and interprocess communication. EECS 482 (Introduction to Operating Systems) is a
strict prerequisite. You must also have good working knowledge of C and UNIX. An
introduction to probability course such as EECS 401, EECS 501, MATH 425, MATH 525, or
STATS 412 is highly recommended as a co-requisite.
Course Grade Composition:
1 Final Exam: 20%
2 Take-home Exams: 30% (15% each) 1 Course Project: 48%
Class Participation: 2%
Textbooks:
Kurose and Ross, Computer Networking: A Top-Down Approach, 2nd. ed, Addison-Wesley, 2003. ISBN 0-201-97699-4.
W.R. Stevens, UNIX Network Programming, vol. 1: Networking APIs: Sockets and
XTI, 2nd. ed., Prentice-Hall, 1997.
EECS 492. Introduction to Artificial Intelligence.
Computer Science
Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/492/001.nsf
Fundamental concepts of AI, organized around the task of building computational agents. Core topics include search, logic, representation and reasoning, automated planning, decision making under uncertainty, and machine learning.
EECS 494. Computer Game Design and Development.
Computer Science
Prerequisites & Distribution: EECS 281 with a grade of at least C; or graduate standing. Prerequisites enforced at registration. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/~soar/Classes/494/
In this course, we will study the technology, science, and art involved in the creation of computer games.
The course will emphasize hands-on development of games. We will study a variety of software
technologies relevant to games including programming languages, scripting languages, operating systems, file
systems, networks, simulation engines, and multi-media design systems. We also will study some of the
underlying scientific concepts from computer science and related fields including: simulation and modeling, graphics, artificial intelligence, real-time processing, and game theory. Finally, we will study the art and
design principles for developing useable and engaging games including: software engineering, human
computer interaction, thematic structure, graphic design, choreography, music and sound effects, and game
aesthetics.
The course will include visiting lectures and a variety of group projects. The group projects will involve
system implementation, but emphasize design and use of existing tools. The final group project will require
the students to go through all phases of system conceptualization, specification, design, implementation, and evaluation.
Required Text:
Tricks of the Windows Game Programming Gurus, Andre LaMothe, 2nd Edition.
Recommended Reading
Game Architecture and Design, Rollings and Morris, Coriolis Publishing.
Game Design: The Art and Business of Creating Games, Bates, Prima Tech.
Game Design: Secrets of the Sages, Saltzman, Brady Games.
Game Design: Theory and Practice, Rouse, Wordware Game Developer's Library.
3D Game Engine Design, David H. Eberly, Morgan Kaufmann.
Game Programming Gems, Mark DeLoura, Charles River Media.
The Awesome Power of Direct3D/DirectX, Kovach, Manning.
EECS 496. Major Design Experience — Professionalism.
Computer Science
Instructor(s):
Prerequisites & Distribution: Senior standing. Prerequisites enforced at registration. Concurrent enrollment in Technical Communication 496 and one of the approved 400-level team project courses in computing. (2). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (2).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/496/001.nsf
Design principles for multidisciplinary team projects, team strategies, entrepreneurial skills, ethics, social and environmental awareness, and life long learning. Each student must take (simultaneously) TCHNCLCM 496 (2 cr.) and one of the approved 400-level team project courses (4 cr.)
Required Texts
- Brooks, Frederick The Mythical Man-Month, 20th anniversary edition: Essays on Software Engineering, 1995.
- Fleddermann, Charles Engineering Ethics, Prentice Hall, 1999.
- Moore, Geoffrey Crossing the Chasm, Harper Collins Publishers Inc., 1999.
- Smith, Karl Project Management and Teamwork, McGraw-Hill, 2000.
EECS 497. EECS Major Design Projects.
Computer Science
Instructor(s):
Prerequisites & Distribution: Senior or graduate standing. Prerequisites enforced at registration. Successful completion of at least 2/3 credits required for Prog. Subjects. (4). (Excl). (BS). May be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/496/001.nsf
Professional problem-solving methods developed through intensive group studies. Normally, one significant design project is chosen for entire class requiring multiple EECS disciplines and teams. Use of analytic, computer, design, and experimental techniques where applicable are used. Projects are often interdisciplinary allowing non-EECS seniors to also take the course (consult with instructor)
Required Texts
- Brooks, Frederick The Mythical Man-Month, 20th anniversary edition: Essays on Software Engineering, 1995.
- Fleddermann, Charles Engineering Ethics, Prentice Hall, 1999.
- Moore, Geoffrey Crossing the Chasm, Harper Collins Publishers Inc., 1999.
- Smith, Karl Project Management and Teamwork, McGraw-Hill, 2000.
EECS 498. Special Topics.
Computer Science
Section 002 — Non Photorealistic Computer Graphics. [4 credits].
Instructor(s):
Lee Markosian
Prerequisites & Distribution: (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
In this seminar we will study current research on methods for modeling and rendering non-photorealistic 3D scenes. This approach to computer graphics targets images that resemble hand-made paintings or drawings. By leveraging techniques from art and illustration (such as abstraction and stylization), one can depict complex 3D worlds more simply and expressively. Students will explore beyond the cutting edge through a combination of reading papers and implementing known (or original) methods through several group projects.
EECS 499. Directed Study.
Computer Science
Instructor(s):
Prerequisites & Distribution: Senior or graduate standing. Prerequisites enforced at registration. Restricted to EECS concentrators. (1-4). (Excl). (BS). (INDEPENDENT). May be repeated for credit for a maximum of 4 credits. CAEN lab access fee required for non-Engineering students.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
Individual study of selected topics in Electrical Engineering and Computer Science. May include experimental investigation or library research.
EECS 545. Machine Learning.
Computer Science
Prerequisites & Distribution: EECS 492. (3). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (3).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: https://coursetools.ummu.umich.edu/2003/fall/eecs/545/001.nsf
Survey of recent research on learning in artificial intelligent systems. Topics include learning based on examples, instructions, analogy, discovery, experimentation, observation, problem solving and explanation. The cognitive aspects of learning will also be studied.
This course will cover statistical approaches to
- Supervised Learning (40% of course)
- Unsupervised Learning (20% of course)
- Reinforcement Learning (40% of course)
EECS 570. Parallel Computer Architecture.
Computer Science
Prerequisites & Distribution: EECS 470. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/~tnm/570/
Course Objectives:
After successfully completing this course, you should:
- understand the fundamental issues of parallel computation (communication, synchronization, naming, etc.);
- understand the various ways in which hardware and software can interact to address these
issues in parallel systems; and
- understand how these interactions affect system cost, performance, and programmability.
Prerequisite:
EECS 470 (Computer Architecture). In particular, you should feel comfortable with caches, virtual
memory, dataflow concepts, and instruction-level parallelism.
Textbook:
Parallel Computer Architecture: A Hardware/Software Approach by Culler & Singh, Morgan
Kaufmann Publishers. ISBN 1-55860-343-3. This book should be available at the usual
bookstores, or from students from previous years (we've used the same text for ~5 years now).
EECS 571. Principles of Real-Time Computing.
Computer Science
Prerequisites & Distribution: EECS 470 and 482. (3). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (3).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
Principles of real-time computing based on high performance, ultra reliability and environmental interface. Architectures, algorithms, operating systems and applications that deal with time as the most important resource. Real-time scheduling, communications and performance evaluation.
EECS 582. Advanced Operating Systems.
Computer Science
Prerequisites & Distribution: EECS 482. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
Course discusses advanced topics and research issues in operating systems. Topics will be drawn from a variety of operating systems areas such as distributed systems and languages, networking, security, and protection, real-time systems, modeling and analysis, etc.
EECS 584. Advanced Database Systems.
Computer Science
Instructor(s):
H. V. Jagadish (jag@umich.edu)
Prerequisites & Distribution: EECS 484. (4). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/~jag/eecs584/
EECS 584 will cover a number of advanced topics in development of database management systems (DBMS) and the application of DBMSs in modern
applications.
Topics to be discussed include advanced concurrency control and recovery techniques, query processing and optimization strategies for relational database
systems, advanced access methods, database resource management, parallel and distributed database systems, extensible database systems, data analysis on large
databases, and application of DBMS techniques in XML-based applications, mobile applications and bioinformatics.
The course material will be drawn from a number of papers in the database literature. We will cover 2-3 papers per week, and all students attending the class are
expected to read the papers before coming to the lecture. Before each class you will be required to hand in a brief summary (~10 sentences total) of the paper that
will be discussed in the class. The summary should not a facsimile of the abstract of the paper, but should be your assessment of the key contributions and
limitations of the paper. The reviews will be graded on a scale of 0-4, with 4 being the highest grade.
Text: There is no formal textbook for this course. The reading list is a collection of papers, which is posted on the course web page.
Reference text: The following two sources will be used often in this course. You don't need to purchase these textbooks as two copies of each of these references
are on reserve at the Media Union Library.
Red Book: Readings in Database Systems (3rd edition) — edited by Michael Stonebraker and Joe Hellerstein, Morgan Kaufmann Publisher, 1998.
Cow Book: Database Management Systems (3rd edition) — by Raghu Ramakrishnan and Johannes Gehrke, McGraw Hill, 2003.
EECS 595 / LING 541. Natural Language Processing.
Computer Science
Section 001 — Meets with SI 661.
Instructor(s):
Dragomir Radev (radev@umich.edu)
Prerequisites & Distribution: Senior standing. (3). (Excl). (BS). May not be repeated for credit. CAEN lab access fee required for non-Engineering students.
Credits: (3).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://tangra.si.umich.edu/~radev//NLP-fall2003/
See Linguistics 541.001.
EECS 598. Special Topics in Electrical Engineering and Computer Science.
Computer Science
Section 002 — Virtual Machine technology and applications. [3 credits].
Prerequisites & Distribution: Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/~pmchen/eecs598/
Virtual machines have
experienced a resurgence in recent years, both in industrial practice and in research applications. They have proven to be a powerful
mechanism to improve security, system management, fault tolerance, mobility, adaptation, and portability. This class will cover different ways
to design virtual machines and how to apply them to improve today's computer systems. Prerequisites for this class are EECS 482 or graduate
standing in CSE. The course will be 3 credits and has been approved as a regular 500-level CSE graduate course.
EECS 598. Special Topics in Electrical Engineering and Computer Science.
Computer Science
Section 003 — Digital Signal Processing and Analysis. [3 credits].
Prerequisites & Distribution: Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: http://www.eecs.umich.edu/~pradhanv/EECS5983_03/EECS5983.html
Review of fourier transforms and series in CT and DT domains, sampling
theorem, and extensions to 2-D case. Signal spaces, orthogonality and projection
theorem. Representation and approximation in signal spaces and applications. Eigen
values and eigen vectors and applications. Singular value decomposition and
applications. Multirate systems, 2-channel filter banks and basis decomposition.
Grading:
1) Homeworks 15% : assigned every alternate week
2) Midterm Examination-1 30%
3) Midterm Examination-2 30%
4) Project 25%
Text: "Mathematical methods and algorithms for signal processing" by T.K. Moon and
W.C. Stirling.
Reference 1: "Two-dimensional signal and image processing" by J.S. Lim
Reference 2: "Multirate systems and filter banks" by P.P. Vaidyanathan
Reference 3: "Linear Algebra and applications" by G. Strang
Reference 4: "Digital Signal Processing" by R.A. Roberts and C.T. Mullis
EECS 598. Special Topics in Electrical Engineering and Computer Science.
Computer Science
Section 004 — Compute-Aided Verification of Digital Systems. [4 credits].
Instructor(s):
Bertacco
Prerequisites & Distribution: Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
In this seminar we will study current research on methods for modeling and rendering non-photorealistic 3D scenes. This approach to computer graphics targets images that resemble hand-made paintings or drawings. By leveraging techniques from art and illustration (such as abstraction and stylization), one can depict complex 3D worlds more simply and expressively. Students will explore beyond the cutting edge through a combination of reading papers and implementing known (or original) methods through several group projects.
EECS 598. Special Topics in Electrical Engineering and Computer Science.
Computer Science
Section 005 — Non-photorealistic Computer Graphics. [3 credits]. Meets with EECS 498.004.
Instructor(s):
Markosian
Prerequisites & Distribution: Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit. May be elected more than once in the same term. CAEN lab access fee required for non-Engineering students.
Credits: (1-4).
Lab Fee: CAEN lab access fee required for non-Engineering students.
Course Homepage: No homepage submitted.
In this seminar we will study current research on methods for modeling and rendering non-photorealistic 3D scenes. This approach to computer graphics targets images that resemble hand-made paintings or drawings. By leveraging techniques from art and illustration (such as abstraction and stylization), one can depict complex 3D worlds more simply and expressively. Students will explore beyond the cutting edge through a combination of reading papers and implementing known (or original) methods through several group projects.

This page was created at 7:21 PM on Tue, Sep 23, 2003.

University of Michigan | College of LS&A | Student Academic Affairs | LS&A Bulletin Index
This page maintained by LS&A Advising Technology (webmaster_saa@umich.edu), G255-E Angell Hall
Copyright © 2003 The Regents of the University of Michigan,
Ann Arbor, MI 48109 USA +1 734 764-1817
Trademarks of the University of Michigan may not be electronically or otherwise altered or separated from this document or used for any non-University purpose.
|