Graduate Course Catalog
Effective Term
Requirement or Grouping
Listings Per Page
Subject
  or   Department
Show Descriptions Show Course Guide Term Links For Past Two Years
Note: For descriptions of classes each term, see the LSA Course Guide
   Page 1 of 1, Results 1 - 62 of 62   
Courses in CoE Electrical Engineering and Computer Science
LSA Course Catalog are eligible for LSA credit; all other EECS courses (as listed in the CoE Bulletin) are considered non-LSA courses. LSA students may use a maximum of 20 credits of non-LSA course work toward the total 120 credits required for the degree.
Electrical Engineering and Computer Science (EECS)
EECS 427. Very Large Scale Integrated Design I
EECS 270 and 312 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F, W.

Design techniques for rapid implementation of very large scale integrated (VLSI) circuits. MOS technology and logic. Structured design. Design rules, layout procedures. Design aids: Layout, design rule checking, logic and circuit simulation. Timing. Testability. Architectures for VLSI. Projects to develop and lay out circuits.

EECS 441. Mobile App Development for Entrepreneurs
Senior standing, EECS 281, EECS 370, and at least four credit hours of Upper Level Electives in either Computer Science or Computer Engineering. (3). (BS). May not be repeated for credit.

Best practices in the software engineering of mobile applications and best practices of software entrepreneurs in the design, production and marketing of mobile apps. Students will engage in the hands-on practice of entrepreneurship by actually inventing, building, and marketing their own mobile apps.

EECS 442. Computer Vision
EECS 281 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) EECS 281 or EECS 398, Winter 2005, section 001 or Graduate Standing. (4). (BS). May not be repeated for credit. F (Alternate years).

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 relaxation labeling, stereo, shading texture, object representation and recognition, dynamic scene analysis, and knowledge based techniques. Hardware, software techniques.

EECS 470. Computer Architecture
EECS 270 and 370 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F, W.

Basic Concepts of computer architecture and organization. Computer evolution. Design methodology. Performance evaluation. Elementary queuing models. CPU architecture instruction sets. ALU design. Hardwared and microprogrammed control. Nanoprogramming memory hierarchies. Virtual memory. Cache design. Input-output architectures. Interrupts and DMA. I/O processors. Parallel processing pipelined processors. Multiprocessors.

EECS 475. Introduction to Cryptography
EECS 203 or MATH 312 or MATH 412; and EECS 183 or ENGR 101 or 104 or EECS 280 or 283; each with a grade of at least C or better; or Graduate standing. (Prerequisites enforced at registration.) EECS 203 or MATH 312/412 and EECS 183/280. (4). (BS). May not be repeated for credit. F. (Alternating Years).

Covers fundamental concepts, algorithms, and protocols in cryptography. Topics: ancient ciphers, Shannon theory, symmetric encryption, public key encryption, hash functions, digital signatures, key distribution. Highlights AES, RSA, Discrete Log, Elliptic Curves. Emphasizes rigorous mathematical study in terms of algorithmic complexity. Includes necessary background from algorithms, probability, number theory, and algebra.

EECS 477. Introduction to Algorithms
EECS 281 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) EECS 281 or EECS 398, Winter 2005, Section 001 or Graduate Standing. (4). (BS). May not be repeated for credit. F.

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.

EECS 478. Logic Circuit Synthesis and Optimization
EECS 270 and 203 with a grade of at least C; and senior or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F, W.

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.

EECS 480. Logic and Formal Verification
EECS 281; and EECS 376 or EECS 270; each with a grade of at least C; or Graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. W. (Alternating Years).

An introduction to current methodologies for verifying computer systems. Topics covered include logic and theorem proving; transition systems; temporal logic and the mu-calculus; modeling sequential and concurrent systems; model checking methods; binary decision diagrams; and controlling state explosion. Students will complete a project using current model checking technology.

EECS 481. Software Engineering
EECS 281 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F, W.

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 usually required.

EECS 482. Introduction to Operating Systems
EECS 370 and 281 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F, W.

Operating system design and implementation: multi-tasking; 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 multi-task environment, with file systems, and with memory management.

EECS 483. Compiler Construction
EECS 281 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) EECS 281 or EECS 398, Winter 2005, section 001 or Graduate Standing. (4). (BS). May not be repeated for credit. F.

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.

EECS 484. Database Management Systems
EECS 281 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F, W.

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 currency control and recovery.

EECS 485. Web Database and Information Systems
EECS 281 OR EECS 382, and a major in EECS OR Informatics; OR graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. W.

Concepts surrounding Web information system, including client/server systems, security, XML, information retrieval and search engines, and data replication issues. Includes substantial final project involving development of a database-backed web site.

EECS 487. Interactive Computer Graphics
EECS 281 with a grade of at least C; and senior or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F, W.

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.

EECS 489. Computer Networks
EECS 482 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. W.

Protocols and architecture of computer networks. Topics include client-server computing, socket programming, naming and addressing, media access protocols, routing and transport protocols, flows 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.

EECS 492. Introduction to Artificial Intelligence
EECS 281 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F, W.

EECS 493. User Interface Development
EECS 281 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) EECS 281 or EECS 398, Winter 2005, Section 001 or Graduate Standing. (4). (BS). May not be repeated for credit. W.

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. Fluency in a standard object-oriented programming language is assumed.

EECS 494. Computer Game Design and Development
EECS 281 with a grade of at least C; or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F.

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, use interfaces, artificial intelligence, game SDK's, networking, multi-player games, game development environments, commercialization of software.

EECS 497. Major Design Projects
Senior or graduate standing. (Prerequisites enforced at registration.) (4). (BS). May not be repeated for credit. F, W.

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. Projects are often interdisciplinary allowing non-EECS seniors to also take the course (consult with instructor).

EECS 498. Special Topics
Permission of instructor. (1 - 4). (BS). May be repeated for credit.

Topics of current interest selected by faculty.

EECS 499. Advanced Directed Study
Senior or graduate standing. (Prerequisites enforced at registration.) Senior standing in EECS. (1 - 4). (BS). (INDEPENDENT). May be repeated for credit.

This course provides an opportunity for undergraduate students to work on substantial research problems in EECS or areas of special interest such as design problems.

EECS 527. Layout Synthesis and Optimization
EECS 281 or EECS 478 or Graduate Standing. (3 - 4). (BS). May not be repeated for credit. W.

Theory of circuit partitioning, floor planning and placement algorithms. Techniques for routing and clock tree design. Timing analysis and cycles time optimization. Topics in low-power design. Large-scale optimization heuristics, simulated annealing and Al techniques in CAD. Modern physical design methodologies and CAD software development.

EECS 530 / APPPHYS 530. Electromagnetic Theory I
PHYSICS 438 or EECS 330. (3). (BS). May not be repeated for credit. F.

EECS 537 / APPPHYS 537. Classical Optics
EECS 330 or 334. (3). (BS). May not be repeated for credit.

EECS 538 / APPPHYS 550 / PHYSICS 650. Optical Waves in Crystals
EECS 434 and Graduate standing. (3). (BS). May not be repeated for credit.

EECS 539 / APPPHYS 551 / PHYSICS 651. Lasers
EECS 537 or 538 and Graduate standing. (3). (BS). May not be repeated for credit.

EECS 540 / APPPHYS 540. Applied Quantum Mechanics
Permission of instructor. (3). (BS). May not be repeated for credit. F.

EECS 541 / APPPHYS 541. Applied Quantum Mechanics II
APPPHYS 540. (3). (BS). May not be repeated for credit.

EECS 543. Knowledge-Based Systems
EECS 281 and graduate standing, or permission of instructor. (3). (BS). May not be repeated for credit. F.

Techniques and principles for developing application software based on explicit representation and manipulation of domain knowledge, as applied to areas such as pattern matching, problem-solving, automated planning, and natural-language processing. Discussion of major programming approaches used in the design and development of knowledge-based systems.

EECS 545. Machine Learning
EECS 492. (3). (BS). May not be repeated for credit. W, odd years.

EECS 546 / APPPHYS 546. Ultrafast Optics
APPPHYS 537. (3). (BS). May not be repeated for credit.

EECS 547 / SI 652. Electronic Commerce
SI 502 or taken concurrently or Instructor permission. (3). (BS). May not be repeated for credit. W.

Introduction to the design and analysis of automated commerce systems, from both a technological and social perspective. Infrastructure supporting search for commerce opportunities, negotiating terms of trade, and executing transactions. Issues of security, privacy, incentives, and strategy.

EECS 552 / APPPHYS 552. Fiber Optics: Internet to Biomedical Applications
Any ONE of EECS 334, 429, 434, 529, 537, 538, 539, or permissions of instructor. (3). (BS). May not be repeated for credit.

This course covers the basics of fibers and applications in fields as diverse as high power and broadband lasers, biomedical diagnostics and therapeutics, telecommunications, and internet communications. Propagation, optical amplification, and nonlinearities in fibers are discussed, and examples include transmission systems and lasers. Biomedical applications include dermatology, cardiology, and ophthalmology.

EECS 567 / MECHENG 567 / MFG 567. Introduction to Robotics
Graduate standing or permission of instructor. (3). (BS). May not be repeated for credit. W.

Introduction to the central topics in robotics, including geometry, kinematics, differential kinematics, dynamics, and control of robot manipulators. The mathematical tools required to describe spatial motion of a rigid body will be presented in full. Motion planning including obstacle avoidance is also covered.

EECS 570. Parallel Computer Architecture
EECS 470. (4). (BS). May not be repeated for credit. F.

Architecture for explicit parallelism. Multithreaded processors, small- and large- scale multiprocessor systems. Shared-memory coherence and consistency. Effect of architecture on communication latency, bandwidth, and overhead. Latency tolerance techniques. Interconnection networks. Case studies. Term projects.

EECS 571. Principles of Real Time Computing
EECS 470 and 482 or permission of instructor. (4). (BS). May not be repeated for credit. F.

Principles of real-time computing based on high performance, ultra reliability and environmental interface. Architecture, algorithms, operating systems and applications that deal with time as the most important resource. Real-time scheduling, communications and performance evaluation.

EECS 573. Microarchitecture
EECS 470, or permission of instructor. (3). (BS). May not be repeated for credit.

EECS 574. Computational Complexity
EECS 376 or graduate standing. (4). (BS). May not be repeated for credit. F.

Fundamentals of the theory of computation and complexity theory. Computability, undecidability, and logic. Relations between complexity classes, NP- completeness, P-completeness, and randomized computation. Applications in selected areas such as cryptography, logic programming, theorem proving, approximation of optimization problems, or parallel computing.

EECS 575. Advanced Cryptography
EECS 203 or equivalent. EECS 574 recommended. (4). (BS). May not be repeated for credit. W.

A rigorous introduction to the design of cryptosystems and to cryptanalysis. Topics include cryptanalysis o classical cryptosystems; theoretical analysis of one-way functions; DES and differential cryptanalysis; the RSA cryptosystem; EIGamal, elliptic, hyper elliptic and hidden monomial cryptosystems; attacks on signature schemes, identification schemes and authentication codes; secret sharing; and zero knowledge.

EECS 578. Computer-Aided Design Verification of Digital Systems
EECS 478 or graduate standing. (4). (BS). May not be repeated for credit. W.

Design specification vs. implementation. Design errors. Functional and temporal modeling of digital systems. Simulation vs. symbolic verification techniques. Functional verification of combinational and sequential circuits. Topological and functional path delays; path sensitization. Timing verification of combinational and sequential circuits. Clock schedule optimization.

EECS 579. Digital Systems Testing
Graduate standing. (4). (BS). May not be repeated for credit. F.

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.

EECS 582. Advanced Operating Systems
EECS 482/EQ. (4). (BS). May not be repeated for credit. W.

EECS 583. Advanced Compilers
EECS 281 and 370 (EECS 483 is also recommended). (4). (BS). May not be repeated for credit. F.

In-depth study of compiler backend design for high-performance architectures. Topics include control-flow and data-flow analysis, optimization, instruction scheduling, register allocation. Advanced topics include memory hierarchy management, instruction-level parallelism, predicated and speculative execution. The class focus is processor-specific compilation techniques, thus familiarity with both computer architecture and compilers is recommended.

EECS 584. Advanced Database Systems
EECS 484 or permission of instructor. (4). (BS). May not be repeated for credit. F.

Advanced topics and research issues in database management systems. Distributed databases, advanced query optimization, query processing, transaction processing, data models and architectures. Data management for emerging application areas, including bioinformatics, the internet, OLAP, and data mining. A substantial course project allows in-depth exploration of topics of interest.

EECS 586. Design and Analysis of Algorithms
EECS 281. (4). (BS). May not be repeated for credit. W.

Design of algorithms for non-numeric 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.

EECS 587. Parallel Computing
EECS 281; graduate standing. (4). (BS). May not be repeated for credit. F.

The development of programs for parallel computers. Basic concepts such as speedup, load balancing, latency, system taxonomies. Design of algorithms for idealized models. Programming on parallel systems such as shared or distributed memory machines, networks. Grid computing. Performance analysis. Course includes a substantial term project.

EECS 588. Computer and Network Security
EECS 482 or 489; or graduate standing. (4). (BS). May not be repeated for credit. F.

Survey of advanced topics and research issues in computer and network security. Topics will be drawn from a variety of areas of such as mandatory and discretionary security policies, secure storage, security darnels, trust management, preventing software vulnerabilities, applied cryptography, network security.

EECS 589. Advanced Computer Networks
EECS 489. (4). (BS). May not be repeated for credit. W.

EECS 591. Distributed Systems
EECS 482 and graduate standing. (4). (BS). May not be repeated for credit. F.

EECS 592. Advanced Artificial Intelligence
EECS 492 or permission of instructor. (4). (BS). May not be repeated for credit. W.

EECS 594. Introduction to Adaptive Systems
EECS 203, and MATH 425 or STAT 425. (3). (BS). May not be repeated for credit. W.

Programs and automata that "learn" by adapting to their environment; programs that utilize genetic algorithms and 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.

EECS 595 / LING 541 / SI 561. Natural Language Processing
Senior standing. (Prerequisites enforced at registration.) (3). (BS). May not be repeated for credit. F.

This course is an introduction to computational and linguistic concepts and techniques for modeling and analyzing natural language. Topics include finite-state machines, part of speech tagging, context-free grammars, syntax and parsing, unification grammars and unification-based parsing, language and complexity, semantics, discourse and dialogue modeling, natural language generation, and machine translation.

EECS 597 / LING 702 / SI 760. Language and Information
EECS 380 or concurrent election of one of SI 503 or LING 541; and Graduate standing. (3). (BS). May not be repeated for credit.

Surveys techniques used in language studies and information processing. Students learn how to explore and analyze textual data in the context of Web-based information retrieval systems. At the conclusion of the course, students are able to work as information designers and analysts.

EECS 598. Special Topics
Permission of instructor or counselor. (1 - 4). (BS). May be repeated for credit. F, W, Sp/Su, Sp, Su.

EECS 627. VLSI Design II
EECS 427 advised. (4). (BS). May not be repeated for credit. W.

Advanced very large scale integrated (VLSI) circuit design. Design methodologies (architectural simulation, hardware description language design entry, silicon compilation, and verification), microarchitectures, interconnect, packaging, noise sources, circuit techniques, design for testability, design rules, VLSI technologies, and yield. Projects in chip design.

EECS 634 / APPPHYS 611 / PHYSICS 611. Nonlinear Optics
EECS 537 or 538 or 530. Graduate standing. (3). (BS). May not be repeated for credit.

Formalism of wave propagation in nonlinear media; susceptibility tensor; second harmonic generation and three-wave mixing; phase matching; third order nonlinearities and four-wave mixing processes; stimulated Raman and Brillouin scattering. Special topics: nonlinear optics in fibers, including solitons and self-phase modulation.

EECS 638 / PHYSICS 542. Quantum Optics
PHYSICS,Quantum mechanics, electrodynamic and atomic physics. (3). (BS). May not be repeated for credit.

EECS 643 / PSYCH 643. Theory of Neural Computation
Graduate standing and permission of instructor. (2 - 4). (BS). May not be repeated for credit.

This is a graduate course introducing computational models of information processing in mammalian central nervous system. Following a brief overview, the course will examine: (1) Biological principles governing brain computation (e.g., population coding, computation maps, adaptive plasticity, self-organization and modularization, etc.); (2) Mechanisms underlying single neuron computation, via either passive membrane properties (equivalent cylinder model and cable equation for dendrites; integrate-and-fire or Lapique model) or active membrane properties (Hodgkins-Huxley dynamics; F-N reduced system and phase-space analysis); (3) Architectures of artificial neural network (connectionism), including models of simple perception, multi-layered feed-forward network (with supervised, back-propagated error correction learning rule), associative network (Hopfield network and Boltman machine with unsupervised, Hebbian learning rule), and reinforcement (partially supervised) learning algorithms.

EECS 644 / PSYCH 644. Computational Modeling of Cognition
Graduate standing. (2 - 4). (BS). May not be repeated for credit.

EECS 684. Curr Top Database
EECS 484. (3). (BS). May not be repeated for credit. F.

EECS 990. Diss-Precand
Election for dissertation work by doctoral student not yet admitted as a Candidate. (1 - 8; 1 - 4 in the half-term). (BS). (INDEPENDENT). May be repeated for credit. This course has a grading basis of "S" or "U".

EECS 995. Diss-Cand
Graduate School authorization for admission as a doctoral Candidate. (Prerequisites enforced at registration.) (8; 4 in the half-term). (BS). (INDEPENDENT). May be repeated for credit. This course has a grading basis of "S" or "U".

College of Literature, Science, and the Arts 500 S. State Street, Ann Arbor, MI  48109 © 2012 Regents of the University of Michigan