Fall '99 Course Guide

Courses in Computer Science (Division 353)

Fall Term, 1999 (September 8 December 22, 1999)

Take me to the Fall Term '99 Time Schedule for Computer Science.


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 Computer Systems 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, web browsers, 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 1999 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
(734) 763-2305
electronic mail: csdegree@eecs.umich.edu
web: http://www.eecs.umich.edu/cse.


Comp. Sci. 100/EECS 100. Introduction to Computing Systems.

Instructor(s):

Prerequisites & Distribution: Intended for concentrators in computer science, computer engineering, and electrical engineering. (4). (MSA). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

A rigorous introduction to hardware (50% of the course), software, and theory. How a computer works, from machine level to high level programming. Circuits, instructions, memory, data representation. Machine language, assembler. Binary arithmetic, data types, and structures. Translation of high level languages. Selection, iteration, subprograms, recursion. Basic algorithm analysis. Preferred course for students intending to become EE/CE/CS majors.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 181/EECS 181. Introduction to Computer Systems.

Instructor(s): Elaine Cousins (elainec@umich.edu)

Prerequisites & Distribution: 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).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

Fundamental computer skills needed to increase productivity. Use of software packages and applications including word processors, web browsers, spreadsheets, database systems. Creating a web home page. History of computing, ethics, and legal issues. Introduction to basic hardware components. Intended for non-CE/CS/EE majors whose goal is computer literacy.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 183/EECS 183. Elementary Programming Concepts.

Instructor(s):

Prerequisites & Distribution: 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).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

Fundamental concepts and skills of programming in a high-level language. Flow of control: selection, iterations, subprograms. Data structures: strings, arrays, records, lists, tables. Algorithms using selection and iteration (decision making, finding maxima/minima, searching, sorting, simulation, etc. Good program design, structure, and style are emphasized. Testing and debugging.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 210/EECS 210. Electrical Engineering I.

Instructor(s):

Prerequisites & Distribution: Math. 116. Credit is not granted for both CS 210 and EECS 314. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

Introductory electrical engineering topics: audio signals and their processing; basics of electricity; elementary circuit design and analysis. Frequency content on 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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 211/EECS 211. Electrical Engineering II.

Instructor(s):

Prerequisites & Distribution: CS 210, and prior or concurrent enrollment in Math. 216. Credit is not granted for both CS 211 and EECS 313. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 270/EECS 270. Introduction to Logic Design.

Instructor(s):

Prerequisites & Distribution: CS 100. (4). (MSA). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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. Lectures and laboratory.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 280/EECS 280. Programming and Introductory Data Structures.

Section 001.

Instructor(s):

Prerequisites & Distribution: Math. 115 and CS 100. Two credits granted to those who have completed CS 283. (4). (MSA). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

Techniques of 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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 280/EECS 280. Programming and Introductory Data Structures.

Section 007.

Instructor(s):

Prerequisites & Distribution: Math. 115 and CS 100. Two credits granted to those who have completed CS 283. (4). (MSA). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

Techniques of 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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 284/EECS 284. Introduction to a Programming Language or System.

Section 001 Hardware Bridge Course

Prerequisites & Distribution: Some programming knowledge is required. No credit granted for the C minicourse to those students who have completed CS 280. (1). (Excl). (BS).

No Description Provided.

Check Times, Location, and Availability


Comp. Sci. 285/EECS 285. A Programming Language or Computer System.

Section 001 Java

Instructor(s): Sandra Bartlett (bartlett@umich.edu)

Prerequisites & Distribution: (2). (Excl).

Mini/Short course

Credits: (2).

Course Homepage: http://www.eecs.umich.edu/~bartlett/f99java.html

Programming problems will be assigned.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 303/EECS 303. Discrete Structures.

Section 001.

Instructor(s):

Prerequisites & Distribution: Math. 115. (4). (MSA). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 303/EECS 303. Discrete Structures.

Section 006.

Instructor(s):

Prerequisites & Distribution: Math. 115. (4). (MSA). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: No Data Given.

Comp. Sci. 370/EECS 370. Introduction to Computer Organization.

Instructor(s):

Prerequisites & Distribution: CS 270 and CS 280. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 micropragrammed computer. Lecture and lab.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 380/EECS 380. Data Structures and Algorithms.

Section 001.

Instructor(s):

Prerequisites & Distribution: CS 280 and CS 303. (4). (NS). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 380/EECS 380. Data Structures and Algorithms.

Section 007.

Instructor(s):

Prerequisites & Distribution: CS 280 and CS 303. (4). (NS). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 398/EECS 398. Special Topics.

Instructor(s):

Prerequisites & Distribution: Permission of instructor. (1-4). (Excl).

Credits: (1-4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

Topics of current interest selected by the faculty. Lecture, seminar, or laboratory.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 400/EECS 400/Math. 419. Linear Spaces and Matrix Theory.

Instructor(s):

Prerequisites & Distribution: 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).

Credits: (3).

Course Homepage: No Homepage Submitted.

See Mathematics 419..

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 2

Comp. Sci. 470/EECS 470. Computer Architecture.

Instructor(s):

Prerequisites & Distribution: CS 370. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

Basic concepts of computer architecture and organization. Computer evolution. Design methodology. Performance evaluation. Elementary queueing models. CPU architecture. Instruction sets. ALU design. Hardwired 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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 476/EECS 476. Foundations of Computer Science.

Instructor(s):

Prerequisites & Distribution: CS 280 and 303. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 477/EECS 477. Introduction to Algorithms.

Section 001.

Instructor(s):

Prerequisites & Distribution: CS 380. (4). (Excl). (BS).

Credits: (4).

Course Homepage: No Homepage Submitted.

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 Cost: No Data Given. Waitlist Code: No Data Given.

Comp. Sci. 478/EECS 478. Logic Circuit Synthesis and Optimization.

Instructor(s):

Prerequisites & Distribution: CS 270 and CS 303, and senior or graduate standing. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 481/EECS 481. Software Engineering.

Instructor(s):

Prerequisites & Distribution: CS 380. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 482/EECS 482. Introduction to Operating Systems.

Instructor(s):

Prerequisites & Distribution: CS 370 and 380. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

Operating systems 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 multi-task environment.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 484/EECS 484/IOE 484. Database Management Systems.

Instructor(s):

Prerequisites & Distribution: CS 380 or IOE 373. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 487/EECS 487. Interactive Computer Graphics.

Instructor(s):

Prerequisites & Distribution: CS 380 and senior standing. (4). (Excl). (BS).

Credits: (4; 3 in the half-term).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 489/EECS 489. Computer Networks.

Instructor(s):

Prerequisites & Distribution: CS 482. (4). (Excl). (BS).

Credits: (4).

Course Homepage: No Homepage Submitted.

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 applications-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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 492/EECS 492. Introduction to Artificial Intelligence.

Instructor(s):

Prerequisites & Distribution: CS 380. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 493/EECS 493. User Interface Design and Analysis.

Section 001.

Instructor(s):

Prerequisites & Distribution: CS 481. (3). (Excl). (BS).

Credits: (3).

Course Homepage: No Homepage Submitted.

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 Cost: No Data Given. Waitlist Code: No Data Given.

Comp. Sci. 494/EECS 494. Computer Game Design and Development.

Section 001.

Instructor(s):

Prerequisites & Distribution: CS 380. (4). (Excl).

Credits: (4).

Course Homepage: No Homepage Submitted.

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 Cost: No Data Given. Waitlist Code: No Data Given.

Comp. Sci. 499(500)/EECS 499. Directed Study.

Instructor(s):

Prerequisites & Distribution: Senior standing in EECS. (1-4). (Excl). (INDEPENDENT).

Credits: (1-4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 574/EECS 574. Theoretical Computer Science I.

Instructor(s):

Prerequisites & Distribution: CS 476. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 589/EECS 589. Advanced Computer Networks.

Instructor(s):

Prerequisites & Distribution: CS 489. (4). (Excl). (BS).

Credits: (4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

Comp. Sci. 595/EECS 595/Ling. 541. Natural Language Processing.

Section 001.

Instructor(s): Thomason

Prerequisites & Distribution: Senior standing. (3). (Excl). (BS).

Credits: (3).

Course Homepage: No Homepage Submitted.

See Linguistics 541.001.

Check Times, Location, and Availability Cost: No Data Given. Waitlist Code: No Data Given.

Comp. Sci. 598/EECS 598. Special Topics in Electrical Engineering and Computer Science.

Instructor(s):

Prerequisites & Distribution: Permission of instructor or advisor. (1-4). (Excl). (BS). May be repeated for credit.

Credits: (1-4).

Course Homepage: http://www.eecs.umich.edu/courses/index.html

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 Cost: No Data Given. Waitlist Code: 1

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 © 1999 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.

This page was created at 12:42 PM on Thu, Mar 25, 1999.