Middle Level Computer Science Courses

 

CS 4120

Professional Field Experience

1-3 hrs.

This course allows students to receive academic credit for professional work experience in the computing field. The work activities must require significant computer science knowledge and education. This course may not be taken for work already completed and may not be used for computer science major or minor elective. It is a credit/no credit course and may be taken for a maximum of three credit hours.


CS 4430

Database Management Systems

3 hrs.

This course presents the fundamental concepts and practices of database management systems. The database environment and administration are defined along with the roles of the database administrator and the data dictionary. Conceptual and logical models are discussed. The three approaches --- relational, hierarchical and network --- are briefly described. Data access techniques such as sequential and multi-level sequential indexes, linked lists, inverted files and hashing are briefly reviewed. A few commercial systems will be surveyed. Security, reliability and integrity will be studied. Students will acquire experience with the various topics by applying them to an actual database system. Students will also write application programs which use the data base system. Not for computer science majors/minors. A student may not receive credit for both CS 4430 and CS 5430.


CS 4600

Software Systems Development

3 hrs.

This is a projects course in software engineering that leads teams of students through the software development cycle: requirements analysis and specification, design, implementation, and testing of software systems. Life cycle models, planning, software quality assurance and maintenance are also discussed. Each student team works on a real project throughout the course. Teams produce a variety of documents and participate in formal product demonstrations open to clients and the public at the end of the course. This course meets the University baccalaureate-level writing requirement.


CS 4850

Programming Language

3 hrs.

Properties of various programming languages including scope of declarations, storage allocation, control structures and formal parameters will be studied, as well as run time representation of programs and data structures. A study of compilers and interpreters will be made. This will include loading, execution, storage allocation, symbol tables, lexical scan, parsing and object code generation. The relation of automata to formal languages and grammars will be discussed.


CS 4900

Software Systems Development I: Requirements & Design

3 hrs.

This course is the first of a capstone project sequence required for all computer science majors. Software engineering and its methodologies are explained. Various software life cycle models are introduced. Students are placed into teams and assigned to a client and project. The teams create a project plan, analyze and specify requirements for their project and develop a design. Prototype demonstrations and periodic oral and written progress reports are required to help assure steady progress. Individuals and teams produce a variety of documents throughout the course. Documents include a management plan, project abstracts, a requirements specification, a user interface prototype document, and a design document consisting of architectural and detailed design elements. This course is approved as a writing-intensive course, which may fulfill the baccalaureate-level writing requirement of the student's curriculum. Course prerequisite CS 3310.


CS 4910

Software Systems Development II: Implementation & Testing

2 hrs.

This course is the second of a capstone project sequence required for all computer science majors. Students are placed into teams and assigned to complete an existing project for a client. The teams implement and debug code according to a design produced earlier. They produce a testing plan, carry out testing, record test results and summarize them. Prototype demonstrations and periodic progress reports are required to help assure steady progress. Individuals and teams produce a variety of documents throughout the course. These documents include a testing plan, a testing log, a summary of testing, a maintenance manual and a user manual. Teams also deliver a public demonstration at the end of the course. Course prerequisite CS 4900.


CS 4950

Topics in Computer and Information Science

3 hrs.

The content of this course varies. It is intended to introduce the student to significant topics which are not normally offered as separate courses. This course may be taken more than once with the approval of the student's advisor.


CS 4980

The Computer Science Profession

1 hrs.

This course examines the role of the computer scientist in society. Topics covered are designed to promote awareness of professional, ethical, and societal issues in the field of computer science.


CS 4990

Undergraduate Research in Computer Science

1-3 hrs.

There is no description available for this course at this time.


CS 5250

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.


CS 5260

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.


CS 5270

Theory of Computer Graphics

3 hrs.

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.


CS 5300

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.


CS 5310

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.


CS 5400

Designing the User Interface

3 hrs.

An introduction to the specification, development, and evaluation of user interfaces. This course provides an overview of human capabilities, technological possibilities, interaction design, and interface evaluation. The course presents both the theoretical foundations of interaction design and practical case studies of good and bad interface design. During the course, students will design and test one or more interfaces. *Prerequisites: CS 3400 or permission of instructor for undergraduate students.

* No prerequisite for graduate students in Computer Science.


CS 5430

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 4430 and CS 5430.


CS 5540

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.


CS 5550

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.


CS 5800

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.


CS 5810

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.


CS 5950

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.


CS 5990

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.


 

 

 

 

 

 


 

Department of Computer Science
Western Michigan University
Kalamazoo MI 49008-5314 USA
269-276-3101 | 269-276-3122 Fax

E-Mail: csadmin@wmich.edu

WMU A-Z List | Contact WMU

Copyright © 2007 Western Michigan University, All Rights Reserved
Contact the CEAS Webmaster