**181/EECS 181. Introduction to Computer Systems. *** Credit
is granted for only one course among CS 181, Engin. 103, and Engin.
104. (4). (NS). *

The course introduces computer literacy for students with little
or no background in computer systems. Focuses on software, hardware, and social impact of computers. Elementary programming concepts, software packages and applications, word processing, data communications, information management, input-output, data entry, computer hardware
components and storage devices, microcomputers, social implications
and ethics in computing. Programming assignments using a personal
computer. Computer Usage: Sign on central conferencing system
(at least three times per week for entire term). Homework assignments
in use of central system (creating, editing, retrieving, transmitting, printing files), word processing (MacWrite), spreadsheeting (Excel), and programming (Pascal). Two major projects: first on MacWrite, MacDraw, second on Excel. Course pack (tutorial reading material, and selected news articles on social impact). Cost:2 WL:1

**183(283)/EECS 183. Elementary Programming Concepts.
*** (4). (NS). *

This is an introductory course for students who do not necessarily
plan to concentrate in engineering or computer science. It is
designed to give them a good fundamental knowledge of programming
in a high-level language. Introduction to a high-level programming
language, top-down analysis, and structured programming. Basic
searching and sorting techniques. No previous experience in computing
or programming is assumed. Students will write and debug several
computer programs. Computer Usage: five or six assignments are
given, each requiring the student to write and debug a program
on a mainframe computer. Textbook: * Pascal on the MacIntosh:
A Graphical Approach,, *D.A. Niguidula and A. van Dam; Addison
Wesley. (WL: 1)

**216/EECS 216. Circuit Analysis. *** Prior
or concurrent enrollment in Math. 216. (4). (Excl). *

Resistive circuit elements; mesh and node analysis, network theorems;
network graphs and independence; energy storage elements; one-
and two-time-constant circuits; phasors and a.c. steady-state
analysis; complex frequency and network functions; frequency response
and resonance. Lecture and laboratory.

**270/EECS 270. Introduction to Logic Design. *** (4).
(Excl). *

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.

**280/EECS 280. Programming and Introductory Data Structures.
*** Math. 115 and (CS 183 or 284 or Engineering 104, or by placement test in PASCAL). (4). (NS). *

The goals of this course include concepts of information representation, algorithms, processes and processors, syntax, semantics, and grammar.
Students learn the basics of programming style, debugging, error
control, computational correctness, and program verification.
Prerequisites include advanced algebra and first term calculus, and computer literacy (knowledge of Pascal). Topics include 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. Cost:2 WL:1

**283(383)/EECS 283. Programming and Computer Systems.
*** CS 183 or Engin. 103 or 104. Not intended for CS
or Computer Engineering concentrators. (4). (NS). *

This course is an extension of CS 183. A firm knowledge of Pascal
which need not include dynamic data structures, and a knowledge
of the MTS operating system are prerequisite. Advanced topics
in PASCAL, including the implementation of linked lists, trees, and hashing. Searching and sorting techniques. Selected topics
in programming language theory. Students will write several programs
in Pascal. Textbook: Robert L. Kruse, * Data Structures and Programming Design, * 2nd ed., Prentice Hall, Inc., 1986. Computer
Usage: four or five homework assignments requiring use of stored
programs on an IBM mainframe computer are required. Cost:2 WL:1

**284/EECS 284. Introduction to a Programming Language
or System. *** (1). (Excl).
SECTION 002: PASCAL. *This course is for students who know
how to program in some language other than Pascal. It is a 14
lecture one-credit mini-course which will focus on preparing students
for CS 280, the first required programming course for Computer
Science concentrators, but is suitable for anyone wanting to learn
to program in Pascal. Simple data types (integer, real, char, boolean). Arithmetic and relational operators. There are two medium-sized
programming assignments and a final exam. Students are free to
use any Pascal compiler they wish. Textbook:

**300/EECS 300/Math. 300.
Mathematical Methods in System Analysis. *** Math. 216
or 316 or the equivalent. No credit granted to those who have
completed or are enrolled in Math. 448. (3). (Excl). *

An introductory course in operational mathematics as embodied
in Laplace Transforms, Fourier Series, Fourier Transforms and Complex Variables, with emphasis on their application to the solution
of systems of linear differential equations. The response of linear
systems to step, impulse, and sinusoidal forcing functions. Cost:NA
WL:1

**303/EECS 303. Algebraic Foundations of Computer Engineering.
*** Math. 115. (4). (Excl). *

Fundamental concepts of algebra; partially ordered sets, lattices, Boolean algebras, semi-groups, rings, polynomial rings. Graphical
representation of algebraic systems; graphs, directed graphs.
Application of the concepts to various areas of computer science
and engineering. WL:1 Cost:2

**370/EECS 370. Introduction to Computer Organization.
*** CS 270 and CS 280. (4). (Excl). *

Computer organization will be presented as a hierarchy of virtual
machines representing the different abstractions from which computers
can be viewed. These include the logic level, microprogramming
level, and assembly language level. Lab experiments will explore the design of a micro-programmed computer. Lecture and laboratory.
Cost:3 WL:1

**380/EECS 380. Data Structures and Algorithms. *** CS
280 and CS 303. (4). (NS). *

Abstract data types and object-oriented programming. Recurrence
relations and recursions. Advanced data structures: sparse matrices, generalized lists, strings. Tree-searching algorithms, graph algorithms, general searching and sorting. Dynamic storage management. Analysis
of algorithms and 0-notation. Complexity. Top-down program development:
design, implementation testing, modularity. Several programming
assignments. Cost:4 WL:1

**381/EECS 381. Systems Programming. *** CS
380. (4). (NS). *

Design and implementation of basic systems programming tools and infrastructure. Topics covered include assembly language programming, assemblers, macro processors, linkers and loaders, and I/0 drivers, * etc., *and programming projects involve the design and implementation of such systems. Students also write some programs
in assembly language. Three one-hour lectures and a one-hour discussion
per week.

**400/EECS 400/Math. 419. Linear Spaces and Matrix Theory.
*** Four terms of college mathematics beyond Math. 110.
No credit granted to those who have completed or are enrolled
in Math. 417 or 513. (3). (Excl). *

See Mathematics 419.

**470/EECS 470. Computer Architecture. *** CS
370. (4). (Excl). *

Basic concepts of computer architecture and organization. Computer
evolution. Design methodology. Performance evaluation. Elementary
queueing models. CPU architecture. Introductions sets. ALU design.
Hardwired and microprogrammed control. Nanoprogramming. Memory
hierarchies. Virtual memory. Cache design. Input-output architectures.
Interrupts and DMA. I/O processors. Parallel processing. Pipelined
processors. Multiprocessors. Cost:3 WL:1

**473/EECS 473. Advanced Digital System Design. *** EECS
373 or permission of instructor. (3). (Excl). *

Introduces advanced digital system design concepts, such as timing
analysis, reliability, and testing. These concepts are then applied
to a term-long design project of the student's choice. The result
of this project will be a highly testable, highly reliable digital
system.

**476/EECS 476. Foundations of Computer Science. *** CS
280 and 303 or equivalent. (4). (Excl). *

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

**478/EECS 478. Switching and Sequential Systems. *** CS
270 and CS 303, and senior or graduate standing. (3). (Excl). *

An introduction to the theory of switching networks and sequential
systems. Switching functions and realizations, threshold logic, fault detection, connectedness and distinguishability, equivalence
and minimality, state identification, system decomposition. Cost:3
WL:1

**481/EECS 481. Software Engineering. *** CS
380. (4). (Excl). *

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. Cost:3 WL:1

**482/EECS 482. Introduction to Operating Systems. *** CS
370 and 381. (4). (Excl). *

Operating system functions and implementations: multitasking;
concurrency and synchronization; deadlock; scheduling; resource
allocation; real and virtual memory management; input/output;
file systems. Students write several substantial programs dealing
with concurrency and synchronization in a multitask environment.
Cost:2 WL:1

**483/EECS 483. Compiler Construction. *** CS
370 and 381. (4). (Excl). *

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. Cost:2 WL:1

**484/EECS 484/IOE 484. Database Management Systems.
*** CS 380 or IOE 4 (3). (Excl). *

Concepts and methods in the definition and management of large
integrated data bases for organizational information systems.
Functions and objectives of existing file and data management
will be considered and methods of analyzing proposals for new
data management software will be studied; database administration, database design, and data security problems.

**486/EECS 486. Object-Based Software Development***
CS 380. (3). (Excl). *

Object-based programming concepts such as data and program abstraction, decomposition of large systems into reusable objects and inheritence.
Programming projects are done in an object-based language such
as Ada. Comparative studies are made of languages such as C++, Objective C, Eiffel, and Smalltalk that support object-based programming.

**487/EECS 487/IOE 478. Interactive Computer Graphics.
*** CS 380 or IOE 373, and senior standing. (3). (Excl). *

Graphics devices and fundamentals of operation. Two dimensional
and three dimensional transformations. Interactive graphical techniques
and applications. Three dimensional graphics, perspective transformation, hidden line elimination. Data structures and languages for graphics.
Interactive graphical programming. Cost:2 WL:1

**489/EECS 489. Computer Networks. *** CS 482.
(3). (Excl). *

Hardware and software architectures employed in building modern
computer networks. Emphasis is placed on architectural and design
considerations over actual implementation issues. Tradeoffs in
network architectures and in understanding what choices are available.
Software problems assigned. Cost:3 WL:1

**492/EECS 492. Introduction to Artificial Intelligence.
*** CS 303 and CS 380. (4). (Excl). *

Basic artificial intelligence methods using LISP. Topics covered
include search, rule-based systems, logic, constraint satisfaction, and knowledge representation. Cost:2 WL:1

**500. Special Study. *** Graduate or undergraduate
concentration in Computer Science; and permission of instructor.
(1-6). (Excl). (INDEPENDENT). May be repeated for credit. *

Students are introduced to the frontiers of System Science research.
Sections 001, 002, and 003 are devoted, respectively, to Communications, Control, and Signal Processing. The tutorials are delivered by
leaders of the respective research fields, invited from academia
and industry. The presentations are self-contained and accessible
to all graduate students in Systems Science. Cost:NA WL:1

**506/EECS 506. Computing System Evaluation. *** CS
183 or 280, and CS 370 and EECS 501. (3). (Excl). *

Theory and application of analytic methods for evaluating the
performance of reliability of computing systems. Measures of performance, reliability, and performability. Reliability evaluation: classification
and representation of faults, stochastic process models, coherent
systems. Performance evaluation: Markovian queueing models, networks
of queues. Unified performance-reliability evaluation. Cost:NA
WL:1

**542/EECS 542. Vision Processing. *** CS 442.
(3). (Excl). *

Details of image formation theory, including the consideration
of dynamic image sequences. The theoretical frameworks for edge
detection, feature extraction, and surface description are presented.
The relationship between image formation and object features is
examined in detail. Programming required. Cost:NA WL:1

**547/EECS 547. Cognitive Architecture. *** CS
492. (3). (Excl). *

Survey of architectures of symbolic systems in artificial intelligence.
Architectures such as blackboards, production systems, logic systems, reflective systems, discovery systems and learning systems. Also
integrated cognitive architectures such as ACT*, SOAR, MRS, and EURISKO. Cost:NA WL:1

**570/EECS 570. Parallel Computer Architecture. *** CS
470. (3). (Excl). *

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. Cost:3 WL:1

**574/EECS 574. Theoretical Computer Science I. *** CS
476. (4). (Excl). *

Formal grammars, recursive functions, logic, complexity theory.
Cost:2 WL:1

**575/EECS 575. Theoretical Computer Science II. *** CS
574. (4). (Excl). *

Advanced computational complexity, intractability, classical probability
and information theory, algorithmic information theory, and special
topics such as computational algebra, concurrency, semantics, and verification. Cost:1 WL:1

**577/EECS 577. Reliable Computing Systems. *** CS
280 and 478. (3). (Excl). *

An introduction to models and methods used in the analysis and design of reliable hardware systems, software systems and computing
systems. Aspects of reliability considered include fault tolerance, fault detection and diagnosis, reconfiguration, design verification
and testing, and reliability evaluation. Cost:NA WL:1

**581/EECS 581. Software Engineering Tools. *** CS
481 or equivalent programming experience. (3). (Excl). *

Fundamental areas of software engineering including life cycle
paradigms, metrics, and tools. Information hiding architecture, modular languages, design methodologies, incremental programming, and very high level languages. Cost:1 WL:1

**582/EECS 582. Advanced Operating Systems. *** CS
482. (4). (Excl). *

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, modelling and analysis, * etc. * Cost:NA WL:1

**584/EECS 584. Distributed Database Concepts. *** CS
484. (3). (Excl). *

Database design methodologies, distributed database technology
and developments in heterogeneous systems. Distributed database
design and implementation issues such as transaction management, concurrency control, security, and query optimization. Database
design includes semantic data modeling, transformation to SQL, normalization theory, physical design and data allocation strategies.
Cost:NA WL:1

**586/EECS 586. Design and Analysis of Algorithms. *** CS
380. (3). (Excl). *

Design of algorithms for nonnumeric problems involving sorting, searching, scheduling, graph theory, and geometry. Design techniques
such as approximation, branch-and-bound, divide-and-conquer, dynamic
programming, greed, and randomization applied to polynomial and NP-hard problems. Analysis of time and space utilization. Cost:5
WL:1

**588/EECS 588/IOE 578/ME 551. Geometric Modeling. *** CS
487 or ME 454 or permission of instructor. (3). (Excl). *

Individual or group study of topics in geometric modeling and computer graphics. Geometric data structures for curves, surfaces, and volume parameterization, and topological data structures for
vertices, edges, faces, and bodies. Algorithms for set operations, Euler operations and deformations. Design and experimentation
with geometric modelling facilities. Cost:2 WL:1

**592/EECS 592. Advanced Artificial Intelligence. *** CS
492, or permission of instructor. (4). (Excl). *

Advanced topics in artificial intelligence. Issues in knowledge
representation, knowledge based systems, problem solving, planning
and other topics will be discussed. Students work on several projects.
Cost:1 WL:1

**595/EECS 595/Ling. 541.
Natural Language Processing. *** Senior standing. (3).
(Excl). *

A survey of synctactic and semantic theories of natural language
processing, including unification-based grammars, methods of parsing, and a wide range of semantic theories from artificial intelligence
as well as from philosophy of language. Programming is optional, though a project will normally be required. Cost:NA WL:1

**598/EECS 598. Special Topics in Electrical Engineering
and Computer Science. *** Permission of instructor or
advisor. (1-4). (Excl). May be repeated for credit. *

Topics of current interest in electrical engineering and computer
science. Lectures, seminar or laboratory.

University of Michigan | College of LS&A | Student Academic Affairs | LS&A Bulletin Index

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

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.