Skip to main content
Switch to text-only version
Get accessibility information and assistance

Course Descriptions

Below you will find course descriptions for lower division, upper division. Please note that the following does not represent a contract and there may be errors. For the most up-to-date information please contact the CS Department or a current WOU catalog.  For the Information Systems degree course descriptions click here for lower division or upper division.


Lower Division Computer Science Course Descriptions



CS 121 Computer Applications (2)

Class covers standard office applications for a personal computer. Currently the class uses the Microsoft Office suite of applications and includes intermediate Microsoft Word, basic and intermediate Microsoft Excel and basic Microsoft Access. As time permits, presentation software - Microsoft Power Point - and web page editing software - Microsoft FrontPage - will be covered as well.


CS 122 Introduction to Computer Science for Non-Majors (3)

This class presents a history and an overview of fundamental concepts of computer science appropriate for a liberal arts student. Among the topics included are: introduction to computer hardware and the role of an operating system; data communications and networks; the history and future of the internet and the world wide web; issues in computer privacy, computer security, computer ethics, and computer crime; buying and upgrading a personal computer system; and careers in computing.

CS 160 Survey of Computer Science (3)

An introduction to the study of computer science. It is primarily intended as a first class in the computer science major. The topics will include the following; the binary and hexadecimal number systems; data representation in binary, including signed and unsigned fixed and floating point values; pseudocode and algorithm representation using pseudocode; use of a simple machine simulator to understand the basic operation of a machine; and an introduction to data structures and object-oriented design using pseudocode. A term paper or project will be required.


CS 161 Computer Science I (5)

Formulation of problem specifications, development of algorithms, program design, structured programming concepts, program execution and documentation. Three hours of laboratory is required in addition to the lectures.

Prerequisite: CS 160 recommended.


CS 162 Computer Science II (5)

Course will cover algorithms for external file processing and concepts associated with data abstraction. Examples will include linked lists, stacks, queues and trees. Three hours of laboratory is required in addition to the lectures.

Prerequisite: CS 161.


CS 199 Computer Science Topics (1-6)

Course content will vary. Topics are selected relative to new subject areas in Computer Science appropriate to freshmen level. 


CS 222 Computer Systems Management (3)

This course will provide hands-on experience in assembling, installing and maintaining computer hardware and software systems.


CS 260 Data Structures I (3)

This course studies the merging of abstract data types and the algorithms which manipulate them. Topics could include: the study of the elementary searching and sorting algorithms, the use of the abstract data types such as stacks, queues and trees, and an introduction to complexity analysis.

Prerequisite: CS 162.


CS 262 Programming Languages (2)

Computer applications using the language designated, such as LISP.

Prerequisite: CS 161 or previous programming instruction.


CS 271 Computer Organization (4)

Logical organization, computer hardware, introduction to assembly and machine language programming.

Prerequisite: CS 162.


CS 272 Low Level Programming (3)

This class covers programming techniques that require the programmer to be aware of the computer's hardware organization. Approximately one-half of the class will be devoted to an introduction to assembly language programming, and the remainder of the class will consider aspects of the C programming language such as: pointers, dynamic memory allocation, the address operators, and the bit wise operators.

Prerequisite: CS 162.


CS 299 Topics in Computer Science (1-6)

Course content will vary. Topics are selected relative to new subject areas in Computer Science appropriate to sophomore level.


Lower Division Information Systems  Course Descriptions


IS 199 Information Systems Topics (1-6)

Course content will vary.  Topics are selected relative to new subject areas in Information Systems appropriate to freshman level.


IS 270 Applied Operating Systems (3)

Students will develop an understanding of how operating systems work and develop the necessary skills to interact with current operating systems.

Prerequisite: CS 161. 


IS 299 Information Systems Topics (1-6)

Course content will vary.  Topics are selected relative to new subject areas in Information Systems appropriate to sophomore level.


Upper Division Computer Science Course Descriptions


CS 311 Data Structures II (3)

A continuation of CS 260, where topics could include advanced searching and sorting algorithms, a further treatment of the data type trees into AVL trees, B-Trees and B+ Trees, the inclusion of external file manipulation algorithms, graph structures, and further study of complexity analysis and classes.

Prerequisite: CS 260.


CS 315 Theory of Programming Languages (3)

Programming language paradigms and implementation issues form the major content of this course. Paradigms studied include at least Imperative, Functional, Logic and Object Oriented languages. Students will learn how to approach problems from the viewpoint in each of the paradigms. Implementation issues studied may include language evaluation criteria, forms of abstraction, scoping rules, parameter types, control structures, data typing, static vs. dynamic issues.

Prerequisite: CS 311.


CS 340 Ethics and Information Management (3)

Acquaints students with the contemporary or possible future moral problem that arises due to computerization. Give students a deeper understanding of the nature of morality or the nature of society. Help students understand the relationship between deep human needs, socioeconomic institutions, and technology.

Prerequisites: CS 160 or Junior standing.


CS 344 Discrete Structures (3)

This course is designed for students in Computer Science. Topics that will be covered include mathematical reasoning and methods of proof, sets, relations, functions, partially ordered sets and lattices, groups,  Boolean algebra, prepositional and predicate calculus, recurrence relations, and graph theory.  

Prerequisite: MTH 231. 


CS 345 Theory of Computation I (3)

This course presents the underlying theory of computer science. Introduction to the theoretical models of computing, i.e. finite automata, pushdown automata and Turing machines are covered, along with basic discussion on the classification of algorithms.

Prerequisite: CS 260.


CS 350 Network Administration (3)

Develop an understanding of local area network protocols using the OSI model. Topics include network hardware, software, and protocols. Students will gain hands-on experience with network administration tasks for popular network environments.

Prerequisite: CS 162.


CS 355 Unix Fundamentals (3)

This course is an introduction to the UNIX operating system. Emphasis on using a UNIX-based or a Linux-based computer and some basic system administration tasks.  Covers fundamental UNIX commands and utilities, including the use of a text editor and a mail handler, configuring a shell, the UNIX file system organization, managing processes in a multiprocessing system and writing simple shell scripts.  Other topics that may be covered: the X window system, C programming in a UNIX environment and UNIX pattern matching utilities such as awk.  This class assumes no previous experience with the UNIX operating system.

Prerequisite: CS 162. 


CS 372 Operating Systems (3)

This course provides an introduction to Operating Systems as managers of systems resources. Management of tasks, memory, and peripheral devices is explored. Topics include task synchronization, message handling, file management, demand paging, scheduling, and dispatching.

Prerequisite: CS 271, CS 260.


CS 399 Topics in Computer Science (1-6)

Course content will vary. Topics are selected relative to new subject areas in Computer Science appropriate to junior level. 


CS 406 Special Topics (1-4)

Course is to be offered on an individual student basis. It is designed to support students in investigating the application of programming methods to problems related to their declared major.


CS 407 Seminar (1-4)

Terms and hours to be arranged.


CS 408 Workshop (1-4)

Terms and hours to be arranged.


CS 409 Practicum (1-9)

Offers practical experience working in a computer science department for area businesses and industries.


CS 420 Data Management Systems (3)

Database system architecture; relational, hierarchical, and network approaches. Security and integrity of data bases. Prerequisite: CS 260 or IS 320.


CS 424 Expert Systems (3)

This course provide an introduction to both the construction of knowledge-based systems and the study of the underlying inference mechanisms. Both diagnostic and constructive systems will be studied.  Additional topics may include the study of the development of expertise, the testing and maintenance of knowledge-based systems and their potential impact upon organizations.

Prerequisite: CS 311, CS 315.


CS 425 System Analysis and Design (3)

This course requires students to work as a group for the solution of a large scale project. An iterative approach of design and analysis is used while prototyping and other alternative strategies are discussed. This term is devoted to the thorough design and documentation of a software product. Current software tools are integrated into the course, e.g. dataflow systems, version control systems, etc.

Prerequisite: CS 260.


CS 430 Software Implementation and Testing (3)

A continuation of the CS 425 course where the students, in groups, perform implementation of a designed software product. The emphasis is on unit testing, integration of the system and final testing of the product. Documentation and testing are the emphases.

Prequisite: CS 425.


CS 440 Analysis of Algorithms (3)

A variety of algorithms are examined in terms of their demands on the resources of space and time.  The trade-offs between space and time utilization are weighed so that the appropriate algorithm will be used for a particular situation.  The techniques for doing a detailed algorithm analysis are covered.  A theoretical component on the classes of algorithms is included.

Prerequisite: CS 311.


CS 445 Theory of Computation II (3)

This course explores the mathematical foundation of computer science. The various levels of automata theory are covered (finite automata, pushdown automata, Turing machine) along with their deterministic and non-deterministic counterparts. Emphasis is on identifying the gain in "power" as each new machine is introduced and the implications of the class of problems each is able to solve. Finally, a tie is established between the theoretical models and the modern day algorithms which can be described by these models.

Prerequisite: CS 345 and CS 311.


CS 447 Compiler Design (3)

This course includes the theoretical discussion of the complexities of a modern compiler, along with the examination of the algorithms necessary to implement the same. Programming tools such as LEX and YACC are used. All phases of a compiler are implemented.

Prerequisites: CS 345 and CS 311.


CS 449 Topics in Computational Theory (4)

This course covers topics of special or current interest in the area of computational theory that are not covered in other courses. 


CS 450 Networks Programming  (3)

Introduction to networking software and protocols.  Students will learn about the design and implementation of common network protocols such as TCP/IP and HTTP.  Programming assignments may include developing client and server software using sockets, RMI or CORBA, Web services and message oriented middleware.

Prerequisite: CS 260.


CS 451 Management of Information Systems (3)

Course examines current methods for creating a Web application.  This course includes programming techniques used on various platforms appropriate for the creation of a Web application.

Prerequisite: CS 260.


CS 452 Internet Communications (3)

Comparing different network models. Focus on wide area networks and communication with routers, and switches. Management of web servers will also be covered.

Prerequisite: CS 450 


CS 453 Data Mining Data Warehousing (3)

Develop the essential information and guidance on designing and building effective data warehousing systems. Data warehousing will develop the tools, concepts and approaches to organize vast stores of information.  This course explains what data warehousing is, how it works, and why the survival of many businesses in the twenty-first century will depend on leading-edge information architectures.

Prerequisite: CS 420.


CS 459 Topics in System Management (3)

This course covers topics of special or current interest in the area of system management that are not covered in other courses.


CS 460 Introduction to Information Assurance (3)

Overview of terminology, concepts, issues, policies and technologies associated with the fields of information and software assurance.  Covers the notions of threats, vulnerabilities, risks and safeguards as they pertain to the desired information security properties of confidentiality, integrity, authenticity and availability for all information that is processed, stored or transmitted in/by information systems.

Prerequisite: CS 372 or IS 270 and CS 350 or CS 450.


CS 469 Topics in Information Assurance (3)

Covers topics of special or current interest in the area of computer security that are not covered in other courses.


CS 470 Human Machine Interfaces (3)

This course focuses on developing an understanding of the structure and use of GUI operating system services.  Exploration of several key ideas: (1) classical vs. event-driven programming; (2) structures common to all GUI systems; (3) direct system call level programming vs. class library level programming; (4) Internet GUI systems (Active X and Java).  Students will gain hands-on experience programming GUI's using Visual C++ and the Microsoft Foundation classes, Win32 API, and Java AWT and Swing class libraries.

Prerequisite CS 311. 


CS 471 Metrics and Testing (3)

This course covers the principles of systematic testing of software systems, software verification, symbolic verification, symbolic execution, software debugging, quality assurance, measurement and prediction of software reliability, project management, software maintenance, software reuse, and reverse engineering.   Emphasizes the process of software testing and different testing techniques and methodologies used in the industry.  Also covers topics related to the management of a testing project.

Prerequisite: CS 430 .


CS 472 Operating Systems-Advanced Topics (3)

The advanced operating systems topics course is a project-oriented course for senior computer science majors who wish to explore advanced program development techniques utilizing operating system services.   Students will develop an understanding of the structure and purpose of distributed operating systems including process control, file systems, input/output systems and memory management.  Hands-on experience in advanced development of applications focusing on the development of distributed and client/server applications.

Prerequisite: CS 372.


CS 474 Concurrent Systems (3)

Study of parallel architecture and parallel programming paradigms.  A comparison of large grain and fine grain programming methods.  Topics also include: process creation and termination, shared and private data, scheduling algorithms and interprocess communication.

Prerequisite: CS 311.


CS 475 Applied Computational Intelligence (3)

Introduction to the field of artificial intelligence, including symbolic reasoning, first order logic, heuristic search, game playing, intelligent agents, planning and machine learning.  Major successes and failure of the past plus current predictions of the future of AI will be discussed.  Student will complete short programming assignments that apply AI concepts.

Prerequisite: CS 315.


CS 479 Topics in Software Engineering (3)

Course covers topics of special or current interest in the area of software engineering that are not covered in other courses.


CS 481 Computer Graphics (3)

This course covers the basic principles for the design, use, and understanding of computer graphics. Algorithms for creating and manipulating graphic displays using a graphics kernel system are examined. The course also examines the hardware and software components of graphics systems.

Prerequisite: CS 260.


CS 482 Modeling and Simulation (3)

Design and construction of computer models.  Use of these models will be used to simulate the behavior of the modeled system (1) to better understand the system, (2) to predict how it might behave under different circumstances, and (3) to find ways to improve the performance of the system.  Covers both discrete and continuous system models.  Study of the process of translating one's mental model into a computer modeling language in order to perform simulations.

Prerequisite: CS 260.


CS 483 System Administration (3)

Prepares a student to be a system administrator for an enterprise level server.  Operating system and server to be studied will be chosen from among the currently available systems.

Prerequisite: CS 450.


CS 484 Neural Networks (3)

Explores computation in massively interconnected networks of simple, autonomous processing elements.  Examines the ideas motivating connectionist computation, how neural nets have been successfully applied to engineering tasks and cognitive modeling.  Students will complete individual projects exploring the computational properties of neural networks.  Students are expected to be comfortable with calculus and simple matrix operations.

Prerequisite: CS 311.


Upper Division Information Systems Course Descriptions


IS 320 Data Structures (3)

Develops the ability to work with the classical abstract data structures. Students will work with the time complexity when applied to sorting and searching various data structures. Students will work with algorithms that apply to graphs.

Prerequisite: CS 162.


IS 399 Information Systems Topics (1-6)

Course content will vary.  Topics are selected relative to new subject area in Information Systems appropriate to junior level.


IS 406 Special Topics (1-4)

Course is to be offered on an individual student basis.  It is designed to support students in investigating the application of programming methods to problems related to their declared major.


IS 407 Seminar (1-4)

Terms and hours to be arraigned.


IS 409 Practicum (3-6)

Offers practical experience working within a business or industry. 


IS 421 Database Administration (3)

Presents the fundamentals of database administration, including installation, configuration, physical storage allocation and management, security, auditing, backup and recovery, and troubleshooting. Upon successfully completing this course, students will know how to install and configure SQL servers; create and manage user logins and privileges; establish backup and recovery procedures; manage devices, databases and other disk storage; establish auditing procedures; and solve problems which arise during SQL server operations.

Prerequisite: CS 420.


IS 425 Introduction to Project Management (3)

The origins of project management and its importance to improving the success of IT projects.  Basic topics including scope, cost and time management will be covered.  Students will work in groups to plan large scale project management.  Students will also learn about software tools that aid in project management.

Prerequisite: IS 320.


IS 430 IT Project Implementation (3)

Continuation of IS 425.  Student groups implement a planned information technology project.  Students will develop more detailed project plans.  More advanced topics in project management such as risk and quality management will also be covered.

Prerequisite: IS 425


IS 431 Web Based Application Development (3)

An introduction to the implementation of common business applications for electronic commerce using Internet related technologies.  The basics of Hyper-Text Markup Language (HTML), Common Gateway Interfaces (CGI), Java, and other current technologies will be covered in the context of electronic commerce applications on the Internet. Prerequisite: CS 350 and CS 420.


IS 452 Internet (3)

Course focuses on networking hardware, software, and protocols related to the Internet beyond a LAN.  Topics may include routing protocols, HTTP, network security and Web server configuration and operation.

Prerequisite CS 350.


IS 483 Systems Administration (3)

Students will gain knowledge so they can be well prepared as server administrators.

Prerequisite: CS 350.



Department of Computer Science (503) 838-8480 | or e-mail: