Western Washington University · Bellingham, Washington
Computer Science, BS
What Is the Study of Computer Science?
Computer Science at Western is organized around the study of design and analysis techniques used to write software or programs in various application areas, along with details about the internal workings of computers (known as computer architecture and operating systems). The design and analysis techniques encompass many areas of study such as (1) algorithms and data structures (ways to organize instructions and information efficiently), (2) programming languages (specific methods of delivering instructions to computers), (3) software methodology and engineering (processes to develop software and ways to organize groups of instructions), (4) databases and information retrieval, and (5) artificial intelligence.
Why Should I Consider this Major?
With the Bachelor of Science degree, students are prepared for graduate study or careers in industry as systems analysts and/or designers. Systems analysts assess the needs of a project for computer hardware and software, and then proceed to design systems that meet those needs. Systems analyst positions are not entry-level. They are the typical career path for students with Bachelor of Science degrees in Computer Science.
Graduates often begin their careers doing computer programming, which is a creative process spanning a wide range of areas of expertise that is heavily influenced by the application for which the programs or software is being developed. The Bachelor of Science degree provides a problem-solving and analytical background that is typical of the creative expertise employed by very good programmers and systems analysts to obtain programming solutions.
How to Declare:
Pre-Major: Available. Contact the CS advisor for further information. Students who are not yet majors should seek advice in the department office as soon as possible.
Admissions: Admission to the Computer Science pre-major and major is by application, which is available either online or outside CF 459.
Coursework to Declare:
- CSCI 241 Data Structures
- Prerequisites: CSCI 145; MATH 124
- CSCI 247 Computer Systems I
- Prerequisites: CSCI 145
Note: Only courses taken at WWU are considered for the major application. If you have already taken an equivalent course elsewhere, the CS Undergraduate Advisor will identify alternative courses to be taken for entry to the major. You may only repeat a required course once.
Application Deadline: The deadline to apply for the major is the first day of class each quarter.
- CSCI 141 - Computer Programming I
- CSCI 145 - Computer Programming & Linear Data Structures
- CSCI 241 - Data Structures
- CSCI 247 - Computer Systems I
- CSCI 301 - Formal Languages and Functional Programming
- CSCI 305 - Analysis of Algorithms and Data Structures I
- CSCI 322 - Principles of Concurrent Programming
- CSCI 330 - Database Systems
- CSCI 345 - Object Oriented Design
- CSCI 352 - Unix Software Development
- CSCI 367 - Computer Networks I
- CSCI 405 - Analysis of Algorithms and Data Structures II
- CSCI 491 - Software Project Requirements Analysis
- CSCI 492 - Software Project Design
- CSCI 493 - Software Project Implementation
- MATH 124 - Calculus and Analytic Geometry I
- MATH 125 - Calculus and Analytic Geometry II
- MATH 204 - Elementary Linear Algebra
- MATH 341 - Probability and Statistical Inference
- 16 credits chosen from the following, of which a maximum of 4 credits may be from CSCI 400 projects:
- CSCI 321 - Game Programming
- CSCI 342 - Web Scripting
- CSCI 343 - Programming Workshop
- CSCI 347 - Computer Organization II
- CSCI 351 - Windows Software Development
- CSCI 372 - Robotics: Applications of Artificial Intelligence
- CSCI 380 - Numerical Computations
- CSCI 400
- CSCI 401 - Automata and Formal Language Theory
- CSCI 402 - Artificial Intelligence
- CSCI 404 - Natural Language Processing
- CSCI 410 - Programming Languages
- CSCI 412 - Mobile Device Programming
- CSCI 417
- CSCI 430 - Database Theory
- CSCI 442 - Advanced Web Programming in Java
- CSCI 450 - Compiler Theory and Design
- CSCI 460 - Operating Systems
- CSCI 461 - Computer Security
- CSCI 462 - OS Device Drivers
- CSCI 463 - Cyber Defense
- CSCI 467 - Computer Networks II
- CSCI 474 - Bioinformatics
- CSCI 480 - Computer Graphics
- M/CS 335 - Linear Optimization
- M/CS 375 - Numerical Computation
- M/CS 435 - Nonlinear Optimization
- M/CS 475 - Numerical Analysis
- NOTE: Undergraduate students may take 500-level courses only if they have a GPA of at least 3.0 and instructor permission
- A science sequence chosen from:
- BIOL 204 - Introduction to Evolution, Ecology and Biodiversity
- BIOL 205 - Introduction to Cellular and Molecular Biology
- BIOL 206 - Introduction to Organismal Biology
- CHEM 121 - General Chemistry I
- CHEM 122 - General Chemistry II
- CHEM 123 - General Chemistry III
- GEOL 211 - Physical Geology
- GEOL 212 - Historical Geology
- and one of:
- GEOL 308 - Earthquakes
- GEOL 309 - Volcanology
- GEOL 310 - Geomorphology
- GEOL 314 - Engineering Geology
- PHYS 161 - Physics with Calculus I
- PHYS 162 - Physics with Calculus II
- PHYS 163 - Physics with Calculus III
- A minimum of 45 credit hours of mathematics content and science. This total includes the science sequence and mathematics courses listed above as well as 3 credit hours of mathematics content for CSCI 301 and 2 credit hours of mathematics content for CSCI 305. Additional courses used to satisfy the minimum 45 credit hour total must be chosen from:
- MATH or M/CS courses for which at least one of the required MATH courses is a prerequisite.
- Science courses for which at least one of the courses from the chosen science sequence is a prerequisite.
- Science courses from science sequences above other than the chosen sequence.
- Exit requirement: Major Field Examination, administered externally.
These courses are offered within this major and may be used to satisfy GUR or Writing Proficiency Requirements.
- QSR: CSCI 141, 145; MATH 124, 125
- LSCI: BIO 204, 205, 206; CHEM 121, 122, 123; GEOL 211, 212; PHYS 161, 162, 163
- SCI: GEOL 308
- Applied Science Technologist
- Computer Engineer
- Data Control Administrator
- Database Administrator
- Game Programmer
- Project Manager
- Research Analyst
- Robotics Programmer
- Systems Administrator
- Systems Analyst
- Systems Engineer
- Technical Writer
- Web Developer