Fall Course Guide

Courses in Computer Science (Division 353)

Fall Term, 1998 (September 8-December 21, 1998)

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?

CS 181

Fundamental computer skills needed to increase productivity both personally and at the workplace. Use of software packages including word-processors, spreadsheets, world wide web browsers, simple graphics and databases, and more. Not programming. Usually taken by non CE/CS/EE concentrators whose goal is computer literacy. (Note: CE is Computer Engineering, CS is Computer Science, EE is Electrical Engineering).

Note: does not count for the computing requirement in CE or EE free elective only.

CS 183

Fundamental concepts and skills of programming in a high level language (currently C++). Basic algorithms and data structures. Assumes no prior programming experience. Usually taken by non CE/CS/EE concentrators in LS&A whose goal is to learn fundamental programming skills.

Note: does not count for the computing requirement in CE or EE free elective only.

Engineering 101

Fundamental concepts of programming in a high level language (currently C) plus engineering applications of computing, including MatLab. Assumes no prior programming experience. Replaces the former Engineering 103, 104, 106, 107 courses. Usually taken by non CE/CS/EE concentrators in Engineering whose goal is to learn fundamental skills in programming and computing for engineering.

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.)

CS 100

A foundation course in Computer Science & Engineering. First course for those who intend to major in CE, CS, or EE. Fundamentals of computer hardware (about 50% of the course), software and theory. Programming is currently done in machine language, assembly language, and C. Assumes no prior programming experience. Usually taken by students who intend to major in CE/CS/EE, or non-concentrators who intend to pursue a substantial amount of course work in CE/CS/EE. Those who want to study computer hardware and software in depth. If you take CS 183 or Engineering 101 and then decide later that you want to be a CE, CS, or EE major, you can take a bridge course (see below) to pick up the hardware half of CS 100 for one credit; you do not have to take all of CS 100. A CAEN fee may be required for non- Engineering students.

Special note about CS 280 & 270 and those who need 2 programming courses

If you already know C or C++ (the equivalent of 183 or 101 above), but you have not taken CS 100, and you want to take 280 and/or 270, you may take the CS 100 "bridge" course and then take 280 or 270. For Fall 1998 the bridge course is listed as CS 284, section 001. Note that the section number of the bridge course may change from term to term. Check the department web page for current semester course information (http://www.eecs.umich.edu).

If you are not a CE or CS major but are in a concentration where you need to take two "programming" courses, we currently recommend that you take 183 or 101 and the bridge course, then take 280.

QUESTIONS?

If you are interested in becoming a CE or EE major, contact the EECS Counseling Office at 763-2305, 3415 EECS Building.

If you are interested in becoming a CS major, contact the LS&A Counseling Office at 764-0332, 1255 Angell Hall.

If you are an undecided Engineering student, 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).
A foundation course in computer science & engineering intended for CE, CS & EE concentrators 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. High-level programming language data structures, selection, iteration, subprograms, and recursion. Basic algorithm analysis; complexity. This is not a "programming" course. Study of computer hardware constitutes approximately 50% of the course.
Check Times, Location, and Availability

=====================================================

Override Policy for EECS/CS 100 Fall 1998 Last Update: 8/20/98

=====================================================

No overrides will be issued prior to Friday 9/11/98. Professors Ford and Hayes will determine on that date if any overrides can be issued, and if so, how many. If overrides can be given, they will be issued only to students on the official waitlist in the order they are given on the waitlist. We will announce in lecture on 9/11/98 whether or not any overrides will be issued.

To sum up, if you want an override you must:

  1. be on the official wait list for the course (get on it using CRISP)
  2. come to class Friday 9/11 and find out if any overrides will be given
  3. come to 1829 East Hall after class on Friday 9/11 and find out if you can be issued an override (speak with Prof. Ford at that time)
  4. if you do receive an override, you must fill out the EECS department form required to officially request one the instructors will provide this at 1829 East Hall only
  5. you must call CRISP to register for the course after allowing at least 24 hours for the override to take effect (it may take longer)

============================================================

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).
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 and legal issues, and an introduction to basic hardware components. Intended for non CE/CS/EE concentrators whose goal is computer literacy.
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).
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, etc.). Good program design, structure, and style are emphasized. Testing and debugging. Intended for non CE/CS/EE concentrators whose goal is to achieve basic proficiency in programming.
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

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

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

499(500)/EECS 499. Directed Study. Senior standing in EECS. (1-4). (Excl). (INDEPENDENT).
Individual study of selected topics in Electrical Engineering and Computer Science. May include experimental investigation or library research. Primarily for undergraduates.
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


lsa logo

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.