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 for computing.
Computer Science does offer two classes intended for non-concentrators:
CS 181, Intro 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 processing, 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.
100/EECS 100. Introduction
to Computing Systems. (4). (MSA). (BS).
A foundation course in computer science intended for CS &
CE majors and those who are interested in a rigorous introduction
to computer hardware, software, and theory. How a computer works, from the machine level to high level programming languages. Circuits, instructions, memory, how data is represented in a computer. Machine
language and assembly language. Binary arithmetic, data types, data structures. Translation of high level languages into assembly
and machine code. The C programming language: data structures, selection, iteration, subprograms, and recursion. Basic algorithm
analysis; complexity. This is not a "programming" course;
it is a rigorous introduction to the many aspects of computing
systems.
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).
Fundamental computer skills needed to increase productivity
both personally and at the workplace. Use of software packages
and applications including word processing, world wide web browsers, spreadsheets, and database systems. Creating your own home page
on the web. Discussion of the history of computing, ethics in the field (privacy, copyright, patents), and an introduction to
basic hardware components. Intended for non CS/CE majors whose
goal is computer literacy.
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).
Fundamental concepts and skills of programming in a high
level language. Flow of control: sequential, selection, iteration, subprograms. Basic data structures: strings, arrays, records, lists and tables. Fundamental algorithms using selection and iteration
(decision making, finding maxima and minima, searching, sorting, simulation, setting up a simple database). Good program design, structure, and style are emphasized. Testing and debugging. Intended
for non CS/CE majors whose goal is to achieve basic proficiency
in programming.
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 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.
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 electrical engineering topics, continued: basic
circuit analysis; elementary transistor and diode circuits. Equivalent
transformations of electric 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).
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.
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.
Section 001 – Java. (2 credits).
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 Math 419.
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
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
486/EECS 486. Object-Oriented
Software Development. CS 380. (4). (Excl). (BS).
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 projects in
an object-oriented language currently standard in industry.
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
542/EECS 542. Vision Processing.
CS 442. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
545/EECS 545. Machine Learning.
CS 492. (3). (Excl). (BS).
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 will also be
studied.
Check
Times, Location, and Availability
575/EECS 575. Theoretical
Computer Science II. CS 574. (4). (Excl). (BS).
Advanced computational complexity, intractability, classical
probability and information theory, algorithmic information theory, and special topics such as computational algebra, concurrency, semantics, and verification.
Check
Times, Location, and Availability
577/EECS 577. Reliable Computing
Systems. CS 280 and 478. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
579/EECS 579. Digital System
Testing. CS 478. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
582/EECS 582. Advanced Operating
Systems. CS 482. (4). (Excl). (BS).
Course discusses advanced topics and research issues in operating
systems. Topics will be 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.
Check
Times, Location, and Availability
584/EECS 584. Advanced Database
Systems. CS 484. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
586/EECS 586. Design and Analysis of Algorithms. CS 380. (3). (Excl). (BS).
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.
Check
Times, Location, and Availability
592/EECS 592. Advanced Artificial
Intelligence. CS 492. (4). (Excl). (BS).
Advanced topics in artificial intelligence. Issues in knowledge
representation, knowledge based systems, problem solving, planning
and other topics will be discussed. Students will work on several
projects.
Check
Times, Location, and Availability
594/EECS 594. Introduction
to Adaptive Systems. CS 303 and Math. 425. (3). (Excl).
(BS).
Programs and automata that "learn" by adapting
to their environment; programs that utilize genetic algorithms
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 cognitive science.
Section 001 – Complex Adaptive Systems. For Winter
Term, 1998, this section is offered jointly with Psychology
541.001. (Holland)
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.