Computer Science

3402 EECS Building
Web site:

May be elected as a departmental concentration program

The concentration program in computer science is intended to provide a student with a science program based on the field of computer science. This discipline studies phenomena and concepts arising from the use of logic, mathematics, engineering, and other sciences in understanding and manipulating information. The courses in this program are intended to provide the student with a firm foundation in both hardware/architecture and software, as well as an understanding of a variety of applications of these fundamental ideas and techniques. Through a selection of advanced electives, students have the opportunity to explore in depth areas of special interest to them, such as artificial intelligence, distributed database systems, networks, compiler construction, software engineering, or operating systems. Students completing this concentration successfully will be in a good position to enter the workplace or continue on to graduate programs in computer science, computer engineering, business administration, law, or a variety of other disciplines which many of our graduates have already pursued.

Questions about the concentration program in Computer Science should be addressed to:

Undergraduate Counseling Office
EECS Department
University of Michigan
Ann Arbor, MI 48109-2122
telephone: (734) 763-2305
electronic mail:
Web site:

Prerequisites to Concentration. Computer Science 100, 280, 303, and 380; Mathematics 115, 116, and 215, and two courses in natural science (8 credits), designated (NS). The NS designated courses must be outside Computer Science (Division 353), Mathematics (Division 428), Statistics (Division 489) and University Courses (Division 495). To be considered for admission to the concentration, all pre-concentration courses must be completed with no grade below C (2.0), and in addition, the six listed computer science and mathematics courses must be completed with grades which average at least B- (2.7). Students not receiving these grades in any of these preconcentration courses are advised to repeat the course before continuing in that sequence. You are declared into the concentration by a Computer Science advisor ONLY, and only when all of these courses (or their equivalent) have been completed.

Concentration Program.

  1. Computer Science 270, 370, 476, and 482 or 483.

  2. At least one of Math. 416, CS 477, or Math. 425.

  3. In addition, each student must complete a minimum of four CS or CS-related courses chosen from a Department-approved list. The concentration total will be approximately 37 credits. Courses selected to meet a concentration in Computer Science are chosen in consultation with and must be approved by a concentration advisor. Grades of C or better must be achieved in courses taken to satisfy the concentration requirements.

Advising. The concentration program in Computer Science is structured in such a way that only those students with defined, mature academic interests in Computer Science should elect it. Appointments are scheduled at the Academic Advising Center, 1255 Angell Hall, or by calling 764-0332.

Courses in Computer Science (Division 353)

100/EECS 100. Introduction to Computing Systems. (4). (MSA). (BS).

181/EECS 181. Introduction to Computer Systems. Credit is granted for only one course among CS 181, Engin. 103, and Engin. 104. I and II. (4). (Excl). (BS).

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. I, II, and IIIa. (4). (MSA). (BS).

198/EECS 198. Special Topics in Computer Science. (1). (Excl).

210/EECS 210. Electrical Engineering I. Math. 116. Credit is not granted for both CS 210 and EECS 314. (4). (Excl). (BS).

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

270/EECS 270. Introduction to Logic Design. CS 100. I, II, and IIIa. (4). (MSA). (BS).

280/EECS 280. Programming and Introductory Data Structures. Math. 115 and CS 100. Two credits granted to those who have completed CS 283. I and II. (4). (MSA). (BS).

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. I and II. (1). (Excl). (BS).

303/EECS 303. Discrete Structures. Math. 115. I and II. (4). (MSA). (BS).

370/EECS 370. Introduction to Computer Organization. CS 270 and CS 280. I and II. (4). (Excl). (BS).

380/EECS 380. Data Structures and Algorithms. CS 280 and CS 303. I and II. (4). (NS). (BS).

398/EECS 398. Special Topics. Permission of instructor. (1-4). (Excl).

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. I and II. (3). (Excl). (BS).

442/EECS 442. Computer Vision. CS 380. I. (4). (Excl). (BS).

470/EECS 470. Computer Architecture. CS 370. I or II. (4). (Excl). (BS).

473/EECS 473. Advanced Digital System Design. EECS 373. II. (3). (Excl). (BS).

476/EECS 476. Foundations of Computer Science. CS 280 and 303. I and II. (4). (Excl). (BS).

477/EECS 477. Introduction to Algorithms. CS 380. (4). (Excl). (BS).

478/EECS 478. Logic Circuit Synthesis and Optimization. CS 270 and CS 303, and senior or graduate standing. I and II. (4). (Excl). (BS).

481/EECS 481. Software Engineering. CS 380. I and II. (4). (Excl). (BS).

482/EECS 482. Introduction to Operating Systems. CS 370 and 380. I and II. (4). (Excl). (BS).

483/EECS 483. Compiler Construction. CS 380 and 476. I and II. (4). (Excl). (BS).

484/EECS 484/IOE 484. Database Management Systems. CS 380 or IOE 373. I and II. (4). (Excl). (BS).

486/EECS 486. Object-Oriented Software Development. CS 380. II. (4). (Excl). (BS).

487/EECS 487. Interactive Computer Graphics. CS 380 and senior standing. I and II. (4; 3 in the half-term). (Excl). (BS).

489/EECS 489. Computer Networks. CS 482. II. (4). (Excl). (BS).

492/EECS 492. Introduction to Artificial Intelligence. CS 380. I and II. (4). (Excl). (BS).

493/EECS 493. User Interface Design and Analysis. CS 481. I. (3). (Excl). (BS).

494/EECS 494. Computer Game Design and Development. CS 380. (4). (Excl).

500. Special Study. Graduate or undergraduate concentration in Computer Science; and permission of instructor. (1-6). (Excl). (INDEPENDENT). May be repeated for credit.

505/EECS 505/Math. 562/Aero. 577/IOE 511. Continuous Optimization Methods. Math. 217, 417 or 419. I. (3). (Excl). (BS).

506/EECS 506. Computing System Evaluation. CS 183 or 280, and CS 370 and EECS 501. II, odd years. (3). (Excl). (BS).

542/EECS 542. Vision Processing. CS 442. II in odd years. (3). (Excl). (BS).

543/EECS 543. Knowledge-Based Systems. CS 492 and permission of instructor. II in even years. (3). (Excl). (BS).

545/EECS 545. Machine Learning. CS 492. II, odd years. (3). (Excl). (BS).

547/EECS 547. Cognitive Architecture. CS 492. II. (3). (Excl). (BS).

570/EECS 570. Parallel Computer Architecture. CS 470. II. (3). (Excl). (BS).

571/EECS 571. Principles of Real-Time Computing. CS 470 and CS 482. II. (3). (Excl). (BS).

574/EECS 574. Theoretical Computer Science I. CS 476. I. (4). (Excl). (BS).

575/EECS 575. Theoretical Computer Science II. CS 574. II. (4). (Excl). (BS).

577/EECS 577. Reliable Computing Systems. CS 280 and 478. I. (3). (Excl). (BS).

579/EECS 579. Digital System Testing. CS 478. II. (3). (Excl). (BS).

581/EECS 581. Software Engineering Tools. CS 481 or equivalent programming experience. II. (3). (Excl). (BS).

582/EECS 582. Advanced Operating Systems. CS 482. II. (4). (Excl). (BS).

583/EECS 583. Programming Languages. CS 476 and CS 483. I. (4). (Excl). (BS).

584/EECS 584. Advanced Database Systems. CS 484. II. (3). (Excl). (BS).

586/EECS 586. Design and Analysis of Algorithms. CS 380. II. (3). (Excl). (BS).

588/EECS 588/IOE 578/ME 551. Geometric Modeling. CS 487 or ME 454. II. (3). (Excl). (BS).

589/EECS 589. Advanced Computer Networks. CS 489. I. (4). (Excl). (BS).

592/EECS 592. Advanced Artificial Intelligence. CS 492. I and II. (4). (Excl). (BS).

594/EECS 594. Introduction to Adaptive Systems. CS 303 and Math. 425. I. (3). (Excl). (BS).

598/EECS 598. Special Topics in Electrical Engineering and Computer Science. Permission of instructor or advisor. I, II, III, IIIa, and IIIb. (1-4). (Excl). (BS). May be repeated for credit.

This page maintained by