Information for Prospective Students Information for First-Year Students Information for Transfer Students Information for International Students Learning Communities, Study Abroad, Theme Semester Calendars Quick Reference Forms Listings Table of Contents SAA Search Feature Academic Advising, Concentration Advising, How-tos, and Degree Requirements Academic Standards Board, Academic Discipline, Petitions, and Appeals SAA Advisors and Support Staff

01-02 LS&A Bulletin

Courses in Computer Science (Division 353)


Search the Course Database


CMPTRSC 181 / EECS 181. Introduction to Computer Systems.
Intended for students whose goal is computer literacy; not intended for computer science, computer engineering, electrical engineering concentrators. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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 concentrators whose goal is computer literacy.
CMPTRSC 183 / EECS 183. Elementary Programming Concepts.
Not intended for engineering students. Students intending transfer to the College of Engineering should take Engin. 101. CS concentrators who qualify should elect CS 280. Credit is granted for only one course among CS 183 or Engineering 101. I, II, and IIIa. (4). (MSA). (BS). CAEN lab access fee required for non-Engineering students.
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, simulation, etc.). Good program design, structure and style are emphasized. Testing and debugging.
CMPTRSC 198 / EECS 198. Special Topics in Computer Science.
(1). (Excl). CAEN lab access fee required for non-Engineering students.
Topics of current interest in Computer Science. Hands-on experience.
CMPTRSC 203(303) / EECS 203. Discrete Structures.
Math. 115. I and II. (4). (MSA). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 270 / EECS 270. Introduction to Logic Design.
Engineering 101 or CS 183. I, II, and IIIa. (4). (MSA). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 280 / EECS 280. Programming and Introductory Data Structures.
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 Engineering 101 or CS 183 before electing CS 280. No credit granted to those who have completed or are enrolled in CS 283. I and II. (4). (MSA). (BS). CAEN lab access fee required for non-Engineering students.
Techniques and 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.
CMPTRSC 281(380) / EECS 281. Data Structures and Algorithms.
CS 280 and 203. I and II. (4). (NS). (BS). CAEN lab access fee required for non-Engineering students.
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; basic graph algorithms; introduction to greedy algorithms and divide and conquer strategy.
CMPTRSC 283 / EECS 283. Programming for Science and Engineering.
Engin. 101 or CS 183. This course is not intended for computer science concentrators. No credit granted to those who have completed or are enrolled in CS 280. II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Programming concepts with numeric applications for mathematics, the sciences, and engineering. Object-oriented programming, abstract data types, and standard class libraries with numeric and non-numeric applications. Elementary data structures, linked lists, and dynamic allocation. Searching and sorting methods.
CMPTRSC 284 / EECS 284. Introduction to a Programming Language or System.
Some programming knowledge is required. No credit granted for the C minicourse to those students who have completed CS 280. I and II. (1). (Excl). (BS). CAEN lab access fee required for non-Engineering students. May be repeated for credit.
A minicourse covering a complex computer system or programming language. Specific languages or systems to be offered are announced in advance. Each section of the course covers a different language.
CMPTRSC 285 / EECS 285. A Programming Language or Computer System.
Some programming knowledge required. (2). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
A course covering a complex computer system or programming language. Programming problems are assigned. Specific languages or systems offered are announced in advance.
CMPTRSC 370 / EECS 370. Introduction to Computer Organization.
CS 280 or CS 283. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Basic concepts of computer organization and hardware. Instructions executed by a processor and how to use these instruction in simple assembly-language programs. Stored program concept. Datapath and control for multiple implementations of a processor. Performance evaluation, pipelining, caches, virtual memory, imput/output.
CMPTRSC 373 / EECS 373. Design of Microprocessor Based Systems.
CS 370 and 270; junior standing. I and II. (4). (Excl). CAEN lab access fee required for non-Engineering students.
Principles of hardware and software microcomputer interfacing; digital logic design and implementation. Experiments with specially designed laboratory facilities. Introduction to digital development equipment and logic analyzers. Assembly language programming.
CMPTRSC 376(476) / EECS 376. Foundations of Computer Science.
CS 280 or 203. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
An introduction to computation theory: finite automata, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions, and computational complexity.
CMPTRSC 398 / EECS 398. Special Topics.
Permission of instructor. (1-4). (Excl). CAEN lab access fee required for non-Engineering students.
Topics of current interest selected by the faculty.
CMPTRSC 442 / EECS 442. Computer Vision.
CS 281. I. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Computational methods for the recovery, representation, and application of visual information. Topics from image formation, binary images, digital geometry, similarity and dissimilarity detection, matching, curve and surface fitting, constraint propagation and relaxation labeling, stereo, shading texture, object representation and recognition, dynamic scene analysis, and knowledge based techniques. Hardware, software techniques.
CMPTRSC 470 / EECS 470. Computer Architecture.
CS 370. I, II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 477 / EECS 477. Introduction to Algorithms.
CS 281. I. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 478 / EECS 478. Logic Circuit Synthesis and Optimization.
CS 270 and 203, and senior or graduate standing. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 481 / EECS 481. Software Engineering.
CS 281. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 482 / EECS 482. Introduction to Operating Systems.
CS 370 and 281. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Operating system functions and implementations: multitasking; 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 multitask environment, with file systems, and with memory management.
CMPTRSC 483 / EECS 483. Compiler Construction.
CS 281 and 376. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 484 / EECS 484 / IOE 484. Database Management Systems.
CS 281. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Concepts and methods for the design, creation, query and management of large enterprise databases. Functions and characteristics of the leading database management systems. Query languages such as SQL, forms, embedded SQL, and application development tools. Database design, integrity, normalization, access methods, query optimization, transaction management and concurrency control and recovery.
CMPTRSC 486 / EECS 486. Object-Oriented Software Development.
CS 281. II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Object-oriented programming concepts such as data and program abstraction, encapsulation, polymorphism, single and multiple inheritance, and reusable objects. Techniques for object-oriented system decomposition and class design. Study and use of class libraries and application frameworks. Programming objects in an object-oriented language currently standard in industry.
CMPTRSC 487 / EECS 487. Interactive Computer Graphics.
CS 281 and senior standing. I and II. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 489 / EECS 489. Computer Networks.
CS 482. II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Protocols and architectures of computer networks. Topics include client-server computing, socket programming, naming and addressing, media access protocols, routing and transport protocols, flow and congestion control, and other application-specific protocols. Emphasis is placed on understanding protocol design principles. Programming problems to explore design choices and actual implementation issues assigned.
CMPTRSC 492 / EECS 492. Introduction to Artificial Intelligence.
CS 281. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 493 / EECS 493. User Interface Development.
CS 281. Fluency in a standard object-oriented programming language is assumed. I. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Concepts and techniques for designing computer system user interfaces to be easy to learn and use, with an introduction to their implementation. Task analysis, design of functionality, display and interaction design, and usability evaluation. Interface programming using an object-oriented application framework.
CMPTRSC 494 / EECS 494. Computer Game Design and Development.
CS 281. I. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Concepts and methods for the design and development of computer games. Topics include: history of games, 2D graphics and animation, sprites, 3D animation, binary space partition trees, software engineering, game design, interactive fiction, user interfaces, artificial intelligence, game SDK's, networking, multi-player games, game development environments, commercialization of software.
CMPTRSC 496 / EECS 496. Capstone Design Course in Computing.
Senior standing, and concurrent enrollment in Technical Communication 496 and one of the approved 400-level team project courses in computing. I and II. (2). (Excl). CAEN lab access fee required for non-Engineering students.
Capstone design course for seniors in computer science or computer engineering. Design principles for multidisciplinary team projects, team strategies, entrepreneurial skills, ethics, social and environmental awareness.
CMPTRSC 497 / EECS 497. EECS Major Design Project.
Senior standing. I and II. (4). (Excl). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 499 / EECS 499. Directed Study.
Senior standing in EECS. (1-4). (Excl). CAEN lab access fee required for non-Engineering students. (INDEPENDENT). May be repeated for credit.
Individual study of selected topics in Electrical Engineering and Computer Science. May include experimental investigation or library research.
CMPTRSC 506 / EECS 506. Computing System Evaluation.
CS 183 or 280, and CS 370 and EECS 501. II, odd years. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Theory and application of analytic methods for evaluating the performance and 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.
CMPTRSC 542 / EECS 542. Vision Processing.
CS 442. I in odd years. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 545 / EECS 545. Machine Learning.
CS 492. II, odd years. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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 are also studied.
CMPTRSC 570 / EECS 570. Parallel Computer Architecture.
CS 470. I or II. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 571 / EECS 571. Principles of Real-Time Computing.
CS 470 and CS 482. I. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 573 / EECS 573. Microarchitecture.
CS 470. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Graduate-level introduction to the foundations of high performance microprocessor implementation. Problems involving instruction supply, data supply, and instruction processing. Compile-time vs. run-time tradeoffs. Aggressive branch prediction. Wide-issue processors, in-order vs. out-of-order execution, instruction retirement. Case studies from current microprocessors.
CMPTRSC 575 / EECS 575. Theoretical Computer Science II.
CS 574. II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Advanced computational complexity, intractability, classical probability and information theory, algorithmic information theory, and special topics such as computational algebra, concurrency, semantics, and verification.
CMPTRSC 577 / EECS 577. Reliable Computing Systems.
CS 280 and 478. I. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 581 / EECS 581. Software Engineering Tools.
CS 481 or equivalent programming experience. II. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
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.
CMPTRSC 582 / EECS 582. Advanced Operating Systems.
CS 482. II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Course discusses advanced topics and research issues in operating systems. Topics are 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.
CMPTRSC 583 / EECS 583. Programming Languages.
CS 376 and 483. I, in alternate years. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Various programming languages are compared to understand general principles. To do this systematically and ignore inessential details, a formal specification method is introduced. Current programming paradigms are examined; their potentials and compatibility are assessed. e.g., the question why functional languages become imperative when the "go public" is discussed.
CMPTRSC 584 / EECS 584. Advanced Database Systems.
CS 484. I. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Survey of advanced topics in database systems. Distributed databases, query processing, transaction processing. Effects of data models: object-oriented and deductive databases; architectures: main-memory and parallel repositories; distributed organizations: client-server and heterogeneous systems. Basic data management for emerging areas: Internet applications, OLAP, data mining. Case studies of existing systems. Group projects.
CMPTRSC 585 / EECS 585. Web Technologies.
CS 482 or 485. I, in alternate years. (3). (Excl).
Web-related client-server protocols and performance issues; web proxies; web caching and prefetching; dynamic web content; server-side web applications support; scalable web servers; security topics such as user authentification, secure socket layer and secure HTTP; electronic payment systems; web-based virtual communities; information discovery.
CMPTRSC 589 / EECS 589. Advanced Computer Networks.
CS 489. II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Advanced topics and research issues in computer networks. Topics include routing protocols, multicast delivery, congestion control, quality of service support, network security, pricing and accounting, and wireless access and mobile networking. Emphasis is placed on performance trade-offs in protocol and architecture designs. Readings assigned from research publications. A course project allows in-depth exploration of topics of interest.
CMPTRSC 592 / EECS 592. Advanced Artificial Intelligence.
CS 492. II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
Advanced topics in artificial intelligence. Issues in knowledge representation, knowledge-based systems, problem solving, planning and other topics are discussed. Students work on several projects.
CMPTRSC 595 / EECS 595 / LING 541. Natural Language Processing.
Senior standing. I. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
A survey of syntactic 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 is normally required.
CMPTRSC 598 / EECS 598. Special Topics in Electrical Engineering and Computer Science.
Permission of instructor or advisor. I, II, III, IIIa, and IIIb. (1-4). (Excl). (BS). CAEN lab access fee required for non-Engineering students. May be repeated for credit.
Topics of current interest in electrical engineering and computer science. Lectures, seminar, or laboratory.


Graduate Course Listings for CMPTRSC.


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


Queried: 10:29 AM EST on Fri, Apr 13, 2001

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

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