
Introduction to Computing Courses
CS 100 is an intro class intended for students who plan to concentrate in Computer Science, Computer Engineering, or Electrical Engineering. It is not a class for students who are looking for a good general introduction to computing.
Computer Science does offer two classes intended for non-concentrators: CS 181, Introduction to Computing and CS 183, Elementary Programming Concepts. These classes are much more appropriate for entering LS&A students who plan on concentrating in areas other than Computer Science.
What should I take for my first computing course?
1. CS 181 – learn how to use basic computer software packages like word processors, spreadsheets, simple graphics and databases, etc. (not programming). Does not count for the computing requirement in Electrical Engineering or Computer Engineering - free elective only.
2. CS 183 – learn the fundamentals of C++ programming (including C programming). Usually taken by LS&A students who do not plan to concentrate in computer science (CS) or computer engineering (CE). Assumes no prior programming experience. Does not count for the computing requirement in Electrical Engineering or Computer Engineering – free elective only.
3. Engineering 101 – learn the fundamentals of C programming plus engineering applications of computing, including MATLAB. Usually taken by engineering students who do not plan to concentrate in Electrical Engineering, Computer Engineering, or Computer Science. This course replaces the former Engineering 103, 104, 106, 107 courses. Assumes no prior programming experience.
Note: this course is counted as non-LS&A credit. (There is a limit of 12 credits in the 120 required for an LS&A degree.)
4. CS 100 – recommended first course for those who intend to concentrate in electrical engineering, computer science or computer engineering. It assumes no prior programming experience. Half the course is devoted to computer hardware components and the second half to the basics of programming using C. If you take EECS/CS 183 or Engineering 101 and then decide later you want to be an Electrical Engineering, Computer Engineering, or Computer Science concentrator, you can take a bridge course to pick up the hardware half of EECS/CS 100 for one credit; you do not have to take all of EECS/CS 100.
5. If you already have C experience and want to jump to the next programming course, you need to take the EECS/CS 100 bridge course (for Fall 1997 it is listed as EECS/CS 284 – Section 003), and then enroll in EECS/CS 280.
QUESTIONS?
If you are interested in becoming an Electrical Engineering or Computer Engineering concentrator, 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.
Questions about the concentration program in Computer Science should be addressed to:
Undergraduate Counseling Office
EECS Department
3415 EECS
University of Michigan
Ann Arbor, MI 48109-2122
telephone: (313) 763-2305
electronic mail: csdegree@eecs.umich.edu
web: http://www.cs.umich.edu.
Take me to the Fall Time Schedule
100/EECS 100. Introduction
to Computing Systems. Intended for concentrators
in computer science, computer engineering, and electrical engineering.
(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. 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. (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, electrical engineering, 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
270/EECS 270. Introduction
to Logic Design. CS 100. (4). (MSA). (BS).
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.
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).
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.
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, 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 and 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 multitask 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).
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.
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
489/EECS 489. Computer
Networks. CS 482. (4). (Excl). (BS).
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.
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
494/EECS 494. Computer
Game Design and Development. CS 380. (4). (Excl).
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.
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
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
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
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
Copyright © 1998 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.