The Doctoral Program in

Computer Science

at Western Michigan University




Version: 2000 January 26

The information presented here is accurate as of its version date. Program changes may have occurred since then. If you have questions please contact the department or the Graduate College.


THE DOCTORAL PROGRAM IN COMPUTER SCIENCE at Western Michigan University is designed to develop computer scientists with research expertise in computer science. Specific areas of emphasis include: algorithmic complexity theory, artificial intelligence, computational chemistry, computational geometry, computer architecture, computer graphics, computer networking, computer system performance, cooperative problem solving, data warehousing and mining, distributed and mobile data bases, evolutionary computation, expert systems, fault-tolerant computing, formal specifications, graph algorithms, hardware and software codesign, human-computer interaction and visualization, knowledge-based systems, language and automata theory, logic programming, mathematical and computer modeling, multimedia databases and systems, neural networks, parallel and sequential algorithms, pattern recognition and image processing, scientific computing and numerical analysis, simulation, and software engineering. The program also permits students to acquire expertise in closely related fields such as computer engineering and mathematics.

Students completing the program are typically well qualified for teaching and research positions with colleges and universities as well as with national and international industries and laboratories.

The doctoral program is designed to allow a full-time student entering with a Master of Science in Computer Science to complete all degree requirements within three years. However, it is not uncommon for doctoral programs to take somewhat longer.


The Department of Computer Science

The Department of Computer Science at Western Michigan University continually adapts its programs to keep pace with the rapidly changing field of computer science and offers a variety of courses and programs designed to meet the needs of today's students and professionals. In addition to the Doctor of Philosophy in Computer Science, the department offers a master's degree program and two undergraduate major programs, one of which is accredited by the Computing Sciences Accreditation Board.


The faculty

The faculty has extensive professional experience in both industry and academe and pursues diverse teaching and research interests.

Alfred Boals

Professor of computer science
Ph.D. (mathematics), Michigan State University, 1967

Professor Boals joined WMU in 1985. Prior experience includes service on the faculties of the University of Iowa and Oregon State University, as a member of the Institute for Advanced Study in Princeton NJ, and as a systems analyst with General Motors Corporation. His research interests include: design and analysis of graph algorithms, parallel computations, distributed computing systems, and fault tolerant network design.

Elise de Doncker

Professor of computer science
Ph.D. (mathematics), Katholieke Universiteit Leuven (Belgium), 1980

Professor de Doncker joined WMU in 1982. Prior experience includes service on the faculty at Delft University. Her research interests include: the design and analysis of parallel algorithms, distributed computing, scientific parallel computations, and numerical analysis.

Ajay Gupta

Professor of computer science
Chair
Ph.D. (computer science), Purdue University, 1989

Professor Gupta joined WMU in 1989. His research interests include: client/server computations, distributed databases, distributed computing, networks, evolutionary computation, scientific computing, design and analysis of parallel and distributed algorithms, embedded systems, and formal specification.

Donna Kaminski

Associate professor of computer science
Ph.D. (sociology), Western Michigan University, 1978

Professor Kaminski joined WMU in 1983. Prior experience includes service on the faculty of Indiana University and programmer/analyst for Foremost Insurance. Her research interests are in the areas of the human-computer interface and knowledge-based systems.

John Kapenga

Associate professor of computer science
Ph.D. (mathematics), Western Michigan University, 1986

Professor Kapenga joined WMU in 1981. His research interests include: parallel computation, numerical analysis, and computer graphics.

Karlis Kaugars

Assistant professor of computer science
Ph.D. (computer science), New Mexico State University, 1998

Professor Kaugars joined WMU in 1998. Prior experience includes service as manager of computer systems for the Department of Computer Science and computer specialist II, both at New Mexico State University. His research interests are in the areas of human-computer interaction and visualization. Current projects include presentation of program analysis data, information retrieval result display, time domain process presentation, and the presentation and analysis of large system state information.

Mark Kerstetter

Associate professor of computer science
Ph.D. (computer science), Northwestern University, 1977

Professor Kerstetter joined WMU in 1977. Prior experience includes service on the faculty of Northwestern University and on the staff of the National Security Agency. His research interests are in the area of software engineering.

Dionysios Kountanis

Associate professor of computer science
Ph.D. (computer science), University of Pennsylvania, 1977

Professor Kountanis joined WMU in 1978. Prior experience includes service on the faculties of Rutgers University and Temple University and as a systems programmer for Dun and Bradstreet. His research interests include: graph algorithms, computational geometry, and computer architectures.

Mukesh Mohania

Assistant professor of computer science
Ph.D. (computer science and engineering), Indian Institute of Technology Bombay, 1995

Professor Mohania joined WMU in 1999. Prior experience includes faculty and research positions at the University of South Australia, the University of Melbourne, and the College of Technology at Pantnagar, India. His research interests include: distributed and mobile databases, data warehousing and mining, cooperative problem solving, artificial intelligence, and logic programming.

Dalia Motzkin

Professor of computer science
Sc.D. (mathematics and computer science), Technion (Haifa, Israel), 1974

Professor Motzkin joined WMU in 1979. Prior experience includes faculty positions at Wellesley College, Technion, and the University of Haifa where she was chair of the Computer Science Unit. She has also held technical positions with the Institute for Computer Research, University of Chicago, Philco Corporation, Burroughs Corporation, and Pennsylvania Research Associates. Her research interests include: databases and data structures, especially modeling and optimization of computer performance, and multi-media databases.

J. Donald Nelson

Associate professor of computer science
Ph.D. (mathematics), University of Kentucky, 1970

Professor Nelson joined WMU in 1970. He served as chair of the Department of Computer Science from 1984 to 1998. His primary research interest is in graph algorithms.

Thomas F. Piatkowski

Professor of computer science and electrical and computer engineering
Ph.D. (electrical engineering), University of Michigan, 1963

Professor Piatkowski joined WMU in 1990. Prior experience includes faculty positions at Tuskegee Institute, The Thayer School of Engineering at Dartmouth College, and Iowa State University. He has served as chair of the Department of Computer Science at the State University of New York -- Binghamton and chair of Electrical and Computer Engineering at Western Michigan University. He was with IBM as an advisory engineer where he served as technical director in the formal specification of IBM's Systems Network Architecture; he was manager of communications systems architecture with Burroughs Corporation. His research interests include: formal methods applied to computer system analysis and design, software engineering, data communications, and computer networking.

Ben Pinkowski

Professor of computer science
Ph.D. (zoology), Wayne State University, 1974

Professor Pinkowski joined WMU in 1985. Prior experience includes faculty positions at the University of Nebraska and Minot State University and statistical consultant with NUS Corporation. His research interests include: pattern recognition and image processing, computer networks and network computing, and simulation.

Robert Trenary

Associate professor of computer science
Ph.D. (computer science), Wayne State University, 1987

Professor Trenary joined WMU in 1981. His research interests include: neural networks, expert systems, database applications, and multimedia applications (including computer-based full motion video).

Kenneth Williams

Professor of computer science
Ph.D. (computer science), Michigan State University, 1973

Professor Williams joined WMU in 1973. He served as the first chair of the Department of Computer Science from 1979 to 1984. His research interests include: theoretical computer science, applications and analysis of graph algorithms, language and automata theory, as well as the general field of computing algorithms and their complexity.

Li Yang

Assistant professor of computer science
Ph.D. (computer science), University of Science and Technology of China (Hefei, China), 1992

Professor Yang joined WMU in 1999. Prior experience includes service on the faculty of the University of Science and Technology of China in Hefei. He has also held technical positions at the Institute of Systems Science and the Institute of High Performance Computing, both at the National University of Singapore. His research interests include: multimedia database and data modeling, content-based indexing and retrieval, agent-based multimedia collaboration, visual data mining, information visualization, multimedia data mining, and structural pattern recognition.


Special facilities

In support of its research and instructional programs, the department maintains networks of SUN and PC workstations and a 128-node nCUBE-2 parallel computer.

WMU's University Computing Services provides a wide-spectrum of computation facilities to faculty and students for instruction and research. The primary academic time-sharing system runs OpenVMS on the Digital Alpha architecture; a UNIX server running Solaris is provided; and a network of SUN and PC workstations is available.

Computers are extensively networked within the University and to the Internet.


The application and admission process

An applicant uses one of three processes to apply to WMU. Which process an applicant uses depends on convenience and/or nationality and residency status.

U.S. citizen and resident alien application

U.S. citizens and resident aliens may apply using one of the following two processes:

Self-managed application process. Student takes responsibility for gathering all admission materials and submitting these materials to the appropriate office before the published admission deadlines. Instructions for completing the application form and submitting materials are detailed in the Graduate Self-Managed Application. This form is available from the Office of Admissions and Orientation and from the Department of Computer Science.


On-line application process.


Step 1: Student completes the online application available on http://www.wmich.edu/admi/gradapp. The site provides instructions for completing the online application and submitting Step 1 materials.
Step 2: Student provides to the department three letters of reference from persons able to assess the student's qualifications for doctoral-level study and likelihood of success. The student and referees should use the forms and procedures available from the department.


International student application

Graduate application and admission for international students is handled through the University's Office of International Student Services which assists students in compiling their application files.

Applications for admission and instructions are available from the Office of International Student Services.


Admission requirements

A successful applicant to the doctoral program in computer science must satisfy:


All of the general admission criteria identified in the Graduate Catalog of Western Michigan University, and


the following departmental criteria:


Submission of transcripts of prior education.


Applicant should have earned or expect to earn a master's degree in computer science. An applicant with a master's degree in electrical or computer engineering, mathematics, or a related field with at least a 3.5 grade point average (on a 4.0 scale) in master's-level computer science courses will also be considered.


An outstanding student who has not completed a master's degree but who has met all other entrance requirements may be considered for admission to the Ph.D. program.


Submission of the results of the verbal, analytical, quantitative, and computer science area portions of the Graduate Record Examination. A student with a master's degree in an area other than computer science may substitute the specialty examination in that area.


Submission of three letters of reference from persons able to assess the student's qualifications for doctoral-level study and likelihood of success; the student and referees should use the forms and procedures available from the department.


Submission of a resume which includes a description of academic background and professional experience.


Submission of an essay describing the applicant's academic and professional objectives.


For international students, submission of the TOEFL examination result.



Financial assistance

Students accepted into the doctoral program may apply for one of the department's numerous graduate teaching and research assistantships. In addition, advanced Ph.D. students may apply for one of a limited number of doctoral associateships.

Graduate internship opportunities with local industries are also available.

Applications for teaching and research assistantships should be sent directly to the Department of Computer Science. The forms and instructions for applying for financial assistance can be obtained from the department and at the departmental website.

Information about non-departmental assistantships and fellowships, tuition remission, special assistance for minority graduate students, general research funds, and tuition grants is available from the Graduate College.

Information about student loans and other federal, state, and University need-based financial aid programs is available from the Office of Student Financial Aid and Scholarships.


Deadlines

Admission application

Applications to the doctoral program are considered year-round as they are received.

Complete applications should be received by:

July 15 for fall admission
November 15 for winter admission
March 15 for spring admission
May 15 for summer admission


Financial assistance application

An application for financial assistance must be preceded or accompanied by an application for admission.

Most of the departmental assistantships are awarded on an annual basis to begin in the fall session. Applications for departmental financial assistance (a teaching or research assistantship, or a doctoral associateship) should be received by the department by:

March 15 for first consideration for fall appointment
November 15 for first consideration for winter appointment

Late applications will be considered as funds are available.

Applications for most university fall financial assistance programs should be received by the University by February 15.


Program requirements

The plan of study allows for considerable variety of emphasis; students can take advantage of the strengths of the department in matching their interests in professional development.

General requirements for a doctoral degree

A successful candidate for the Ph.D. in computer science is responsible for all the general requirements for a doctoral degree as stated in the Graduate Catalog. The remainder of this section restates some of the general requirements and includes additional requirements specific to the doctoral program in computer science.

Prerequisite requirements

A student having prerequisite requirements as a condition of admission must complete all prerequisites before being considered to have entered the doctoral program.

Credit hours

The Ph.D. in computer science requires beyond the student's master's degree the completion of at least 30 credit hours of course work and 12-24 hours of dissertation credits. This implies a total of at least 72 credit hours of graduate work.

Qualifying examination

Before admission to candidacy for the doctoral degree, the student must pass a general qualifying examination in Computer Science. Students admitted with a Master's degree must take one qualifying examination no later than the first time offered after completion of 15 credit hours, and must take a second examination no later than the first time offered after completion of 30 credit hours. All students must take all their qualifying examinations no later than the first time offered after completion of 45 credit hours. A student has one opportunity to repeat the qualifying examination.

There are five examination topic areas in two categories as follows:
Systems
Computer architecture (CS 525, CS 625)
Compiler design (CS 581, CS 681)
Operating systems (CS 554, CS 655)
Theory
Design and analysis of algorithms (CS 531, CS 631)
Theory of computation (CS 580, CS 680)

The student must select three of the five areas for his or her qualifying examination with at least one exam from each category. The student will have the opportunity to repeat a portion of the qualifying examination once, but may not change the selected areas. The department will determine what area(s) of the examination, if any, the student must repeat.


Preliminary examination

Each doctoral candidate must obtain approval from his or her dissertation committee for a dissertation topic and research plan. This approval process is called the preliminary examination and is structured by each dissertation committee to fit each candidate's program. The preliminary examination must be completed within one year after passing the qualifying examination and at least one year in advance of the dissertation defense. A candidate has one opportunity to repeat the preliminary examination.

Language requirements and research tools

Each Ph.D. candidate must obtain departmental approval and demonstrate mastery of two of the

following three research skills:

Math 362 Probability, or
Math 364 Statistical Methods

Dissertation and doctoral dissertation committee

A doctoral dissertation, which is the culmination of an original and substantive research effort by the candidate, must be completed and publicly defended. This study is done under the supervision of a dissertation director and dissertation committee. A dissertation director is appointed by the department, typically within the candidate's first two years in the doctoral program and based on the candidate's interests.

The doctoral dissertation committee is appointed by the Graduate College based on the petition of the candidate and the approval and recommendation of the department chair. The doctoral dissertation committee is comprised of the dissertation director and at least two other members of the graduate faculty, at least one of whom shall be from outside the department.

Committee members facilitate and guide the candidate's academic and research development.

Before a candidate is awarded the Ph.D. degree, each member of the doctoral dissertation committee must approve the dissertation. The completed dissertation is presented by the candidate at a public seminar and oral defense.


Graduate courses

Required courses

The following courses are required of each student before completion of the Ph.D. program:
CS 525 Computer Architecture
CS 526 Parallel Computations I
CS 554 Operating Systems
CS 581 Compiler Design and Implementation
CS 625 Advanced Computer Architecture
CS 626 Parallel Computations II
CS 631 Advanced Data Structures
CS 632 Analysis of Computer Algorithms
CS 655 Advanced Operating Systems
CS 680 Mathematical Theory of Formal Languages
CS 681 Compiling Theory and Practice
CS 730 Doctoral Dissertation (12-24 hours)

In addition:

Each doctoral student during the student's first year in the program will be required to complete 2-3 credit hours of CS 735 Graduate Research accompanied by the production of a technical report.


Each doctoral student will be required to complete two computer science seminar courses for 1-3 credit hours each, with at least one to be taken during the first year in the program.


Elective courses

The following courses may serve as elective courses:
CS 518 Introduction to Computer Modeling and Simulation
CS 527 Theory of Computer Graphics
CS 530 Artificial Neural Systems
CS 531 Design and Analysis of Algorithms
CS 543 Principles of Database Management Systems
CS 555 Computer Networks and Distributed Systems
CS 580 Theory of Computation
CS 582 Artificial Intelligence
CS 595 Advanced Topics in Computer Science
CS 599 Independent Study in Computer Science
CS 603 Studies in Computer Science
CS 627 Computer Graphics II
CS 628 Parallel Scientific Computations
CS 632 Analysis of Computer Algorithms
CS 633 Computational Geometry
CS 634 Combinatorial Optimization
CS 643 Advanced Database Management Systems
CS 660 Software Engineering I: Formal Specifications of Software Systems
CS 661 Software Engineering II: Verification and Validation of Software Systems
CS 672 Pattern Recognition
CS 679 Theory of Computation II
CS 682 Advanced Artificial Intelligence
CS 685 Foundations of System Specification
CS 691 Seminar in Computer Science
CS 699 Research Seminar
CS 710 Independent Research
CS 725 Doctoral Research Seminar
MATH 507 Numerical Analysis I
MATH 567 Statistical Design and Analysis of Experiments
MATH 607 Numerical Analysis II
MATH 637 Numerical Linear Algebra
MATH 640 Graph Theory I
MATH 641 Graph Theory II

Other courses on petition of the student and approval by the department.


Advising

Upon being accepted into the doctoral program, each student is assigned an initial advisor from the graduate faculty who is available to provide information and guidance on the program. Later, each student will be assigned a more permanent faculty advisor based on student and faculty interests.


Selected course descriptions

Courses open to upper class and graduate students

CS 518Introduction to Computer Modeling and Simulation3 hrs.
This course provides an overview of both model development and computer simulation. A methodology is introduced which is generally applicable to simulation projects. The relationships between real systems, models and simulation are presented, and the concept of experimental frames is discussed. General purpose simulation language (e.g., Simscript, GPSS, CSMP, Simula) and the formalisms they support are presented. An introduction to random variables and elementary frequency distributions is provided. Simulation as a tool for exploring ill-defined systems will also be discussed. Several small programs and a simulation project will be assigned to the student.
Prerequisites: CS 331 and a course in probability or statistics

CS 525Computer Architecture3 hrs.
Covers general topics in computer architecture, memory systems design and evaluation, pipeline design techniques, RISC architectures, vector computers, and VLSI systems architecture.
Prerequisites: ECE 250, CS 223 or ECE 251, and CS 331

CS 526Parallel Computations I 3 hrs.
Covers architecture, synchronization, and communication aspects of parallel and distributed systems. This course will focus on the design and analysis of algorithms which have a prototype treatment on current machines. These algorithms may include parallel sorting, combinatorial search, graph search and traversal, applications in graphics, 2-d finite differences, 2-d finite element techniques, matrix algorithms, and the Fast Fourier Transform.
Prerequisite: CS 331

CS 527Theory of Computer Graphics3 hr s.
A first course in the design of interactive computer graphics systems. Currently available hardware and software systems are described. Emphasis is on theoretical considerations in the design of interactive computer graphics software systems.
Prerequisites: CS 331 and MATH 230

CS 530Artificial Neural Systems3 hrs.
An introduction to neural net concepts, algorithms, and applications. A history of neural nets will be presented along with some discussion of models of biological neural systems. The salient features of a neural net (architecture, activation functions, weighting scheme) will be characterized. Standard algorithms will be presented including hopfield nets, linear associative models, bidirectional associative memories, and adaptive resonance models. The student will use neural net software to experiment with standard models and to develop an application for a project.
Prerequisite: CS 331 An introductory statistics course is recommended.

CS 531Design and Analysis of Algorithms3 hrs.
A continuation of the study of data structures and algorithms. It provides a theoretical foundation in designing algorithms. The focus is on the advanced analysis of algorithms and on how the selections of different data structures affect the performance of algorithms. Algorithmic paradigms such as divide and conquer, greedy method, dynamic programming, backtracking and branch, and bound are covered. B-trees and 2-3 search trees and a variety of graph structures are discussed along with their applications to algorithm implementation. Algorithms will be analyzed for their complexity. NP-completeness will be introduced.
Prerequisites: MATH 145 and CS 331

CS 543Principles of Database Management Systems3 hrs.
The fundamental concepts of database design and efficient usage are presented. Topics include: an overview of databases; the three data models -- relational, hierarchical, and network; conceptual, logical, and physical database design and evaluation. The design theory of relational data models will be emphasized. Query languages, query optimization, security, integrity, and concurrency protocols will also be covered. A student may not receive credit for both CS 443 and CS 543.
Prerequisite: CS 331

CS 554Operating Systems3 hrs.
The internal and external views of computer operating systems are presented. A historical survey of the development and growth of operating systems is given. Fundamentals of systems and system design are stressed. Basic concepts and terminology are emphasized. Processes, communication and synchronization, shared resources, resource allocation, memory management, file management, and protection are discussed. Applications to real systems are investigated to motivate the ideas presented. Students build or run simulations and modify the internals of a working operating system.
Prerequisite: CS 331

CS 555Computer Networks and Distributed Systems3 hrs.
The design and evaluation of computer networks using current hardware and software are explained. Various types of computer buses, local area networks, and long haul networks are defined. Case studies of popular networks are presented. Layered network models are studied. There is lab work with local area and long haul networks.
Prerequisites: CS 224 and CS 331

CS 580Theory of Computation3 hrs.
Provides an introduction to the theory of computation in the framework of programming languages. Basic definition and concepts dealing with algorithms, sets, relations, functions, induction, operations on functions and cardinality are covered. Primitive and partial recursive functions are defined and their properties treated with application to coding techniques. The chomsky hierarchy of languages including recursive and recursively enumerable sets and their acceptors, is introduced. Students are assigned theoretical as well as implementation-oriented problems.
Prerequisites: CS 331 and MATH 145

CS 581Compiler Design and Implementation3 hrs.
Students are introduced to major aspects of compiler design. These include lexical analysis, parsing, and translation. Each student will implement a small compiler using modern compiler writing tools.
Prerequisite: CS 485 or CS 580

CS 582Artificial Intelligence 3 hrs.
This course provides an overview of artificial intelligence including basic AI techniques and concepts, e.g., production systems, heuristic searching techniques, knowledge representation, predicate calculus, and pattern recognition. It introduces AI application areas such as game playing, expert systems, vision, natural language processing, and learning.
Prerequisite: CS 331

CS 595Advanced Topics in Computer Science1-3 hrs.
The content of this course varies. It is intended to introduce the student to advanced topics which are normally offered as separate courses. The course may be taken more than once with approval of the student's advisor.
Prerequisite: approval of department

CS 599Independent Study in Computer Science1-3 hrs.
Advanced students with good scholastic records may elect to pursue, independently, the study of some topic of special interest. Topics are chosen and arrangements are made to suit the needs of each particular student.
Prerequisite: written approval of instructor



Courses open to graduate students only

CS 603Studies in Computer Science 3 hrs.
Advanced work organized around a special topic in computer science. The focus of this course can change from one offering to the next and students may take this course more than once.
Prerequisite: approval of department

CS 625Advanced Computer Architecture3 hrs.
Multiprocessor architectures, various interconnection networks, communication and synchronization techniques, and data flow architectures.
Prerequisite: CS 525

CS 626Parallel Computations II3 hrs.< br> This course will focus on advanced topics in parallel computations such as algorithms in the areas of graph algorithms, numerical algorithms, computer graphics, and VLSI design; and on aspects of operating systems and languages. Students will be expected to read research papers and complete a semester project involving the use and implementation of parallel programming paradigms on current machines.
Prerequisite: CS 526

CS 627Computer Graphics II3 hrs.
A course in advanced computer graphics topics selected from current research. Some of the areas of interest include: visualization of complex processes, full motion video, virtual reality, client/server protocols, and parallel image rendering. Emphasis is on research and students are expected to participate in a research project with a faculty member during the course.
Prerequisite: CS 527

CS 628Parallel Scientific Computations3 hrs.
This course will focus on the design and analysis of parallel numerical algorithms to solve problems such as singular value decomposition and the solution of linear systems for structured, banded, and sparse matrices; partial differential equations; and multivariate numerical integration. Applications may include the solution of wave equations, hydrodynamic flow, particle dynamics, finite element applications, and Monte Carlo methods.
Prerequisites: CS 526 and MATH 230

CS 631Advanced Data Structures3 hrs.< br> Stresses the representation and implementation of various data structures. The effect of data structures on program complexity is investigated. The uses of data structures in a variety of application areas are covered. Introduces complex data structures.
Prerequisite: CS 531

CS 632Analysis of Computer Algorithms 3 hrs.
Computing time and space requirements of algorithms are analyzed with emphasis given to the effect of data structure choice on program complexity. Various abstract models of computation are considered. Methods for proving program correctness and the related problems are identified. Students implement a number of algorithms on a computer and discuss aspects of the complexity of correctness of their programs.
Prerequisites: CS 531 and CS 580

CS 633Computational Geometry3 hrs.
Design and analysis of algorithms for computational geometry problems and discussion of applications in databases, computer graphics and VLSI design. Specific topics may include geometric formulation, geometric searching, point location, multidimensional problems, range trees, convex hulls, simple polygons, Voronoi diagrams, and the geometry of a rectangle.
Prerequisite: CS 631

CS 634Combinatorial Optimization3 hrs .
This course will treat the foundations of mathematical programming and analyze the computational complexity of algorithms in this area. Topics may include: linear programming, algorithms for max-flow, min-cost, shortest path problems, weighted matching, integer and 0/1 linear programming, nonlinear programming techniques, approximation algorithms, branch-and-bound and dynamic programming methods for 0/1 programming, and properties of local search.
Prerequisite: CS 631

CS 643Advanced Database Management Systems3 hrs.
This course is an in-depth study of database management systems with concentration on efficient design and usage. Topics covered include: the design of models, the theory of relational databases, query optimization, recently developed protocols to guarantee consistency of databases, the design of physical models, and performance analysis techniques. Algorithms and data structures such as B-trees, transposed files, phantom files, and hybrid structures are also studied. Distributed databases, database machines, and current query languages will be covered.
Prerequisites: CS 331 and CS 542

CS 655Advanced Operating Systems3 hrs .
Advanced and current topics in operating systems research will be discussed. Analysis of competing techniques will be undertaken to present a better understanding of tradeoffs in design decisions. Modeling and performance evaluation will also be presented. A detailed and theoretical view of the basic operating system concepts will be emphasized. Programming assignments involving simulation and performance evaluation will be required.
Prerequisite: CS 554

CS 660Software Engineering I: Formal Specifications of Software Systems3 hrs.
Students will be introduced to various models of software life cycles. The remainder of the course will focus on formal methods for specifying requirements and design. Students will be introduced to a number of formal systems using axiomatic specification, abstract models (e.g., VDM), set theoretic systems (e.g., Z), predicate logic systems (e.g., Larch), and specification based on programming languages such as Alphard, CLU, and Ada. Also discussed will be formal specification of real-time systems using petri nets, PAISLEY, CSP, SF, and others. Examples and exercises illustrating the use of several formal systems will be given. Student teams will be expected to complete the specification of requirements and design of a project using one of the methods presented.
Prerequisites: CS 331 and MATH 145

CS 661Software Engineering II: Verification and Validation of Software Systems3 hrs.
Students will become familiar with the terminology and will learn the limitations of verification and validation (V and V) approaches. Five approaches will be presented: technical reviews, testing, proofs of correctness, simulation and prototyping, and requirements tracing. Students will define a V and V plan and carry it out for several stages in the development cycle of a
project.
Prerequisite: CS 660

CS 672Pattern Recognition3 hrs.
A survey of modern methods for computer recognition of patterns in varied applications such as digital images, human speech and sound, and grammar-based sequences. Various approaches are developed, including heuristic search, Fourier analysis, markov models, template matching, and grammatical inference. Computational aspects and efficiency of different methods and algorithms are emphasized. Students must complete a project using methods developed in the course.
Prerequisites: MATH 364 and CS 331 or CS 531

CS 679Theory of Computation II3 hrs.< br> Recursive, partial recursive and primitive recursive functions, properties of recursive and recursively enumerable index sets, decidability, turing computability, and reducibility are treated in depth, while certain problems are proved to be unsolvable. Concepts from computational complexity, including relationships between complexity classes, are covered.
Prerequisite: CS 580

CS 680Mathematical Theory of Formal Languages3 hrs.
Definition of grammars and languages, recursive and recursively enumerable sets, decidability, and the chomsky hierarchy of languages and their relation to models of automata.
Prerequisite: CS 580

CS 681Compiling Theory and Practice3 hrs.
A study of theoretical and applied strategies for designing compilers and other types of language translation systems. Students will be assigned a programming project on compiling.
Prerequisite: CS 581

CS 682Advanced Artificial Intelligence3 hrs.
This advanced AI course examines current research in one or more artificial intelligence application areas, e.g., computer vision and image processing, natural language and speech processing, expert systems, computer learning, or other AI topics.
Prerequisite: CS 582

CS 685 Foundations of System Specification3 hrs.
Semi-formal and formal specification of abstract and real-life systems, with emphasis on computer software and hardware systems and using the State-System Specification Language. State and behavior modeling approaches and specification design philosophy. Theoretical foundations with practical application examples. Implications for validation, implementation, and testing. Alternative modeling techniques.
Prerequisite: graduate level competence in one of the following areas: computer architecture (ECE 357 or CS 525), or operating systems (CS 554), or computer networking (CS 555), or control theory, or switching and automata theory (CS 580); or permission of instructor

CS 691Seminar in Computer Science1-3 hrs.

CS 699 Research Seminar1-3 hrs.

CS 710Independent Research2-6 hrs.

CS 712Professional Field Experience2- 6 hrs.

CS 725Doctoral Research Seminar2-6 hr s.

CS 730Doctoral Dissertation12-24 hrs.

CS 735Graduate Research2-10 hrs.



Other courses

MATH 507Numerical Analysis I3 hrs.
The analysis and use of numerical algorithms for the solution of nonlinear equations, systems of linear equations, interpolation, numerical differentiation and integration,.
Prerequisites: [(MATH 230 and MATH 272 and MATH 274) or MATH 374] and (CS 201 or CS 306)

MATH 567Statistical Design and Analysis of Experiments4 hrs.
A course in experimental design and the analysis of variance with particular emphasis on industrial experiments. Topics include: complete randomized, randomized complete block, Latin square, and split plot designs; orthogonal contrasts and polynomials; multiple comparisons; factorial arrangement of treatment; confounding; and fractional replication. This course is molded around the complete analysis of good applied problems.
Prerequisite: An introductory statistics course

MATH 607Numerical Analysis II 3 hrs.
The analysis and use of numerical algorithms for the solution of ordinary and partial differential equations, and approximation theory.
Prerequisite: MATH 507

MATH 637Numerical Linear Algebra3 hrs .
The analysis and use of numerical algorithms for solving problems from linear algebra, including matrix norms, singular value decompositions, gaussian elimination, least square methods, eigenvalues, and iterative methods.
Prerequisites: MATH 510 or MATH 530, and MATH 507

MATH 640Graph Theory I4 hrs.
This course and MATH 641 cover the following topics: fundamental concepts, eulerian graphs, adjacency and incidence matrices, trees, planar graphs, graph embeddings, connectivity, hamiltonian graphs, matchings, factorization, graphs and groups, cayley color graphs, line graphs, reconstruction problems, spectra of graphs, graph and map colorings, extremal graph theory, and ramsey theory.
Prerequisite: approval of advisor

MATH 641Graph Theory II3 hrs.
Continuation of MATH 640.
Prerequisite: MATH 640


The University

Stature

Western Michigan University, founded in 1903, is dedicated to creating knowledge and putting it to work in an environment of academic excellence in teaching, research, and service. As a result, it has earned a reputation as an ascending national university that offers its students a truly international perspective.

U.S. News and World Report has ranked WMU among the country's top national universities for eight consecutive years. In Michigan, WMU typically ranks fourth in enrollment, graduate enrollment, international enrollment, research support, and private giving.


The Michigan Legislature has recognized WMU as one of the state's five graduate-intensive, research-oriented public universities. In fact, nearly one-fourth of WMU's students are pursuing graduate degrees.
WMU meets the Research II criteria of the Carnegie Foundation for the Advancement of Teaching.


The National Association of State Universities and Land-Grant Colleges, the oldest higher education association in the United States, includes WMU in its selective roster of members.


WMU is one of only 91 public universities in the nation, and only four in Michigan, to be granted a chapter of Phi Beta Kappa, the most prestigious national academic honorary society in the United States.


Academic Environment

With more than 26,000 students, WMU ranks among the nation's 60 largest institutions. It enrolls a significant minority student population as well as one of the largest numbers of undergraduate international students among Michigan's public universities. The University attracts international students from almost 100 countries and maintains institutional linkages with 45 universities and agencies in more than 25 countries.

In addition to its Graduate College and Lee Honors College, WMU supports seven degree-granting colleges: Arts and Sciences, Aviation, Haworth College of Business, Education, Engineering and Applied Sciences, Fine Arts, and Health and Human Services. These colleges offer 242 degree programs, including 87 at the master's, specialist, and doctoral levels.

The University places equal emphasis on excellence in graduate and undergraduate education. Many of its programs at both levels have gained national and international recognition for quality and innovation. Other major factors in WMU's success have included its focus on conducting research, promoting out-of-class learning, and maintaining cutting-edge instructional facilities.

Despite continuing physical and program growth, WMU has retained the friendliness, openness, and personal attention that are often associated with much smaller institutions. At the same time, it attracts a diverse, culturally rich student body and adds variety and vitality to the campus and Southwest Michigan through its acclaimed arts programs, Miller Auditorium, NCAA Division I sports teams, and 400 registered student organizations.

Location

WMU's main campus is located just off Interstate 94 and U.S. Highway 131 in the Southwest Michigan city of Kalamazoo, which is less than three hours by car from Detroit and Chicago. With a population of 220,000 Kalamazoo County is served by ample air, train, and bus transportation and offers an impressive environment for study, employment, culture, entertainment, and all-season recreation.


Contacts

Department of Computer Science

3308 Friedmann Hall
Western Michigan University
1201 Oliver Street
Kalamazoo, MI 49008-5021


telephone: (616) 387-5645
fax: (616) 387-3999
email: csadmin@wmich.edu
web: www.cs.wmich.edu


Western Michigan University

telephone: (616) 387-1000
web: www.wmich.edu (start here for all kinds of information about WMU)

The Graduate College

telephone: (616) 387-3583
fax: (616) 387-3546
web: www.wmich.edu/grad

Office of Admissions and Orientation

telephone: (616) 387-2000
fax: (616) 387-2096
email: ask-wmu@wmich.edu
web: www.wmich.edu/admi/grad


Office of International Student Services

telephone: (616) 387-5865
fax: (616) 387-5899
email: oiss.info@wmich.edu
web: www.wmich.edu/oiss

Residence Hall Facilities Office

telephone: (616) 387-4735 or (800) 545-6006
fax: (616) 387-4786
email: rhstaff@aerf.faunce.wmich.edu

Campus Apartments Office

telephone: (616) 387-2175
fax: (616) 387-4786
email: castaff@aerf.faunce.wmich.edu

Off-campus Housing Office

telephone: (616) 387-2336
fax: (616) 387-2325
email: ocl@groupwise.wmich.edu



It is the policy and commitment of Western Michigan University not to discriminate on the basis of race, sex, age, color, national origin, height, weight, marital status, sexual orientation, religion, handicap, or veteran status in its educational programs, activities, admissions, or employment policies in accordance with Title VII of the Civil Rights Act of 1964, Title IX of the 1972 Education Amendments, Executive Order 11246 as amended, Section 504 of the Rehabilitation Act of 1990, Elliot-Larsen Civil Rights Act, and all other pertinent state and federal regulations.