Courses for Fall 1997

**MCS 401 Computer Algorithms I***Time=10MWF Room=311AH Call=63938 Instructor=Glenn K. Manacher (Section Closed)**Time=02MWF Room=212TH Call=09809 Instructor=TBA from EECS (Section Closed)**Catalog description:*Design and analysis of computer algorithms; divide and conquer, dynamic programming, greedy method, backtracking; algorithms for sorting, searching, graph computations, pattern matching; and NP-complete problems. Same as EECS 460.*Prerequisites:*Grade of C or better in MCS 360 and Stat 381; or EECS 360. Undergraduate students must register for 3 hours; graduate students for 4 hours.

*Click Here for EECS 460 (MCS 401) Homepage*

**MCS 415 Programming Language Design***Time=11MWF Room=313LH Call=63952 Instructor=D. Reed, EECS (Section Closed)**Catalog description:*Definition, design and implementation of programming languages; syntactic and semantic description; variable bindings, control and data structures; parsing, code generation, optimization; exception handling; and data abstraction. Same as EECS 476.*Prerequisites:*MCS 261 and MCS 270 or EECS 370 Undergraduate students must register for 3 hours; graduate students for 4 hours.

*Click Here for EECS 476 (MCS 415) Homepage*

**MCS 421 Combinatorics***Time=11MWF Room=303AH Call=63969 Instructor=Martin C. Tangora**Catalog description:*The pigeonhole principle, permutations and combinations, generating permutations and combinations, binomial coefficients, inclusion-exclusion principle, recurrence relations and generating functions, special counting sequences, Polya theory of counting.*Prerequisites:*Grade of C or better in MCS 261; and Math 310 or 320 or 330. Undergraduate students must register for 3 hours; graduate students for 4 hours.

*Click Here for MCS 421 Syllabus page*

**MCS 423 Graph Theory***Time=12MWF Room=308TH Call=63974 Instructor=Vera Pless**(Note: Time Change from 1pm, 4/8/97; Later: Room Change)**Catalog description:*Introduction to formal languages; relations between grammars and automata; elements of the theory of computable functions.

Expanded Title: Combinatorial Graph Theory.*Prerequisites:*Grade of C or better in MCS 261; and Math 310 or 320 or 330. Undergraduate students must register for 3 hours; graduate students for 4 hours.

*Click Here for MCS 423 Syllabus page*

**CANCELLED: MCS 441 Theory of Computation I***Time=12MWF Room=303AH Call=63983 Instructor=None (Section Dropped)**Catalog description:*Introduction to formal languages; relations between grammars and automata; elements of the theory of computable functions.*Prerequisites:*Grade of C or better in MCS 261. Undergraduate students must register for 3 hours; graduate students for 4 hours.

**MCS 494 Object-Oriented Languages****(Special Topics in Computer Science)***Time=10MWF Room=303AH Call=64014 Instructor=Jeffrey S. Leon**Course description:*Introduction to object-oriented programming using C++. Objects and classes. Data abstraction. Operator and function overloading. Member functions; constructors, destructors, and conversion operators. Templates. Introduction to inheritance and virtual functions.*Prerequisites:*MCS 360 (which might be taken concurrently by a good student) and a reasonably good knowledge of C.

**MCS 503 Mathematical Methods for Algorithm Analysis***Time=9MWF Room=215TH Call=02739 Instructor=Uri Peled**Course description:*Mathematical techniques useful for the analysis of algorithms, with applications to analyze popular algorithms. Analysis of algorithms, recurrences, generating functions, tree algorithms, more if time permits.*Prerequisites:*MCS 421 Combinatorial Theory.

*Click Here for MCS 503 Syllabus page*

**CANCELLED: MCS 542 Theory of Computation II***Time=11MWF Room=321TH Call=02742 Instructor=None (Section Dropped)**Catalog description:*Undecidability and computational complexity. Complexity measures for Turing Machines, random access machines, Boolean circuits, Boolean logic, Predicate calculus, basic concepts of automated theorem proving.*Prerequisites:*MCS 441 Theory of Computation I.

*Click Here for MCS 542 Syllabus page*

**MCS 572 Introduction to Supercomputing***Time=2MWF Room=320TH Call=64119 Instructor=Floyd B. Hanson**Catalog description:*Introduction to supercomputing on vector, parallel and massively parallel processors; architectural comparisons, parallel algorithms, vectorization techniques, parallelization techniques, actual implementation on real machines (Crays, Convex Exemplar(borg) and others).*Prerequisites:*Experience in Numerical Methods or consent of the instructor.*Core course:*High Performance Computing Preliminary Examination.

*Click Here for MCS 572 Supercomputing Homepage*

**MCS 590 Math and Information Sciences for Industry (MISI) Workshop****(Special Topics in Computer Science)***Time=2F Room=700SEO Call=64153 Instructor=Robert L. Grossman (Time/Room Change)**Description:*This course is centered around one or more "industrial" problems. The goal of the course is to provide an opportunity for students to use mathematics to work on problems arising from industrial applications. The course will cover: mathematical modeling, problem formulation, problem analysis, problem solution, developing software to implement the solution, validating the software, analyzing the results, documenting the problem and its solution, and communicating the results.*Prerequisites:*Prior coursework in algorithms, applied mathematics, and C programming, or consent of instructor.*Core course:*Proposed Industrial Mathematics (MISI) Program.

*Click Here for MCS 590 (Grossman) Homepage*

*Click Here for MISI Program Homepage*

Email Comments or Questions to Professor Hanson