Winter '00 Course Guide

Courses in Computer Science (Division 353)

Winter Term, 2000 (January 5 April 26, 2000)

Take me to the Winter Term '00 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 Winter 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.

Course Homepages for the Department of EECS are listed at: http://www.eecs.umich.edu/courses/


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

Section 001.

Instructor(s): Ann Ford (arford@umich.edu), John Meyer (jfm@umich.edu)

Prerequisites & Distribution: Intended for concentrators in computer science, computer engineering, and electrical engineering. (4). (MSA). (BS). CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.engin.umich.edu/class/eecs100/

COURSE OVERVIEW

This course is an in-depth introduction to the fundamental hardware and software underpinnings of computer science and computer engineering. It is the first computing course for all those intending to be CE/CS/EE majors. We assume that you are enrolled because you want a thorough introduction to the field, whether you plan to major in CE/CS/EE or not.

The objective of EECS 100 is to remove much of the mystery of how computers work and to teach you enough programming methodology to enable you to get the computer to do some useful work for you. To this end, we will discuss how a computer works at the machine organization level, including how to program the computer in its own, built-in language, machine language. We will move on to assembly language, and then to the high-level programming language C. We expect you to come out of this course not only knowing some things about a computer's hardware and software, but how these two essential aspects of computing are related.

Note that EECS 100 is not intended to be a basic programming skills course (like EECS/CS 183 or Engineering 101) or a computer literacy course (like EECS/CS 181). For more information on the other 100-level computing courses offered at the UM, and a discussion that will help you decide which course is most appropriate for you, please read the guide available at http://www.eecs.umich.edu/eecs/undergraduate/firstcourse.pdf

The major topics covered in EECS/CS 100 include the following:

The course assignments include homework problem sets, programming projects, two midterm exams and a final exam. This is therefore not a course for the faint of heart. For the programming projects you will use the LC-2 Simulator software made available as part of this course, and the C compiler gcc, available at all UM computing facilities.

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

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

Section 001.

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). CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.umich.edu/~cs181/

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.

Course Pack: The course pack for CS181 is designed to provide you with resource material for your laboratory section and two reading assignments. Consult it while working on your projects. The course pack is available at Dollar Bill Copying, 611 Church St.

Textbook: Computer Confluence, 3rd Edition, Beekman, George and Shelley Langman Benjamin Cummings Publishing Company, Inc.

The 3rd edition includes a CDROM and a supplementary booklet on HTML. You will need both the CD and the HTML booklet.

Final course grades will be based on the total points earned for participation, homework, assignments, projects, and exams.

The two class examinations cover material discussed in lectures, including guest lectures, readings, and in labs. The first exam is on material covered up to that time. The second exam is on new material not covered in the first exam.

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

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

Section 001.

Instructor(s): Toby Teorey (teorey@umich.edu)

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). CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2000/winter/engin/eecs/183/001.nsf

Fundamental concepts and skills of programming in a high-level language. Flow of control: selection, iterations, and subprograms. Data structures: strings, arrays, records, lists, and 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: No Data Given.

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

Section 001.

Instructor(s): Stéphane Lafortune (stephane@umich.edu)

Prerequisites & Distribution: Math. 116. Credit is not granted for both CS 210 and EECS 314. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

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

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

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

Section 002.

Instructor(s): Demos Teneketzis (teneket@umich.edu)

Prerequisites & Distribution: Math. 116. Credit is not granted for both CS 210 and EECS 314. (4). (Excl). (BS). CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

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

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

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

Instructor(s): Khalil Najafi (najafi@umich.edu)

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). CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: https://coursetools.ummu.umich.edu/2000/winter/engin/eecs/211/001.nsf

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

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

Section 001.

Instructor(s): Karem Sakallah (karem@umich.edu)

Prerequisites & Distribution: CS 100. (4). (MSA). (BS). CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

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

Binary and non-binary systems, Boolean algebra digital design techniques, logic gates, logic minimization, standard combinational circuits, sequential circuits, flip-flops, and synthesis of synchronous sequential circuits, PLAs, ROMs, RAMs, arithmetic circuits, and 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. 270/EECS 270. Introduction to Logic Design.

Section 002.

Instructor(s): Karem Sakallah (karem@umich.edu)

Prerequisites & Distribution: CS 100. (4). (MSA). (BS). CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: No Homepage Submitted.

Binary and non-binary systems, Boolean algebra digital design techniques, logic gates, logic minimization, standard combinational circuits, sequential circuits, flip-flops, and synthesis of synchronous sequential circuits, PLAs, ROMs, RAMs, arithmetic circuits, and 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 Majors.

Instructor(s): Dave Kieras (kieras@umich.edu)

Prerequisites & Distribution: Math. 115 and CS 100. Two credits granted to those who have completed CS 283. (4). (MSA). (BS). CAEN lab access fee required for non-Engineering students.

Credits: (4).

Lab Fee: CAEN lab access fee required for non-Engineering students.

Course Homepage: http://www.eecs.umich.edu/courses/eecs2801/

Section 001 is intended for CS or CE majors and other majors who plan to take EECS/CS 370 and 380 in the future. This section will continue EECS/CS 100 approach by emphasizing the underlying how-it-works concepts that specialists in computer science and engineering should know. Project work will be chosen to best prepare students for later CS/CE courses and for work as a computing specialist.

Both sections (001 and 007) will cover the same major conceptual topics, will have similar workload levels, and so will be equally accepted as the EECS/CS 280 course by all EECS programs and prerequisite requirements. Students should register for the correct section based on their current or intended major in order to get the course most suited to their needs.