The Washington State University Vancouver Catalog

Courses with the CS Subject

The online catalog includes the most recent changes to courses and degree requirements that have been approved by the Faculty Senate, including changes that are not yet effective.

Courses

The online catalog includes the most recent changes to courses and degree requirements that have been approved by the Faculty Senate, including changes that are not yet effective. Courses showing two entries of the same number indicate that the course information is changing. The most recently approved version is shown first, followed by the older version, in gray, with its last-effective term preceding the course title. Courses shown in gray with only one entry of the course number are being discontinued. Course offerings by term can be accessed by clicking on the term links when viewing a specific campus catalog.


Computer Science - Vancouver (CS)

Fall 2019 Spring 2020 

Enrollment in 400-level computer science courses is restricted to certified majors or minors in computer science and to juniors and seniors officially certified in other degree programs requiring these computer science courses.


115 Introduction to Data Analytics 3 Basic concepts, principles, and tools used in data analytics. (Crosslisted course offered as CPT S 115, CS 115, STAT 115).

121 Program Design and Development 4 (3-3) Course Prerequisite: MATH 171 with a C or better or concurrent enrollment. Formulation of problems and top-down design of programs in a modern structured language for their solution on a digital computer. Typically offered Fall.

122 Data Structures 4 (3-3) Course Prerequisite: CS 121 with a C or better, or CS 251 with a C or better. Advanced programming techniques: data structures, recursion, sorting and searching, and basics of algorithm analysis. Typically offered Spring.

166 Discrete Mathematics 3 Course Prerequisite: CS 122 with a C or better or concurrent enrollment; MATH 171 with a C or better or concurrent enrollment. Introduction to the theoretical foundations of computing. Combinatorics, relations, trees, graphs, Boolean algebra, proof methods, and discrete probability as applied to computer science.

215 Data Analytics Systems and Algorithms 3 Course Prerequisite: CPT S 122, CPT S 132, or CS 122. Exploration of fundamental concepts, constructs, and techniques of modern data analytics systems. (Crosslisted course offered as CPT S 215, CS 215).

223 Advanced Data Structures 3 Course Prerequisite: CS 122 with a C or better; CS 166 with a C or better. Advanced data structures, object oriented programming concepts, and program design principles. Typically offered Fall.

224 Programming Tools 3 Course Prerequisite: CS 122 with a C or better. Debugging tools, scripting languages, UNIX programming tools, introduction to graphical user interface programming. Typically offered Spring.

251 C Programming for Engineers 4 (3-3) Course Prerequisite: MATH 171 with a C or better or concurrent enrollment. Introduction to the C programming language and application to engineering problem solving; introduction to data structures, sorting and searching; laboratory use of integrated development environments and debugging tools. Typically offered Spring.

260 Computer Organization 3 Course Prerequisite: CS 122 with a C or better. Introduction to computer architecture, data representation, design and analysis of instruction sets, implementation of machine instructions, virtual memory and multiprocessing. Typically offered Fall.

261 C and Assembly Language Programming 3 Course Prerequisite: CS 260 with a C or better. C language concepts, professional practices and C programming; module linkage; assembly language concepts and programming. Typically offered Spring.

315 Introduction to Data Mining 3 Course Prerequisite: CPT S 215, 223, 233, or CS 315, with a C or better; certified major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. The process of automatically extracting valid, useful, and previously unknown information from large repositories. (Crosslisted course offered as CPT S 315, CS 315).

317 Automata and Formal Languages 3 Course Prerequisite: CS 122 with a C or better; CS 166 with a C or better; certified major in Computer Science. Finite automata, regular sets, pushdown automata, context-free language, Turing machines and the halting problem. Typically offered Fall.

320 [M] Fundamentals of Software Engineering 3 Course Prerequisite: CS 166 with a C or better; CS 224 with a C or better; certified major in Computer Science. Introduction to software engineering; requirements analysis, definition and specification; software process models; prototyping; architecture; object-oriented design with UML. Typically offered Fall.

320 (Effective through Summer 2019) [M] Fundamentals of Software Engineering 3 Course Prerequisite: CS 166 with a C or better; CS 224 with a C or better; ENGLISH 402 with a C or better or concurrent enrollment; certified major in Computer Science. Introduction to software engineering; requirements analysis, definition and specification; software process models; prototyping; architecture; object-oriented design with UML. Typically offered Fall.

330 Numerical Computing 3 Course Prerequisite: CS 251 with a C or better, or CS 261 with a C or better; MATH 172 or 182 with a C or better; MATH 220 with a C or better; certified major in Computer Science. Power and limitation of numerical solutions; design, analysis and implementation of numerical algorithms; visualization and rendering. Typically offered Fall.

351 Introduction to Database Systems 3 Course Prerequisite: CS 223 with a C or better; CS 224 with a C or better; certified major in Computer Science. Introduction to database concepts, data models, database languages, database design, implementation issues. Typically offered Spring.

355 Programming Language Design 3 Course Prerequisite: CS 223 with a C or better; CS 224 with a C or better; certified major in Computer Science. Design concepts of high-level programming languages; survey of existing languages, experience using some languages. Typically offered Spring.

360 Systems Programming 4 (3-3) Course Prerequisite: CS 224 with a C or better; CS 251 with a C or better, or CS 261 with a C or better; certified major in Computer Science. Implementation of systems programs, concepts of computer operating systems; laboratory experience in using operating system facilities. Typically offered Spring.

402 [M] Social and Professional Issues in Computer Science 3 Course Prerequisite: ENGLISH 402 or 403; certified major in Computer Science. Social, legal, ethical and professional issues that arise in the context of computing. Typically offered Spring.

415 Big Data 3 Course Prerequisite: CPT S 215, 223, or 233, with a C or better; certified major or minor in Computer Science, Computer Engineering, Electrical Engineering, Software Engineering, or Data Analytics. Big data models, databases and query languages, modern distributed database systems and algorithms. (Crosslisted course offered as CPT S 415, CS 415).

420 [CAPS] Software Design Project I 3 Course Prerequisite: CS 320 with a C or better; CS 360 with a C or better; senior standing. Development of software in a team environment; project management; unit and integration testing, bug tracking, configuration management, software process models; object-oriented design with UML. Typically offered Fall.

421 Software Design Project II 3 (2-3) Course Prerequisite: CS 420 with a C or better; senior standing. Large-scale software development in a team environment; software design and implementation, project management, testing and integration; teamwork skills, communication, source code management, documentation and presentations. Continuation and completion of CS 420 project. Typically offered Spring.

424 [CAPS] [M] Data Analytics Capstone 3 Course Prerequisite: CPT S/CS 315; STAT 360; STAT 436 or concurrent enrollment; CPT S 451/CS 351 or concurrent enrollment; certified major in Data Analytics; junior standing. Team-based project that integrates the main aspects of data analytics. (Crosslisted course offered as CPT S 424, CS 424, STAT 424).

425 Digital Forensics 3 Course Prerequisite: CS 360 with a C or better. Use of computers in the investigation of criminal and civil incidents in which computers or computer technology play a significant or interesting role. Typically offered Spring.

426 Applied Systems Security 3 Course Prerequisite: CS 224 with a C or better; CS 261 with a C or better; certified major in Computer Science. Foundations, theory, and practice of non-cryptographic computer security; design of secure software; adding security to existing systems; other contemporary topics in security. Typically offered Fall.

426 (Effective through Summer 2019) Applied Systems Security 3 Course Prerequisite: CS 224 with a C or better; CS 261 with a C or better; certified major in Computer Science. Foundations, theory, and practice of non-cryptographic computer security; design of secure software; adding security to existing systems; other contemporary topics in security. Typically offered Fall.

427 Cryptography and Network Security 3 Course Prerequisite: CS 166 with a C or better; CS 360 with a C or better. Computer security concepts, models and mechanism; encryption technology, formal models, policy and ethical implications. Credit not granted for both CS 427 and CS 527. Offered at 400 and 500 level. Typically offered Spring.

427 (Effective through Summer 2019) Computer Security 3 Course Prerequisite: CS 166 with a C or better; CS 360 with a C or better. Computer security concepts, models and mechanism; encryption technology, formal models, policy and ethical implications. Credit not granted for both CS 427 and CS 527. Offered at 400 and 500 level. Typically offered Spring.

440 Artificial Intelligence 3 Course Prerequisite: CS 320 with a C or better; STAT 212 with a C or better or STAT 360 with a C or better. Knowledge representation and automated problem solving; theory and application of agent programming. Typically offered Spring.

442 Computer Graphics 3 Course Prerequisite: CS 223 with a C or better; CS 320 with a C or better; MATH 220 with a C or better. Raster operations; transformations and viewing; geometric modeling; visibility and shading; color. Credit not granted for both CS 442 and CS 542. Offered at 400 and 500 level. Typically offered Fall.

443 Human-Computer Interaction 3 Course Prerequisite: Certified major in Computer Science; junior standing. Introduction to the field of human-computer interaction; understanding the system user; user-centered design and evaluation techniques including heuristic evaluation and usability testing. Typically offered Spring.

447 Computer Game Design 3 Course Prerequisite: CS 223 with a C or better; CS 320 with a C or better. Design and implementation of computer games. Credit not granted for both CS 447 and CS 547. Offered at 400 and 500 level. Typically offered Fall.

450 Design and Analysis of Algorithms 3 Course Prerequisite: CS 223 with a C or better; STAT 360 with a C or better; certified major in Computer Science. Analysis of data structures and algorithms; computational complexity and design of efficient data-handling procedures. Typically offered Fall.

452 Compiler Design 3 Course Prerequisite: CS 317 with a C or better; CS 355 with a C or better. Design of lexical analyzers, syntactic analyzers, intermediate code generators, code optimizers and object code generators. Typically offered Spring.

453 Cloud Data Management 3 Course Prerequisite: CS 351 with a C or better. Principles of cloud data management: data models, fragmentation, processing paradigms, consistency, storage, and commercial cloud data management platforms. Typically offered Fall.

455 Introduction to Computer Networks 3 Course Prerequisite: CS 360 with a C or better. Concepts and implementation of computer networks; architectures, protocol layers, internetworking and addressing case studies. Typically offered Fall.

458 Mobile Application Development 3 Course Prerequisite: CS 360 with a C or better or concurrent enrollment. Design and development of mobile applications; introduction to mobile application frameworks, including user interface, sensors, event handling, data management and network communication. Typically offered Spring.

460 Operating Systems 3 Course Prerequisite: CS 360 with a C or better. Role and purpose of operating systems, process and memory management, I/O device management and drivers, file system concepts and design. Typically offered Spring.

466 Embedded Systems 3 (2-3) Course Prerequisite: CS 360 with a C or better, or ECE 370 with a C or better; senior standing. Design and development of real-time and dedicated software systems with an introduction to sensors and actuators. Credit not granted for both CS 466 and CS 566. Offered at 400 and 500 level. Typically offered Spring.

483 Topics in Computer Science V 1-4 May be repeated for credit. Course Prerequisite: Certified major in Computer Science. Current topics in computer science or software engineering. Typically offered Spring.

487 Software Design and Architecture 3 Course Prerequisite: CPT S 321 with a C or better; CPT S 322 with a C or better; certified major or minor in Computer Sci, Computer Engr, Electrical Engr, Software Engr, or Data Analytics. Enrollment not allowed if credit already earned for CPT S 323. Software design; design principles, patterns, and anti-patterns; design quality attributes and evaluation; architectural styles, architectural patterns and anti-patterns. Credit not granted for both CPT S 487 and CPT S 587, or for both CPT S 487 and 323. Offered at 400 and 500 level.

499 Special Problems V 1-4 May be repeated for credit. Independent study conducted under the jurisdiction of an approving faculty member; may include independent research studies in technical or specialized problems; selection and analysis of specified readings; development of a creative project; or field experiences. Typically offered Fall and Spring. S, F grading.

501 Cloud Systems 3 Fundamental concepts of cloud computing and their applications within commercial systems; exposure to current research topics in this area. Typically offered Fall.

515 Advanced Algorithms 3 Advanced algorithms and data structures, design and analysis, intractability.

516 Theory of Computation 3 Discrete structures, automata, formal languages, recursive functions, algorithms, computability, and complexity. Required preparation must include a strong background in discrete mathematics, automata, and formal languages. Typically offered Fall.

518 Advanced Analysis of Algorithms 3 Advanced Study in design and analysis of algorithms, including randomized and approximation algorithms, linear programming, network flow and string matching. Typically offered Fall.

521 Software Engineering Analysis 3 Research in software engineering; application of quantitative techniques in the software life cycle; current software engineering literature; exploration of techniques of mathematical modeling and solutions to software engineering problems. Required preparation must include a familiarity with the use and theory behind current software engineering practices. Typically offered Fall.

527 Cryptography and Network Security 3 Computer security concepts, models and mechanism; encryption technology, formal models, policy and ethical implications. Credit not granted for both CS 427 and CS 527. Offered at 400 and 500 level. Typically offered Spring.

527 (Effective through Summer 2019) Computer Security 3 Computer security concepts, models and mechanism; encryption technology, formal models, policy and ethical implications. Credit not granted for both CS 427 and CS 527. Offered at 400 and 500 level. Typically offered Spring.

541 Artificial Intelligence 3 Intelligent computer programs; simulation of cognitive processes. Required preparation must include prior knowledge and experience in artificial intelligence. Typically offered Spring.

542 Computer Graphics 3 Raster operations; transformations and viewing; geometric modeling; visibility and shading; color. Credit not granted for both CS 442 and CS 542. Offered at 400 and 500 level. Typically offered Fall.

547 Computer Game Design 3 Design and implementation of computer games. Credit not granted for both CS 447 and CS 547. Offered at 400 and 500 level. Typically offered Fall.

548 Advanced Computer Graphics 3 Solid modeling, visual realism, light and color models, advanced surface generation techniques. Required preparation must include a prior knowledge and understanding of linear algebra and the graphics pipeline. Typically offered Spring.

558 Wireless Sensor Networks 3 Design and implementation of sensor networks. Required preparation must include a prior knowledge and understanding of communication protocols such as TCP/IP and experience in network programming. Typically offered Spring.

563 Concurrent Programming 3 Multithreaded programming; parallel programming; distributed programming; theory of concurrency; synchronization techniques; libraries and tools. Typically offered Spring.

564 Distributed Systems 3 Distributed systems concepts; distributed systems models; socket programming; remote procedure call; distributed file systems; transactions and concurrency control; fault tolerance. Typically offered Spring.

565 File and Storage Systems 3 Design and implementation of file and storage systems, introduction of the architecture and characteristics of the components on which storage systems are built. Typically offered Spring.

566 Embedded Systems 3 (2-3) Design and development of real-time and dedicated software systems with an introduction to sensors and actuators. Credit not granted for both CS 466 and CS 566. Offered at 400 and 500 level. Typically offered Spring.

570 Machine Learning 3 Introduction to building computer systems that learn from their experience; classification and regression problems; unsupervised and reinforcement learning.

580 Advanced Topics in Computer Science 3 May be repeated for credit. Typically offered Fall and Spring.

582 Software Testing 3 Software testing, testing levels, testing objectives, testing techniques.

595 Directed Study in Computer Science V 1 (0-3) to 3 (0-9) May be repeated for credit; cumulative maximum 3 hours. Current topics in computer science. Typically offered Fall and Spring.

700 Master's Research, Thesis, and/or Examination V 1-18 May be repeated for credit. Independent research and advanced study for students working on their master's research, thesis and/or final examination. Students must have graduate degree-seeking status and should check with their major advisor/committee chair before enrolling for 700 credit. Typically offered Fall, Spring, and Summer. S, U grading.

Student Affairs Schedules of Classes Commencement Veteran's Affairs Summer Session
 
Office of the Registrar, PO Box 641035, Washington State University, Pullman WA 99164-1035, 509-335-5346, bitter@wsu.edu
Copyright © Board of Regents, Washington State University