CS 100 is an intro class intended for students who plan to major in Computer Science, Computer Engineering or Electrical Engineering. It is not a class for students who are looking for a good general introduction for computing.
Computer Science does offer two classes intended for non-majors:
CS181, Intro to Computing and CS 183, Elementary Programming Concepts.
These classes are much more appropriate for entering LS&A
students who plan on majoring in areas other than Computer Science.
If you are interested in becoming an Electrical Engineering or Computer Engineering major, contact the EECS Counseling Office at 763-2305, 3415 EECS Building.
If you are interested in becoming a Computer Science concentrator, contact the LS&A Academic Advising Center at 764-0332, 1255 Angell Hall.
If you are undecided about which of these three options to choose, please contact the College of Engineering Freshman Counseling Office at 647-7106, 1009 Lurie Engineering Center.
100/EECS 100. Introduction to Computing Systems. (4). (MSA). (BS).
How a computer works, from the machine level to high level
programming. Circuits, instructions, memory, data. Assembly language.
Binary arithmetic, data types, data structures. Translation of
high level languages. The C programming language: data structures, control, iteration, recursion. Basic algorithm analysis.
Check
Times, Location, and Availability
181/EECS 181. Introduction to Computer Systems. Credit is granted for only one course among CS 181, Engin. 103, and Engin. 104. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
183/EECS 183. Elementary Programming Concepts. This course is not intended for computer science concentrators or computer engineering concentrators. Credit is granted for only one course among CS 183, Engin. 103, and Engin. 104. (4). (MSA). (BS).
Introduction to a high level programming language, top down
analysis, and structured programming. Basic searching and sorting
techniques. No previous experience in computers or programming
is assumed. Students will write and debug several computer programs.
Check
Times, Location, and Availability
210/EECS 210. Electrical Engineering I. Math. 116. Credit is not granted for both CS 210 and EECS 314. (4). (Excl). (BS).
Introductory electrial 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.
Check
Times, Location, and Availability
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).
Introductory electrial 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.
Check
Times, Location, and Availability
270/EECS 270. Introduction to Logic Design. CS 100. (4). (MSA). (BS).
http://www.eecs.umich.edu/courses/eecs270/
Binary number systems, switching algebra, digital design techniques, logic gates, logic minimization, standard combinational circuits, sequential circuits, latches and flip-flops, synthesis of synchronous
sequential circuits, PLAs, ROMs, RAMs, arithmetic circuits, introduction
to computer organization, data path design, control of complex
operations, computer-aided design. Laboratory includes hardware
design and CAD experiments. OBJECTIVE: Develop engineering skills
in the design and analysis of digital logic circuits with applications
to digital computers. TEXTBOOK AND SUPPLIES: J. P. Hayes, Introduction
to Digital Logic Design (Addison-Wesley); Course Pack (Copy Center
in Pierpont Commons); REFERENCES On reserve at the Media Union.
You must be registered in the lecture (Sec. 001 or 002) that you
attend. EXAMINATIONS: Two 1-hour evening closed book multiple-choice
examinations plus one 2-hour final examination, covering topics
from lectures, lab material, homework, and text reading assignments
No textbook, reference books, homework set solutions, notes, lab
papers, calculators, or the like are permitted. GRADING: Lab Grade, 30%; Exams, 30%; Final exam, 30%; Homework, 10%. Graded on a curve.
The average final grade in the course typically ranges from C+
to B. WL:3 (Getty, Lomax)
Check
Times, Location, and Availability
280/EECS 280. Programming and Introductory Data Structures. Math. 115 and CS 100. Two credits granted to those who have completed CS 283. (4). (MSA). (BS).
http://www.eecs.umich.edu/courses/eecs280/
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.
Course format and attendance: There are three lectures per week, one discussion session per week, and there are weekly reading
assignments from the textbooks. The purpose of the lectures and the discussion sessions is to explain the required material and to answer student questions. You are expected to have studied the textbook material yourself prior to, or at least during, the
lectures on each subject. There will be several programming projects, a midterm exam, and a final exam; their due dates are given later
in this syllabus. The two lecture sections of this course are
being team-taught by the two professors listed below. The course
material and policies are the same for each of the two sections
of the course. If you must miss one of the lectures, you should
be able to get the (almost) identical content by attending the
other lecture section on the same day. You should plan on attending the lectures and discussion sections regularly. You may choose
not to attend, but you are responsible for all material and announcements
presented in the lectures and in the discussion sections. You
are not entitled to a private presentation of a lecture or a discussion that you chose to skip. Please note that material not in the textbooks
will often be presented in lecture or discussion; you are responsible
for this material, in addition to the material in the assigned
readings. The bulk of your course grade (70%) will come from the
course programming projects; midterm exam 10%, Final exam 20%.
(Flanigan, Kieras)
Check
Times, Location, and Availability
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. (1). (Excl). (BS).
A mini course covering the fundamentals of a high level programming
language or a system such as UNIX. Programming problems will be
assigned. Specific languages or systems to be offered will be
announced in advance. Credit will not be given for the C mini
course to students who have taken EECS 280.
Check
Times, Location, and Availability
303/EECS 303. Discrete Structures. Math. 115. (4). (MSA). (BS).
Fundamental concepts of algebra; partially ordered sets, lattices, Boolean algebras, semigroups, rings, and polynomial rings. Graphical
representation of algebraic systems; graphs, directed graphs.
Application of these concepts to various areas of computer engineering.
Check
Times, Location, and Availability
370/EECS 370. Introduction to Computer Organization. CS 270 and CS 280. (4). (Excl). (BS).
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 microprogrammed computer.
Check
Times, Location, and Availability
380/EECS 380. Data Structures and Algorithms. CS 280 and CS 303. (4). (NS). (BS).
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.
Check
Times, Location, and Availability
398/EECS 398. Special Topics. Permission of instructor. (1-4). (Excl).
Topics of current interest selected by the faculty. Lecture, seminar, or laboratory.
Check
Times, Location, and Availability
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. (3). (Excl). (BS).
See Mathematics 419.
Check
Times, Location, and Availability
442/EECS 442. Computer Vision. CS 380. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
470/EECS 470. Computer Architecture. CS 370. (4). (Excl). (BS).
Basic concepts of computer architecture and organization. Computer
evolution. Design methodology. Performance evaluation. Elementary
queueing models. CPU architecture. Instruction sets. ALU design.
Hardware and microprogrammed control. Nanoprogramming. Memory
hierarchies. Virtual memory. Cache design. Input-output architectures.
Interrupts and DMA. I/O processors. Parallel processing. Pipelined
processors. Multiprocessors.
Check
Times, Location, and Availability
476/EECS 476. Foundations of Computer Science. CS 280 and 303. (4). (Excl). (BS).
An introduction to computation theory: finite automata, regular
languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions, and computational complexity.
Check
Times, Location, and Availability
477/EECS 477. Introduction to Algorithms. CS 380. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
478/EECS 478. Logic Circuit Synthesis and Optimization. CS 270 and CS 303, and senior or graduate standing. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
481/EECS 481. Software Engineering. CS 380. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
482/EECS 482. Introduction to Operating Systems. CS 370 and 380. (4). (Excl). (BS).
Operating system functions and implementations: multi-tasking;
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 multitasking environment.
Check
Times, Location, and Availability
483/EECS 483. Compiler Construction. CS 380 and 476. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
484/EECS 484/IOE 484. Database Management Systems. CS 380 or IOE 373. (4). (Excl). (BS).
http://www.eecs.umich.edu/courses/eecs484/
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.
Database systems deal with the management of the large quantities
of data that are needed for virtually any important computing
environment. These systems handle the important issues concerning
data in order that the applications need not have to do so. Database
technology is already well-established in terms of numerous application
areas, but its increasing importance, several emerging technologies, and many unresolved problems, continue to spur the research and development efforts in the area. The objective of this course
is to study the established basic technology issues for databases.
We will examine both the users' perspective as well as the database
implementor's perspective in this course. Students need to know the basics of computer architecture, programming, algorithms, and operating systems. Required Reading: (1) Korth H.F., Silberschatz
A., and Sudarshan, S. Database System Concepts, 3rd Ed., McGraw-Hill.
(2) Handouts. Recommended Reading: (1) Ramakrishnan, R. Database
Management Systems, 1997, McGraw-Hill. (2) Teorey,T.J. Database
Modeling and Design: The Fundamental Principles, 2nd Edition, Morgan Kaufmann Pub., San Francisco, CA, 1994. (Soparkar)
Check
Times, Location, and Availability
487/EECS 487. Interactive Computer Graphics. CS 380 and senior standing. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
492/EECS 492. Introduction to Artificial Intelligence. CS 380. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
493/EECS 493. User Interface Design and Analysis. CS 481. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
494/EECS 494. Computer Game Design and Development. CS 380. (4). (Excl).
The purpose of this course is to give the students a rigorous
introduction to the techniques and design principles of computer
game development. This course forces students to integrate many
computer science and engineering concepts. In terms of design, we emphasize the constraints that come from high-speed interactions
with human users and study material in human-interface design, computer algorithms and data structures (such as binary-space
partition trees), optimization techniques, artificial intelligence
techniques, story and plot coherence, and game play. For development
we study software engineering techniques, object oriented design
and implementation, existing software development environments, and the legalities and economics of creating commercial software.
Overall we emphasize the importance of design before implementation, as well as building on existing software packages. (Laird)
Check
Times, Location, and Availability
500. Special Study. Graduate or undergraduate concentration in Computer Science; and permission of instructor. (1-6). (Excl). (INDEPENDENT). May be repeated for credit.
Special reading and study in particular areas of computer science
for advanced undergraduates and beginning graduate students. Each
student is provided with the proper section number by the staff
member with whom the work has been arranged. Students are responsible
for getting properly registered for this course.
Check
Times, Location, and Availability
505/EECS 505/Math. 562/Aero. 577/IOE 511. Continuous Optimization Methods. Math. 217, 417 or 419. (3). (Excl). (BS).
See Mathematics 562.
Check
Times, Location, and Availability
543/EECS 543. Knowledge-Based Systems. CS 492 and permission of instructor. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
570/EECS 570. Parallel Computer Architecture. CS 470. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
571/EECS 571. Principles of Real-Time Computing. CS 470 and CS 482. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
574/EECS 574. Theoretical Computer Science I. CS 476. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
583/EECS 583. Programming Languages. CS 476 and CS 483. (4). (Excl). (BS).
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. For example, the question why functional languages become
imperative when they "go public" is discussed.
Check
Times, Location, and Availability
589/EECS 589. Advanced Computer Networks. CS 489. (4). (Excl). (BS).
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.
Check
Times, Location, and Availability
595/EECS 595/Ling. 541. Natural Language Processing. Senior standing. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
598/EECS 598. Special Topics in Electrical Engineering and Computer Science. Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit.
Topics of current interest in electrical engineering and computer
science. Lectures, seminar, or laboratory. Can be taken more than
once for credit.
Check
Times, Location, and Availability
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.