Data Structures and Algorithms is a 12-credit upper division applied Computer Science program that is necessary for doing any additional advanced work in computer science and software engineering. Students will concentrate on:
- Data Structures and Algorithms;
- Software Engineering
- Computer Systems and Parallel and Distributed Computing
As computer science students, you will gain the technical knowledge and skills required to understand, analyze, modify, and build complex software systems. Underlying this work is a knowledge of how modern systems lay out data and the algorithms for operating on them efficiently. The concepts and skills from Data Structures and Algorithms are key for software engineering and programming. Through this program you will deepen your understanding of computing systems, both in theory and practice. The work will provide prerequisite knowledge for Evergreen's advanced computer science programs.
The Software Engineering thread provides an in-depth exploration of the software engineering development pipeline, including engineering structures, tools commonly used in the field, and agile methodologies. Students will engage with various aspects of software engineering, from front-end and back-end development to quality assurance (QA) and quality engineering (QE), with a central focus on inclusive engineering practices that ensure systems are accessible to all users, regardless of ability. Participants will have the opportunity to tailor their learning by focusing on either front-end, back-end, or management roles. The course culminates in a collaborative final project where students will work as an integrated engineering team to deliver a cohesive software solution.
Today’s computer hardware offers many possibilities for parallel computing. Computer chips have multiple cores. Computer boards have GPUs, as well as CPUs. Cloud computing offers the possibility of networking together multiple computers/blades in a data center. Nevertheless, most software is written assuming that it will run on a single core. In Parallel and Distributed Computing (PDC), we will explore how to take advantage of the hardware options that are available. Many important applications can benefit from parallel hardware including generative AI, weather forecasting, and bioinformatics.
Students who have taken Data Structures & Algorithms before will participate in an advanced seminar on computational problem-solving.
This full-time daytime program will be taught on the Olympia campus. Students who need to participate fully remotely should contact the faculty to discuss that option.
Anticipated Credit Equivalencies:
*4 - Data Structures and Algorithms in Java
*4 - Software Engineering
*4 - Parallel and Distributed Computation
(* indicates upper division science credit available)