CS Dept

New and Elective Courses


This page contains course descriptions and vital information for non-core courses that the Department of Computer Science is offering in Fall 2004.

These include all workshop and "special topics" courses that the Department offers on the main campus.

Undergraduate students should note that only one course at the 400 level can be used to satisfy the Advanced Computer Science Course portion of the CS major. All courses taken at the 600 level (including 697A - 697Z) will count toward the Advanced Computer Science portion of the CS major.



CS 350R  Beginning Game Development

3:30 - 4:45 MW day   Section: 04586 Instructor: T. Burgoyne

Description: Beginning Game Development covers aspects of game development and creation from a non-programming point of view. The class objectives are to learn about game design, basic game techniques, and artificial-intelligent game play. The students' job for this class, will be to design and create a computer game. No credit toward the major or minor in Computer Science.
Prerequisite: CS 150W or instructor consent.


CS 321  Discrete Structures I

9:30 - 10:45 TTh day Section: 04478 Instructor: M. Arrasmith
5:35 - 6:50 TTh evening Section: 04487 Instructor: Z. Jin

Note: CS 321 is a new CS course. CS 321 Discrete Structures I and CS 322 Discrete Structures II replaces CS 320 in the CS curriculum.

Description: Provides a mathematical foundation essential to the entire Computer Science curriculum. Includes propositional and predicate logic, induction, recursion, and counting techniques.
Prerequisites: Math 242 with a grade of C or better, or CS 210 and CS 211, each with a C or better.


CS 411  Object-Oriented Programming

11:30 - 12:15 TTh Lecture day Lecture Section: 04533 Instructor: S. Prabhakar
12:25 - 12:50 TTh Lab day Lab Section: 04542  

Note: CS 411 is a new core CS course. It is required for all CS majors entering from the Fall 2003 semester and later.

Description: Concepts of object-oriented programming. Includes data abstraction, classes and objects, methods, inheritance, polymorphic variables, dynamically-bound method calls, and data encapsulation. Gives programming experience in an object-oriented programming language.
Prerequisite: CS 300 with a grade of C or better.


CS 444  Introduction to Unix

3:30 - 4:45 TTh day Lecture Section: 04551 Instructor: C.Harris
4:55 - 5:20 TTh day Lab Section: 04560  

Description: This course offers a complete and in-depth introduction to the basic command-line utilities like mkdir, cat, ls, cp, echo, date, head, tail, etc. and also covers some popular utilities like sed, grep, uniq, awk, sort, find, etc.. The editors vi and emacs are covered in full detail. Basic communication utilities like mail, write, talk, finger, ftp, etc. are also explained. Unix file structure, access permissions, and links are explained. Other important topics like input and output redirection, pipes, tees, filename generation, history, aliasing, job control, variables, etc. are also discussed. Along with the generic utilities available on all shells, syntax of specific shells (Bourne and C) and programming is addressed. Extensive hands-on work and programming are used to reinforce ideas talked about in class as part of laboratory assignments and homework.
Prerequisite: Any high level programming language (Pascal, C, C++) with a grade of C or better.
Advanced Major Coursework Category: Computer Systems


CS 665  Introduction to Database Systems

5:35 - 6:50 TTh evening Lecture Section: 04668 Instructor: R. Bagai
7:00 - 7:25 TTh evening Lab Section: 04677

Description: An introduction to the fundamental aspects of database systems. Topics include: conceptual database design, entity-relationship modeling, and object-oriented modeling; the relational data model and its foundations, relational languages, and SQL (Structured Query Language); logical database design, dependency theory, and normal forms; physical database design, file structures, indices, and decomposition; integrity, security, concurrency control, recovery techniques, and optimization of relational queries.
Prerequisite: CS 300 and CS 320 each with a grade of C or better.
Advanced Major Coursework Category: Information Systems


CS 697A  Human-Computer Interaction

11:00 - 12:15 TTh day Lecture Section: 04686 Instructor: J. Hainsworth
12:25 - 12:50 TTh day Lab Section: 04695

Description:In most applications computers function as a tool to help human beings do things that those human beings want to do. From this viewpoint, even a technically correct program is only as good as its ability to understan what its human user wants and its ability to provide that in a form that the human user can use. This course will study these interfaces between humans and computers. Half of the course grade will be for a programming project.
Prerequisite:CS 300 and CS 320.


CS 720  Theoretical Foundations of Computer Science

1:30 - 2:45 TTh day Lecture Section: 04704 Instructor: S-C Chou
2:55 - 3:20 TTh day Lab Section: 04578

Description: Provides an advanced level introduction to the theoretical bases of computer science. Computer science theory includes the various models of finite state machines, both deterministic and nondeterministic, and concepts of decidability, computability and formal language theory.
Prerequisite: CS 320 with a grade of C or better.
Advanced Major Coursework Category: Theoretical Computer Science


CS 742  Computer Communication Networks

3:30 - 4:20 MW day Lecture Section: 04722 Instructor: C-C Chang
4:30 - 5:20 MW day Lab Section: 04731

Description: Introduction to network programming for the internet environment including the basic concepts of TCP/IP, client-server paradigm, programming of clients, and various types of servers, remote procedure calls, concurrency management, and interconnection techniques. Emphasizes the design principles that underlie implementation of practical applications.
Prerequisite: CS 300 with a grade of C or better, or departmental consent.
Advanced Major Coursework Category: Computer Systems


CS 810  Programming Languages - Advanced Concepts

5:35 - 6:50 TTh evening Lecture Section: 04776 Instructor: R. Bates
7:00 - 7:25 TTh evening Lab Section: 004785

Description: An advanced study of programming language structures and design. Data and control structures and their abstraction. Concurrent programming structures. Formal specifications of syntax and semantics, including models for establishing program correctness. Criteria for language design.
Prerequisite:CS 510 and CS 720


CS 865  Principles of DBMS Implementation

1:30 - 2:45 MW day Lecture Section: 04796 Instructor: P. Ramanan
2:55 - 3:20 MW day Lecture Section: 04797

Description: This course deals with two of the three main components of a relational Database Management System (DBMS): storage management and query. The third component, transaction management, will be covered as time permits.
Prerequisite: CS 665 with a grade of C or better, CS 560 is recommended.


CS 898O  Machine Learning

5:35 - 6:50 TTh evening Lecture Section: 04812 Instructor: S. Prabhakar
7:00 - 7:25 TTh evening Lab Section: 04821

Description: This course introduces techniques available to make machines learn. In this course, the student learns various algorithms through examples and product development. The topics covered in this course are Inductive Learning, Statistical Learning, Bayesian Learning, Neutral Networks, Genetic Algorithms, Analytical Learning, Instance-based Learning, Reinforcement Learning and Computational Learning theory.
Prerequisite:CS 300.

Department Home | People | Courses | Grad Program | Undergrad Program
Facilities | Activities | New & Policies | WSU Home | LAS Home