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 Professor Larry K. Flanigan, EECS Department, University of Michigan, Ann Arbor, MI 48109-2122, by telephone at 313-763-4079, or by electronic mail: Larry_K._Flanigan@um.cc.umich.edu.
Prerequisites to Concentration. Computer Science 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 CS (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 sicence 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.
1. Computer Science 270, 370, 381, 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 fulfill 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 1213 Angell Hall, or by calling 764-0332.
183(283)/EECS 183. Elementary Programming Concepts. (4). (NS).
198/EECS 198. Special Topics in Computer Science. (1). (Excl).
216/EECS 216. Circuit Analysis. Prior or concurrent enrollment in Math. 216. (4). (Excl).
270/EECS 270. Introduction to Logic Design. (4). (Excl).
280/EECS 280. Programming and Introductory Data Structures. Math. 115 and (CS 183 or 284 or Engineering 104, or by placement test in PASCAL). (4). (NS).
283(383)/EECS 283. Programming and Computer Systems. CS 183 or Engin. 103 or 104. Not intended for CS or Computer Engineering concentrators. (4). (NS).
284/EECS 284. Introduction to a Programming Language or System. (1). (Excl).
300/EECS 300/Math. 300. Mathematical Methods in System Analysis. Math. 216 or 316 or the equivalent. No credit granted to those who have completed or are enrolled in Math. 448. (3). (Excl).
303/EECS 303. Discrete Structures. Math. 115. (4). (Excl).
370/EECS 370. Introduction to Computer Organization. CS 270 and CS 280. (4). (Excl).
380/EECS 380. Data Structures and Algorithms. CS 280 and CS 303. (4). (NS).
381/EECS 381. Systems Programming. CS 380. (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. 417 or 513. (3). (Excl).
426/EECS 426. Fundamentals of Electronic Computer-Aided Design. CS 280 and senior standing. (3). (Excl).
442/EECS 442. Computer Vision. CS 303 and CS 380. (3). (Excl).
470/EECS 470. Computer Architecture. CS 370. (4). (Excl).
473/EECS 473. Advanced Digital System Design. EECS 373 or permission of instructor. (3). (Excl).
476/EECS 476. Foundations of Computer Science. CS 280 and 303 or equivalent. (4). (Excl).
477/EECS 477. Introduction to Algorithms. CS 380. (3). (Excl).
478/EECS 478. Switching and Sequential Systems. CS 270 and CS 303, and senior or graduate standing. (3). (Excl).
481/EECS 481. Software Engineering. CS 380. (4). (Excl).
482/EECS 482. Introduction to Operating Systems. CS 370 and 381. (4). (Excl).
483/EECS 483. Compiler Construction. CS 370 and 381. (4). (Excl).
484/EECS 484/IOE 484. Database Management Systems. CS 380 or IOE 473. (3). (Excl).
486/EECS 486. Object-Based Software Development CS 380. (3). (Excl).
487/EECS 487/IOE 478. Interactive Computer Graphics. CS 380 or IOE 373, and senior standing. (3). (Excl).
489/EECS 489. Computer Networks. CS 482. (3). (Excl).
492/EECS 492. Introduction to Artificial Intelligence. CS 380. (4). (Excl).
493/EECS 493/IOE 437. User Interface Design and Analysis. CS 481. (3). (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/IOE 511/Aero. 577. Continuous Optimization Methods. Math. 217, 417 or 419. (3). (Excl).
506/EECS 506. Computing System Evaluation. CS 183 or 280, and CS 370 and EECS 501. (3). (Excl).
542/EECS 542. Vision Processing. CS 442. II. (3). (Excl).
543/EECS 543. Knowledge-Based Computer Vision. CS 442 and CS 492. II. (3). (Excl).
545/EECS 545. Machine Learning. CS 492. (3). (Excl).
547/EECS 547. Cognitive Architecture. CS 492. (3). (Excl).
570/EECS 570. Parallel Computer Architecture. CS 470. (3). (Excl).
571/EECS 571. Principles of Real-Time Computing. CS 470 and CS 482 or permission of instructor. (3). (Excl).
572/EECS 572. Digital Computer Arithmetic. CS 470 or CS 370, and CS 478. (3). (Excl).
574/EECS 574. Theoretical Computer Science I. CS 476. (4). (Excl).
575/EECS 575. Theoretical Computer Science II. CS 574. (4). (Excl).
577/EECS 577. Reliable Computing Systems. CS 280 and 478. (3). (Excl).
579/EECS 579. Digital System Testing. CS 478. (3). (Excl).
581/EECS 581. Software Engineering Tools. CS 481 or equivalent programming experience. (3). (Excl).
582/EECS 582. Advanced Operating Systems. CS 482. (4). (Excl).
583/EECS 583. Programming Languages and Compilers. CS 476 and CS 483; or permission of instructor. (4). (Excl).
584/EECS 584. Distributed Database Concepts. CS 484. (3). (Excl).
585/EECS 585. Object-Oriented Databases. CS 484 and permission of instructor. (3). (Excl).
586/EECS 586. Design and Analysis of Algorithms. CS 380. (3). (Excl).
587. Parallel Algorithms. CS 380. (3). (Excl).
588/EECS 588/IOE 578/ME 551. Geometric Modeling. CS 487 or ME 454 or permission of instructor. (3). (Excl).
589/EECS 589. Raster Graphics-Principles and Applications. CS 487. (3). (Excl).
592/EECS 592. Advanced Artificial Intelligence. CS 492, or permission of instructor. (4). (Excl).
594/EECS 594. Introduction to Adaptive Systems. CS 303 and Math. 425. (3). (Excl).
595/EECS 595/Ling. 541. Natural Language Processing. Senior standing. (3). (Excl).
598/EECS 598. Special Topics in Electrical Engineering and Computer Science. Permission of instructor or advisor. (1-4). (Excl). May be repeated for credit.