96-97 LS&A Bulletin

Computer Science

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:

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.

Courses in Computer Science (Division 353)


100/EECS 100. Introduction to Computing Systems. (4). (Excl). (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. I, II, and IIIa. (4). (NS). (BS).

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

216/EECS 216. Circuit Analysis. Prior or concurrent enrollment in Math. 215. I, II, and IIIa. (4). (Excl). (BS).

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

280/EECS 280. Programming and Introductory Data Structures. Math. 115 and (CS 183 or 284 or Engineering 104, or EECS 100). Two credits granted to those who have completed CS 283. I and II. (4). (NS). (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). (Excl). (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).

426/EECS 426. Fundamentals of Electronic Computer-Aided Design. CS 280 and senior standing. I. (3). (Excl). (BS).

442/EECS 442. Computer Vision. CS 303 and CS 380. I. (3). (Excl). (BS).

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

473/EECS 473. Advanced Digital System Design. EECS 373 or permission of instructor. II. (3). (Excl). (BS).

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

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

478/EECS 478. Switching and Sequential Systems. CS 270 and CS 303, and senior or graduate standing. I and II. (3). (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. (3). (Excl). (BS).

486/EECS 486. Object-Based Software Development. CS 380. II. (3). (Excl). (BS).

487/EECS 487/IOE 478. Interactive Computer Graphics. CS 380 or IOE 373, and senior standing. I and II. (3). (Excl). (BS).

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

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

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

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

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 or permission of instructor. 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).

585/EECS 585. Object-Oriented Databases. CS 484 and permission of instructor. I. (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 or permission of instructor. II. (3). (Excl). (BS).

589/EECS 589. Raster Graphics-Principles and Applications. CS 487. I. (3). (Excl). (BS).

592/EECS 592. Advanced Artificial Intelligence. CS 492, or permission of instructor. 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.