Skip to body

Computer Science

Course Descriptions

100 Level Courses

CS 101. Computer Basics (4 credits). Prerequisite, high school or college algebra. Literacy course; basic computer structure; introduction to word processing, spreadsheet and database programs; introduction to the Internet.

CS 105. The Logical Basis of Computing (4 credits). Problem solving; algorithm development; complexity; computability. Representation of algorithms as computer programs; data; decision and control; inherent sources of error.

CS 110. Programming Fundamentals I (4 credits). Fundamental concepts of programming from an object-oriented perspective. Classes, objectives and methods, algorithm development, program solving techniques, basic control structures, primitive types and arrays.

CS 111. Programming Fundamentals II (4 credits). Prerequisites, CS 110, MATH 163.1. Continuation of object-oriented programming concepts introduced in CS 110. Inheritance, exceptions, graphical user interfaces, recursion, and data structures.

CS 112. Foundations of Computer Science (4 credits). Overview of the computer science profession including basic computer organization, algorithm development and analysis, computer data representation, computer applications and social issues.

CS 157. Introduction to COBOL Programming (4 credits). Prerequisite, CS 101 or equivalent. An introduction to the COBOL programming language. Business algorithms are developed and translated into common business oriented language programs.

CS 167. Visual Basic Programming (4 credits). Prerequisites, MATH 130.1 or 163.1, CS 101, AMBE 101 or equivalent. An introduction to Visual Basic programming. Topics will include problem solving, algorithm development, syntax and semantics of Visual Basic, and program debugging. Not intended for CS majors.

CS 177. Introduction to FORTRAN Programming (4 credits). Prerequisites, MATH 163.1 or equivalents. Mathematical and logical algorithms are translated into FORTRAN programs.

CS 187. Introduction to C++ Programming (4 credits). Prerequisite, MATH 130.1 or MATH 163.1 or equivalent. Mathematical and logical algorithms are translated into C++ programs.

Top of Page


200 Level Courses

CS 201. Technology and Society (3 credits). The computer impact, how computers work, applications in business, government, human affairs, control of computer systems. A general survey course.

CS 284. Computer Terminal Equipment Use at CWU (1 credit). Corequisite for courses in departments requiring use of the computer at CWU.

CS 290. Cooperative Education (1-5 credits). An individualized contracted field experience with business, industry, government, or social service agencies. This contractual arrangement involves a student learning plan, cooperating employer supervision, and faculty coordination. Prior approval required. May be repeated. Grade will be S or U.

CS 298. Special Topics (1-6 credits).

Top of Page


300 Level Courses

CS 301. Data Structures (4 credits). Prerequisites, CS 111, MATH 163.2. Introduction to data structures, simple list processing, basic searching and sorting techniques, stacks, queues and trees. Formerly CS 265. Students may not receive credit for both.

CS 302. Advanced Data Structures and File Processing (4 credits). Prerequisite, CS 301, and MATH 172.1. Sequential, random access and indexed file organizations; B-trees; external searching and sorting; I/O buffering. Formerly CS 340. Students may not receive credit for both.

CS 305. Programming Language Survey (3 credits). Prerequisite, CS 301. One or more sections offered each quarter, each of which features a programming language of interest for historical, functional, or theoretical reasons. Languages offered will include: A. "FORTRAN", B. "C++", C.. "COBOL", D. "MODULA-2", E. "ADA", F. "LISP", G. "SNOBOL", H. "ALGOL", I. "APL", J. "PROLOG", K. "PASCAL", L. "ICON", M. "SMALLTALK", N. "JAVA". Formerly CS 274. Students may not receive credit for both. May be repeated for credit under different topic.

CS 311. Computer Architecture I (4 credits). Prerequisite, CS 112. Basic computer organization, data representations, assembly language, addressing techniques.

CS 312. Computer Architecture II (4 credits). Prerequisite, CS 301 and CS 311. Introduction to the structure of computers. Digital circuits, central processing units, memory, input/output processing, parallel architectures. Formerly CS 383. Students may not receive credit for both.

CS 325. Technical Writing in Computer Science (3 credits). Prerequisites, ENG 102, CS 301. Writing and editing technical material in computer science.

CS 333. Computer Science Topics for Educators (4 credits). Prerequisite, CS 111. Use and analysis of various applications and utility software packages. Recommended for the prospective teacher.

CS 334. Computer Languages for Educators (4 credits). Prerequisite, CS 111. Introduction to and comparison of computer languages appropriate for use by educators. Recommended for the prospective teacher.

CS 350. Web Development Technology (4 credits). Prerequisites, CS 301, and CS 325. Techniques for World Wide Web software development including XHTML, style sheets, scripting languages, Web databases, XML, and ethical issues related to the Web.

CS 361. Principles of Language Design I (4 credits). Prerequisites, 302. Topics will include evolution of programming languages, syntax and semantics, bindings, scoping, data types, assignment, control, and subprograms.

CS 362. Principles of Language Design II (4 credits). Prerequisites, CS 361 and MATH 260 (can be taken concurrently credits). Topics will include abstract data types, parallel processing, object-oriented programming, exception handling functional programming, and logic programming.

CS 367. Advanced Visual Basic Programming (4 credits). Prerequisite, CS 167 or equivalent. Visual Basic programming and applications. Topics will include advanced data structures, error trapping and debugging, advanced VB and ActiveX controls, macros and databases. Not intended for CS majors.

CS 392. Lab Experience in Teaching Computer Science (1 credit). Prerequisite, CS 301 and permission of department. Supervised experience in developing procedures and techniques in teaching computer science. Grade will be S or U.

Top of Page


400 Level Courses

CS 401. Computer Architecture for Educators (3 credits). Prerequisite, Computer Literacy. Computer Architecture for Educators is designed to acquaint the educator with the hardware aspects of technology, particularly hardware related to activities using technology to enhance learning.

CS 410. Formal Language Theory (4 credits). Prerequisites, CS 325, MATH 230. Language classes: regular, context-free, recursive; language acceptors; finite automata, push-down automata, Turing machines. Four hours lecture per week.

CS 418. Microprocessor Systems (4 credits). Prerequisites, CS 311, CS 325, and either CS 312 or EET 372. Microcomputer systems; peripheral interfacing; interrupt handling; I/O; programming techniques.

CS 420. Database Management Systems (4 credits). Prerequisites, CS 302, CS 325, and MATH 330. Logical aspects of database processing; concepts of organizing data into integrated databases; hierarchical, network, and relational approaches.

CS 427. Algorithm Analysis (4 credits). Prerequisites, CS 302, CS 325, and MATH 330 (minimum grade C credits). Topics will include basic algorithmic analysis, algorithmic strategies, fundamental computing algorithms, basic computability, the complexity classes P and NP, and advanced algorithmic analysis.

CS 435. Simulation (4 credits). Prerequisites, CS 325, MATH 330 and MATH 311 (may be taken concurrently credits) and CS 302. Principles of computer simulation; applications of several simulation languages to continuous and discrete systems.

CS 440. Computer Graphics (4 credits). Prerequisites, CS 302 and CS 325. Graphic I/O devices; 2-dimensional and 3-dimensional display techniques; display processors; clipping and windowing; hidden line removal; data structures for graphics.

CS 446. User Interface Design and Development (4 credits). Prerequisites, CS 301, CS 325, and MATH 311 or OMIS 221. The relationship of user interface design to human-computer interaction. Types of user interfaces, methods of evaluation, user centered design and task analysis, programming tools and environments, and hardware devices.

CS 450. Computer Network and Data Communication (4 credits). Prerequisites, CS 301, CS 311, and CS 325. Device protocols; network configurations; encryption; data compression and security; satellite networks.

CS 455. Artificial Intelligence (4 credits). Prerequisites, CS 302, CS 325, CS 362 and MATH 330. Introduction to the principles of artificial intelligence. Pattern matching, knowledge representation, natural language processing, expert systems.

CS 456. Data Mining (4 credits). Prerequisites, CS 420 or permission of instructor and MATH 311 or OMIS 221. Data mining methods for discovering hidden patterns in large databases and data warehouses with applications in business, science, and engineering.

CS 458. Artificial Intelligence Project (2 credits). Prerequisite, CS 325 and CS 455. Implementation of a significant project relating to artificial intelligence.

CS 460. Optimization (4 credits). Prerequisites, CS 325, CS 427, MATH 265 and MATH 311. Linear programming; game theory; PERT; network analysis; duality theory; and sensitivity analysis.

CS 462. Computer Methods for Social Sciences (4 credits). Prerequisite, at least one course in statistics. Assumes no prior computer experience. How to produce descriptive and inferential statistics and simple graphs using Minitab and SPSS-X. Also listed as PSY 462. Students may not receive credit for both.

CS 465. Compiler Design (4 credits). Prerequisites, CS 325 and CS 362. Theory of compiler construction and computer language design; students write a compiler.

CS 470. Operating Systems (4 credits). Prerequisites, CS 302, CS 312, CS 325. Topics will include principles of operating systems, concurrency, scheduling and dispatch, memory management, processes and threads, device management, security and protection, and file systems.

CS 473. Parallel Computing (4 credits). Prerequisites, CS 325 and CS 470. Major parallel architectures and languages. Parallel programming methodologies and applications.

CS 480. Software Engineering (4 credits). Prerequisites, CS 325, CS 420, and senior standing. The software development process: user requirements, specifications, design, coding, testing, maintenance, documentation and management; students work in teams to develop large software projects.

CS 481. Software Engineering Project (2 credits). Prerequisites, CS 325, CS 480. Continuation of coding, testing, and implementation phases of project begun in CS 480.

CS 489. Senior Colloquium (1 credits). Prerequisites, CS 325 and Senior class standing. Introduction to research in Computer Science through investigation of ethical and historical topics in the field. End of major assessment activities.

CS 490. Cooperative Education (1-12 credits). An individualized contracted field experience with business, industry, government, or social service agencies. This contractual arrangement involves a student learning plan, cooperating employer supervision, and faculty coordination. Prior approval required. May be repeated. Grade will be S or U.

CS 491. Workshop (1-6 credits). The title of the workshop and the credits shall be determined at the time the workshop is approved. Designed to give an opportunity for individual and group study of special areas of computer applications. With the approval of Department Chair, course may be designed for regular letter grade or S or U, depending upon course objectives and methods of instruction.

CS 492. Laboratory Experience in Teaching (1-2 credits). Prerequisites, CS 302, CS 392, and permission. Supervised progressive experience in developing procedures and technique in teaching computer science. May be repeated to a maximum of 15 credits. Grade will be S or U.

CS 493. Practicum (1-5 credits). Prerequisites, 15 credits in CS and permission. Supervised progressive experience in management, operation, programming or systems work in one of the university's computing centers.

CS 496. Individual Study (1-6 credits). Prerequisite, permission of instructor.

CS 498. Special Topics (1-6 credits).

CS 499. Seminar (1-5 credits).

Top of Page