[Site Map]
|
Courses in Computer Science (Division 353)
- Comp. Sci. 100/EECS 100. Introduction to Computing Systems.
- Intended for concentrators in computer science, computer engineering, and electrical engineering. (4). (MSA). (BS). CAEN lab access fee required for non-Engineering students.
- How a computer works, from the machine level to high level programming. circuits, instructions, memory, data. Assembly langauge. Binary arithmetic, data types, data structures. Translation of high level languages. The C programming language: data structures, control iteration, recursion. Basic algorithm analysis.
- Comp. Sci. 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. Credit is granted for only one course among CS 181, Engin. 103, and Engin. 104. 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.
- Comp. Sci. 183/EECS 183. Elementary Programming Concepts.
- This course is not intended for computer science, electrical engineering, or computer engineering concentrators. Credit is granted for only one course among CS 183, Engin. 103, and Engin. 104. 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.
- Comp. Sci. 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.
- Comp. Sci. 210/EECS 210. Electrical Engineering I.
- Math. 116. Credit is not granted for both CS 210 and EECS 314. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- Introductory electrical engineering topics: audio signals and their processing; basics of electricity; elementary circuit design and analysis. Frequency content of signals, Fourier series, filtering. Analysis of resistive circuits. Steady-state response of circuits of resistors, capacitors, inductors and operational amplifiers to sinusoidal signals (frequency response). Laboratory experience with electrical signals and circuits.
- Comp. Sci. 211/EECS 211. Electrical Engineering II.
- CS 210, and prior or concurrent enrollment in Math. 216. Credit is not granted for both CS 211 and EECS 313. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- Introductory electrical engineering topics, continued: basic circuit analysis; elementary transistor and diode circuits. Transient analysis of circuits. Introduction to diode and transistor circuits. Amplifiers, limiters, filters and logic circuits. Laboratory experience with electrical signals and circuits.
- Comp. Sci. 270/EECS 270. Introduction to Logic Design.
- CS 100. 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.
- Comp. Sci. 280/EECS 280. Programming and Introductory Data Structures.
- Math. 115 and CS 100. Two credits granted to those who have completed 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.
- Comp. Sci. 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.
- Covers the fundamentals of a programming language such as C, Pascal, LISP, SNOBOL, Prolog, or Modula-2; or a system such as UNIX. Programming problems assigned. Specific languages or systems to be offered are announced in advance. Each section of the course covers a different language.
- Comp. Sci. 285/EECS 285. A Programming Language or Computer System.
- (2). (Excl). 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.
- Comp. Sci. 303/EECS 303. 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.
- Comp. Sci. 370/EECS 370. Introduction to Computer Organization.
- CS 270 and CS 280. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- Computer organization is 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 explore the design of a microprogrammed computer.
- Comp. Sci. 380/EECS 380. Data Structures and Algorithms.
- CS 280 and CS 303. I and II. (4). (NS). (BS). CAEN lab access fee required for non-Engineering students.
- 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 and O-notation. Complexity. Top-down program development: design, implementation, testing, modularity. Several programming assignments.
- Comp. Sci. 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.
- Comp. Sci. 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. 217 or Math. 513. One credit granted to those who have completed Math. 417. I and II. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- Finite dimensional linear spaces and matrix representations of linear transformations. 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 election for students contemplating research in mathematics.
- Comp. Sci. 442/EECS 442. Computer Vision.
- CS 380. 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.
- Comp. Sci. 470/EECS 470. Computer Architecture.
- CS 370. I or 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.
- Comp. Sci. 476/EECS 476. Foundations of Computer Science.
- CS 280 and 303. 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.
- Comp. Sci. 477/EECS 477. Introduction to Algorithms.
- CS 380. (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.
- Comp. Sci. 478/EECS 478. Logic Circuit Synthesis and Optimization.
- CS 270 and CS 303, 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 of testing.
- Comp. Sci. 481/EECS 481. Software Engineering.
- CS 380. 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.
- Comp. Sci. 482/EECS 482. Introduction to Operating Systems.
- CS 370 and 380. I and II. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- 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.
- Comp. Sci. 483/EECS 483. Compiler Construction.
- CS 380 and 476. 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.
- Comp. Sci. 484/EECS 484/IOE 484. Database Management Systems.
- CS 380 or IOE 373. 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, normalization, access methods, query optimization, transaction management and concurrency control, recovery, and integrity.
- Comp. Sci. 486/EECS 486. Object-Oriented Software Development.
- CS 380. 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.
- Comp. Sci. 487/EECS 487. Interactive Computer Graphics.
- CS 380 and senior standing. I and II. (4; 3 in the half-term). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- 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.
- Comp. Sci. 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.
- Comp. Sci. 492/EECS 492. Introduction to Artificial Intelligence.
- CS 380. 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.
- Comp. Sci. 493/EECS 493. User Interface Design and Analysis.
- CS 481. I. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- Current theory and design techniques concerning how user interfaces for computer systems should be designed to be easy to learn and use. Focus on cognitive factors, such as the amount of learning required, and the information-processing load imposed on the user, rather than ergonomic factors.
- Comp. Sci. 494/EECS 494. Computer Game Design and Development.
- CS 380. (4). (Excl). 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.
- Comp. Sci. 499(500)/EECS 499. Directed Study.
- Senior standing in EECS. (1-4). (Excl). CAEN lab access fee required for non-Engineering students. (INDEPENDENT).
- Individual study of selected topics in Electrical Engineering and Computer Science. May include experimental investigation or library research.
- Comp. Sci. 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.
- Comp. Sci. 542/EECS 542. Vision Processing.
- CS 442. II 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.
- Comp. Sci. 543/EECS 543. Knowledge-Based Systems.
- CS 492 and permission of instructor. II in even years. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- Techniques and principles for developing application software based on explicit representation and manipulation of domain knowledge, as applied to computer vision, robotic control, design and manufacturing, diagnostics, autonomous systems, etc. Topics include: identifying and representing knowledge, integrating knowledge-based behavior into complex systems, reasoning, and handling uncertainty and unpredictability.
- Comp. Sci. 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.
- Comp. Sci. 547/EECS 547. Cognitive Architecture.
- CS 492. II. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- 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.
- Comp. Sci. 570/EECS 570. Parallel Computer Architecture.
- CS 470. 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.
- Comp. Sci. 571/EECS 571. Principles of Real-Time Computing.
- CS 470 and CS 482. II. (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.
- Comp. Sci. 574/EECS 574. Theoretical Computer Science I.
- CS 476. I. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- Formal grammars, recursive functions, logic, complexity theory.
- Comp. Sci. 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.
- Comp. Sci. 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.
- Comp. Sci. 579/EECS 579. Digital System Testing.
- CS 478. II. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- Overview of fault-tolerant computing. Fault sources and models. Testing process. Combinational circuit testing. D-Algorithm and PODEM. Sequential circuit testing. Checking experiments. RAM and microprocessor testing. Fault simulation. Design for testability. Testability measures. Self-testing circuits and systems.
- Comp. Sci. 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.
- Comp. Sci. 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.
- Comp. Sci. 583/EECS 583. Programming Languages.
- CS 476 and CS 483. I. (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 essential 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.
- Comp. Sci. 584/EECS 584. Advanced Database Systems.
- CS 484. II. (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.
- Comp. Sci. 586/EECS 586. Design and Analysis of Algorithms.
- CS 380. II. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- 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.
- Comp. Sci. 588/EECS 588/IOE 578/ME 551. Geometric Modeling.
- CS 487 or ME 454. II. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- 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.
- Comp. Sci. 589/EECS 589. Advanced Computer Networks.
- CS 489. I. (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.
- Comp. Sci. 592/EECS 592. Advanced Artificial Intelligence.
- CS 492. I and 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.
- Comp. Sci. 594/EECS 594. Introduction to Adaptive Systems.
- CS 303 and Math. 425. I. (3). (Excl). (BS). CAEN lab access fee required for non-Engineering students.
- Programs and automata that "learn" by adapting to their environment; programs that utilize genetic plans 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 cognition science.
- Comp. Sci. 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.
- Comp. Sci. 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.
University of Michigan | College of LS&A | Student Academic Affairs | LS&A Bulletin Index | Department Homepage
Copyright © 1999 The Regents of the University of Michigan, Ann Arbor, MI 48109 USA 1.734.764.1817 (University Operator) This page was created on Tue, Apr 13, 1999.
|