Courses in Computer Science (Division 353)

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. [Cost:2] [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 minimalization, 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. [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 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/EECS 283. Elementary Programming Concepts. Not intended for CS or Computer Engineering concentrators. (4). (NS).

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 and assembly language. [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, C, Prolog, or Modular-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).

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. [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 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 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 0-notation. Complexity. Top-down program development: design, implementation, testing modularity. Several program 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]

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 those who have completed Math. 513. (3). (Excl).

Finite dimensional linear spaces and matrix representations of linear tranformations. Bases, subspaces, determinants, eigenvectors, and canonical forms. Structure of solutions of systems of linear equations. Applications to differential and difference equations. The course provides more depth and content than Math 417. Math 513 is the proper elections for students contemplating research in mathematics.

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. Instruction 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, 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; data base administration, data base design, and data security problems. [Cost:2] [WL:1]

485/EECS 485. Principles of Programming Languages. CS 380. (4). (Excl).

Principles of programming languages including ALGOL-like languages, logic programming and an introduction to program verification and semantics. [.8]

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]

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]

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]

572/EECS 572. Digital Computer Arithmetic. CS 470 or CS 370, and CS 478. (3). (Excl).

Classification and structure of finite number systems and arithmetic including weighted, redundant and signed digit classes of number systems. Theory of modern high-speed computer arithmetic including fast carry logic, multiplier recoding and SRT division. Case studies of general and special purpose arithmetic processors.

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

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

579/EECS 579. Digital System Testing. CS 478. (3). (Excl).

Overview of fault-tolerant computing. Fault sources and models. Testing process. Combinational circuit testing. D-algorithm and APODEM. Sequential circuit testing. Checking experiments. RAM and microprocessor testing. Fault simulation. Design for testability. Testability measures. Self-testing circuits and systems.

583/EECS 583. Compiler Construction. CS 380. (4). (Excl).

A survey of the theory, implementation, and support of modern programming languages. Topics include introduction to mathematical foundations of programming languages, semantics of programming languages, advanced compiler optimization, compilation of modern and special purpose programming languages (e.g., logic programming or functional languages), tools for compiler construction, type systems, program verification, and run-time support.

591/EECS 591. Natural Language Semantics. CS 492. (3). (Excl).

A survey of various theories of meaning, or semantics, which have been developed in artificial intelligence and linguistics, ranging from logical semantics to frame-based theories. Work involves programming projects implementing aspects of these theories.

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]

594/EECS 594. Introduction to Adaptive Systems. CS 476, or permission of instructor. (3). (Excl).

Programs and automata that "learn" by adapting to their environment; programs that utilize genetic algorithms for learning. Samuel strategies, realistic neural networks, connectionist systems, classifier systems, and related models of cognition. Artificial intelligence systems, such as NETL and SOAR, are examined for their impact upon machine learning and cognitive science.

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.


lsa logo

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.