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

Introduces students to computers. 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, and ethics in computing. Programming assignments using a personal computer. Term paper required. A student cannot receive credit for both EECS 181 and Eng. 103. [Cost:2] [WL:1]

**184/EECS 184. Introduction to Pascal Programming. *** No
credit granted to students who have credit for Engin. 104. (1).
(Excl). *

A four-week mini course covering the fundamentals of the PASCAL programming language including structured programming concepts, string manipulation, matrices, procedures, and functions; programming problems will be assigned. [Cost:2] [WL:1]

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

**280/EECS 280. Programming and Introductory Data Structures.
*** Math. 115 and familiarity with programming. Students
with credit for CS 283 can only elect CS 280 for 2 credits. (4).
(NS). *

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 instantation, 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/EECS 283. Elementary Programming Concepts. *** Not
intended for CS or Computer Engineering concentrators. (4). (NS). *

Introduction to a high level programming language, top-down analysis, and structured programming. Basic searching and sorting techniques. No previous experience in computer or programming is assumed. Students will write and debug several computer programs. Not intended for computer science or computer engineering majors. [Cost:2] [WL:1]

**284/EECS 284. Advanced Programming Language or System.
*** CS 184 or equivalent. (1). (Excl). May be repeated
for a total of 3 credits. *

A four-week mini course covering an advanced programming language such as LISP, SNOBOL, C, PROLOG, or Modula-2; or a system such as UNIX. Programming problems will be assigned. Specific languages or systems to be offered will be announced in advance. [Cost:3] [WL:1]

**300/EECS 300/Math. 300. Mathematical Models in System
Analysis. *** Math. 216. A student cannot receive credit
for both CS 300 and Math. 448. (3). (Excl). *

See Math. 300.

**303/EECS 303. Algebraic Foundations of Computer Engineering.
*** Math. 115. (3). (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 these concepts to various areas of computer science and engineering. [Cost:3] [WL:1]

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

Computer organization will be presented as a hierarchy of virtual machines representing the different abstraction 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 microprogrammed computer. [Cost:3] [WL:1]

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

Abstract data types. 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 O-notation. Complexity. Top-down program development: design, implementation testing modularity. Several programming assignments. [Cost:4] [WL:1]

**381/EECS 381. Assembly Language Programming. *** CS
280. (3). (NS). *

Machine structure and organization, data representation, memory addressing methods, use of registers, bit manipulation, integer and floating point arithmetic, program linking and subroutines, macro-instructions, program debugging, assemblers and loaders. Students write several programs in IBM 370 Assembler language. Three one-hour lectures and a one-hour discussion per week. [Cost:3] [WL:1]

**383/EECS 383. Programming and Computer Systems. *** CS
283 or equivalent. (4). (NS). *

Advanced topics in PASCAL, including the implementation of linked lists, trees, and hashing. Searching and sorting techniques. Assembly language and computer architecture. Selected topics in programming language theory. Students will write several programs in PASCAL and assembly language. [Cost:3] [WL:1]

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

See Math. 419.

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

Basic concepts of computer architecture and organization. Computer evolution. Design methodology. Performance evaluation. Elementary queueing models. CPU architecture. Introduction 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]

**476/EECS 476. Foundations of Computer Science. *** CS
280, and either CS 303 or Math. 312 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, and 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 in usually required. [Cost:3] [WL:1]

**482/EECS 482. Introduction to Operating Systems. *** CS
370, CS 380, and CS 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, CS 380, and CS 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 473. (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 systems will be considered and methods of analyzing proposals for new data management software will be studied. Additional topics will include data base administration, data base design, and data security problems. [Cost:2] [WL:1]

**486/EECS 486. Ada Based Software Environment*** CS 380. (3). (Excl). *

Software design concepts such as data and program abstraction, package based decomposition of large systems, real-time task control, and Ada based programming environment. The Ada language will be used. The student is required to complete one medium size and several small size programming projects. [Cost:3] [WL:1]

**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]

**543/EECS 543. Knowledge-Based Computer Vision. *** CS
442 and CS 492. (3). (Excl). *

Application of topics in Al to Computer Vision. Central issues are introduced through a critical examination of working image-interpretation systems. Topics: representation of geometric structure, and non-geometric characteristics relation of image features to object structure, reasoning, dealing with uncertainty, and dynamic interpretation. Programming required. [Cost:1] [WL:1]

**545/EECS 545. Machine Learning. *** CS 492.
(3). (Excl). *

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

**546/EECS 546. Cognitive Theory and Artificial Intelligence.
*** CS 492. (3). (Excl). *

Survey of scientific theory and results from cognitive psychology that are relevant to research in Artificial Intelligence. Topics include perceptual information processing, attention, short and long term memory systems, memory organization and the representation of knowledge, mechanisms of learning, natural language processing, problem solving, mental models and expertise. [WL:1]

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

Pipelining and operation overlapping, SIMD and MIMD architecture, numeric and non-numeric applications, VLSI, WSI architecture 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]

**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:2] [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, modeling and analysis, * etc. * [Cost:1] [WL:1]

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

Database design methodologies, distributed database systems, and recent developments in knowledge-based and object-based systems. Distributed transaction management, concurrency control, location transparency, and query optimization. Semantic data modeling, normalization, fragmentation and data allocation. Students design and implement a distributed database application. A term paper is required. [Cost:2] [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:6] [WL:1]

**588/EECS 588/IOE 578. Geometric Modeling. *** CS
487. (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 modeling facilities. [Cost:4] [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 will work on several projects. [Cost:1] [WL:1]

**595/EECS 595/Ling. 541. Theory of Natural Language
Structure. *** CS 492. (3). (Excl). *

See Linguistics 541. (Rounds)

**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. [WL:1]

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.