Courses in Computer Science (Division 353)

181/EECS 181. Introduction to Computer Systems. No credit granted to those who have completed CS 280 or 283 or Engr. 103. (4). (NS).

Introduces students to computers. Focuses on software, hardware, and social impact of computers. Elementary programming concepts, software packages and applications, word processing, data communications, information management, input-output, data entry, computer hardware components and storage devices, microcomputers, and ethics in computing. Programming assignments using a personal computer. Term paper required.

280(270)/EECS 280. Computer Science I. Math. 115 or equivalent. Credit is granted for only one course from among CS 280 and 283. (4). (NS).

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.

283(274)/EECS 283. Elementary Programming Concepts. Math. 105 or the equivalent. Credit is granted for only one course from among CS 280 and 283. (4). (NS).

Introduction to a high level programming language, top-down analysis, and structured programming. Basic searching and sorting techniques. No previous experience in computer or programming is assumed. Students will write and debug several computer programs. Not intended for computer science or computer engineering majors.

380(370)/EECS 380. Computer Science II. CS 280. (4). (NS).

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 0-notation. Complexity. Top-down program development: design, implementation, testing modularity. Several program assignments.

381(271)/EECS 381. Assembly Language Programming. CS 280 or CS 283. (3). (NS).

Machine structure and organization, data representation, memory addressing methods, use of registers, bit manipulation, integer and floating point arithmetic, program linking and subroutines, macro-instructions, program debugging, assemblers and loaders. Students write several programs in IBM 370 Assembler language. Three one-hour lectures and a one-hour discussion per week.

383(374)/EECS 383. Programming and Computer Systems. CS 283 or the equivalent. (4). (NS).

Advanced topics in Pascal, including the implementation of linked lists, trees, and hashing. Searching and sorting techniques. Assembly language and computer architecture. Selected topics in programming language theory. Students will write several programs in Pascal and assembly language.

476(400)/EECS 476. Foundations of Computer Science. CS 303 or Math. 312 or permission of instructor. (3). (Excl).

An introduction to computation theory: finite automata, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions, and computational complexity.

481(478)/EECS 481. Software Engineering. CS 380 or 480, and senior standing. (4). (Excl).

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 in usually required.

482(473)/EECS 482. Operating Systems. CS 380 and 381, or equivalent. (4). (Excl).

Operating system functions and implementations: multitasking; 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 multitask environment.

483/EECS 483. Compiler Construction. CS 380 or 480. (4). (Excl).

Introduction to compiling techniques including parsing algorithms, semantic processing, and optimization. Students implement a compiler for a substantial programming language using a compiler generating system. Honor students may take either 483 or 583, but not both.

484(523). Database Management Systems. CS 380 or 480. (3). (Excl).

Concepts and methods in the definition and management of large integrated data bases for organizational information systems. Functions and objectives of existing file and data management systems will be considered and methods of analyzing proposals for new data management software will be studied. Additional topics will include data base administration, data base design, and data security problems.

485(472)/EECS 485. Principles of Programming Languages. CS 380 or 480, and CS 303 or Math 312. (4). (Excl).

Principles of programming languages including Algol-like languages, logic programming and an introduction to program verification and semantics.

492/EECS 492. Artificial Intelligence for Undergraduates. CS 480 or permission of instructor. (3). (Excl).

Basic artificial intelligence methods using LISP. Topics covered include search, rule-based systems, logic, constraint satisfaction, and knowledge representation.

506(564)/EECS 506. Computing System Evaluation. CS 280 or 283; EECS 370 and EECS 501. (3). (Excl).

Theory and application of analytic methods for evaluating the performance of reliability of computing systems. Measures of performance, reliability, and performability. Reliability evaluation: classification and representation of faults, stochastic process models, coherent systems. Performance evaluation: Markovian queueing models, networks of queues. Unified performance-reliability evaluation.

574(520)/EECS 574. Theoretical Computer Science I. Graduate standing in EECS or permission of the instructor. (4). (Excl).

Formal grammars, recursive functions, logic, complexity theory.

592(565)/EECS 592. Artificial Intelligence. EECS 492, graduate standing or CS Honors undergraduate. (4). (Excl).

Advanced topics in artificial intelligence. Issues in knowledge representation, knowledge based systems, problem solving, planning and other topics will be discussed. Students will work on several projects.

593(525). The Human as an Information Processing System. Graduate standing and permission of instructor. (3). (Excl).

Basic human information handling processes such as perception, learning cognitive map information, and problem solving are analyzed in an evolutionary context. Emphasis is largely theoretical. Includes the application to the human-computer interface of the principles that emerge.

598(501-509)/EECS 598. Special Topics in Computer Science. Permission of instructor. (2-4). (Excl). May be repeated for credit.

Topics of current interest in electrical engineering and computer science.


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

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.