Computer Science
Samuelson Hall Rm. 207
CompSci@cwu.edu
(509) 963-1495
In order to expose computer science majors to a broad theoretical base while emphasizing the laboratory experience, students will complete the CS core courses. To add depth and flexibility to their academic programs, with a faculty major advisor, students will work out a focus area and choose the elective courses approved by the department. A specific focus may be developed in many areas of computer science; examples include: software engineering, intelligent systems, computational science, computer graphics, visualization and computer vision, human-computer interaction, big data analytics, and cybersecurity.
Admission Requirements
Admission to the computer science major or minor is not selective; students may declare at any time. However, progress in the major/minor is dependent upon earning certain grades in prerequisite courses. The grade threshold is a C. Applications will be accepted through the last day of classes (i.e., the week before finals) of the fall, winter, and spring quarters for admission the following quarter.
The computer science department believes that advising is one of the keys to success in an undergraduate program. To that end, majors and minors are encouraged to meet with a computer science advisor every term in order to register. Advisors and advising times are listed with the CS office.
Program Requirements
In addition to the courses listed in the required courses listed in the Program Curriclum, students must complete at least 20 credits of electives. Of these 20, at least 12 must be from CS (excluding CS 490, CS 495, and CS 496).
Program Learner Outcomes
Upon successful completion of this program, students will be able to:
The information below can be used to see the prerequisites for the core courses in the Computer Science major. It is subject to change and cannot replace the academic planning available through an advisor in the Computer Science Department.
For a complete list of Computer Science courses, click here.
CS 110: Programming Fundamentals I
CS 111: Programming Fundamentals II
- A grade of C or higher in CS 110 and one of the following: MATH 153 or MATH 154 or MATH 172 or MATH 173
CS 112: Introduction to Data Science in Python
CS 301: Data Structures - C or higher in CS 111 and C or higher in MATH 154, MATH 172 or MATH 173
CS 302: Advanced Data Structures and File Processing
- Academic Writing I and Academic Writing II and CS 110 and CS 111 and CS 301; Math 172, or Math 173 with a
grade of C or higher in all courses
CS 311: Computer Architecture I - C or higher in CS 111
CS 312: Computer Architecture II - C or higher in CS 301 and CS 311 and CS 325
CS 325: Technical Writing in Computer Science
- Academic Writing I and Academic Writing II and CS 110 and CS 111 with a grade of C or higher in all courses
CS 361: Principles of Language Design I - C or higher in CS 302
CS 362: Principles of Language Design II - CS 361 and MATH 260 with a grade of C or higher in both
CS 380: Introduction to Software Engineering - C or higher in CS 302 and CS 325
CS 392: Lab Experience in Teaching Computer Science
- CS 361 with a grade of C or higher and department permission
CS 420: Database Management Systems - C or higher in CS 302, CS 325 and Math 260
CS 427: Algorithm Analysis - C or higher in CS 302 and Math 330
CS 450: Computer Network and Data Communications
- Academic Writing I and Academic Writing II and CS 301 and CS 311 and CS 325; Math 172, or Math 173 with a
grade of C or higher in all courses
CS 470: Operating Systems - C or higher in CS 302, CS 312, CS 325, and CS 361
CS 480: Advanced Software Engineering
- CS 325 and CS 380 and CS 420 with a grade of C or higher in each course
CS 481: Software Engineering Project - CS 325 and CS 480 and CS 420
CS 489: Senior Colloquium - Co-requisite or prerequisite CS 480
CS 492: Lab Experience in Teaching Computer Science
- CS 302 and CS 392 and department permission
MATH 172: Calculus I
- Completion of MATH 154 with a grade of C or higher or an appropriate test score on the mathematics placement exam
MATH 260: Sets and Logic
- MATH 173 with a grade of C or higher or MATH 172 and CS 301 with grades of C or higher
MATH 330: Discrete Mathematics - MATH 260 with a grade of C or higher
NOTE: Prerequisites are subject to change. Check with the academic catalog.
CS 351: Web Development Technologies II - C or higher CS 111
CS 370: Introduction to Linux
- Academic Writing I and Academic Writing II and CS 110 and CS 111 and CS 301 and Math 172, with a
grade of C or higher in all courses
CS 428: Introduction to Graph Algorithms - C or higher in CS 302 and Math 330
CS 430: Cybersecurity - C or higher in CS 312
CS 440: Computer Graphics
- C or higher in CS 302, CS 361; C or higher in Math 260; Recommend students take Math 265
CS 445: Data and Information Visualization - CS 302 with a grade of C or higher
(CS 445 and CS 545 are layered courses; students may not receive credit for both)
CS 446: User Interface Design and Development - CS 111 with a grade of C or higher
CS 455: Artificial Intelligence
- CS 302, CS 325, CS 362 and MATH 330, with a grade of C or higher in each course
CS 456: Data Mining - CS 302 and MATH 260 with a grade of C or higher in each course
(CS 456 and CS 556 are layered courses; students may not receive credit for both)
CS 457: Computational Intelligence and Machine Learning
- C or higher in CS 302 and Math 330
(CS 457 and CS 557 are layered courses; students may not receive credit for both)
CS 460: Software Engineering for Mobile Devices
- Academic Writing I and Academic Writing II and Math 172, with a grade of C or higher in all courses
CS 465: Scientific Computing - CS 302 and MATH 330
(CS 465 and CS 565 are layered courses; students may not receive credit for both)
CS 467: Computational Statistics - CS 301
(CS 467 and CS 567 are layered courses; students may not receive credit for both)
CS 471: Optimization - CS 302 and CS 325 and MATH 330 with a grade of C or higher in each course
CS 473: Parallel Computing - C or higher in CS 361
(CS 473 and CS 573 are layered courses; students may not receive credit for both)
** Plus additional elective courses offered on occasion