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.
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.
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.
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.
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.
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.
Professor Kapenga joined WMU in 1981. His research interests include: parallel computation,
numerical analysis, and computer graphics.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
| 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. |
Applications for admission and instructions are available from the Office of International Student
Services.
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.
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 |
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.
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) |
following three research skills:
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.
| 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:
| 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.
CS 525
Computer Architecture
3 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 526
Parallel 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 527
Theory of Computer Graphics
3 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 530
Artificial Neural Systems
3 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 531
Design and Analysis of Algorithms
3 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 543
Principles of Database Management Systems
3 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 554
Operating Systems
3 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 555
Computer Networks and Distributed Systems
3 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 580
Theory of Computation
3 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 581
Compiler Design and Implementation
3 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 582
Artificial 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 595
Advanced Topics in Computer Science
1-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 599
Independent Study in Computer Science
1-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
CS 625
Advanced Computer Architecture
3
hrs.
Multiprocessor architectures, various interconnection networks, communication and
synchronization techniques, and data flow architectures.
Prerequisite: CS 525
CS 626
Parallel Computations II
3 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 627
Computer Graphics II
3 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 628
Parallel Scientific Computations
3 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 631
Advanced Data Structures
3 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 632
Analysis 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 633
Computational Geometry
3 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 634
Combinatorial Optimization
3 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 643
Advanced Database Management Systems
3 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 655
Advanced Operating Systems
3 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 660
Software Engineering I: Formal Specifications of Software Systems
3 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 661
Software Engineering II: Verification and Validation of Software Systems
3
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 672
Pattern Recognition
3 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 679
Theory of Computation II
3 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 680
Mathematical Theory of Formal Languages
3 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 681
Compiling Theory and Practice
3
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 682
Advanced Artificial Intelligence
3 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 Specification
3 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 691
Seminar in Computer Science
1-3
hrs.
CS 699
Research Seminar
1-3 hrs.
CS 710
Independent Research
2-6 hrs.
CS 712
Professional Field Experience
2-
6 hrs.
CS 725
Doctoral Research Seminar
2-6 hr
s.
CS 730
Doctoral Dissertation
12-24 hrs.
CS 735
Graduate Research
2-10 hrs.
MATH 567
Statistical Design and Analysis of Experiments
4 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 607
Numerical 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 637
Numerical Linear Algebra
3 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 640
Graph Theory I
4 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 641
Graph Theory II
3 hrs.
Continuation of MATH 640.
Prerequisite: MATH 640
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.