Primary tabs

Data Structures and Algorithms

Quarters
Fall Open
Location
Olympia
Class Standing
Sophomore
Junior
Senior
Richard Weiss
Paul Pham
Jessica Carey
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)

Registration

Students are expected to have had coursework in discrete math, computer systems, and one year of computer programming. These prerequisites are covered by completion of Computer Science Foundations or equivalent courses elsewhere. Please contact faculty if you have some but not all of the prerequisites to see if there are parts of the program you can take, or if you are unsure if you meet the prerequisites.

Course Reference Numbers

So - Sr (12): 10026

Academic Details

Studies or careers in software development, research and development

12
50
Sophomore
Junior
Senior

Up to 12 upper division science credits in data structures, algorithms, parallel and distributed computing, and seminar will be awarded to students who successfully complete the program requirements.

Schedule

Fall
2024
Open
Hybrid (F)

See definition of Hybrid, Remote, and In-Person instruction

Day
Schedule Details
Evans Hall 2619 - Mac Lab
Olympia

Revisions

Date Revision
2024-09-11 Program description revised, including anticipated credit equivalencies
2024-09-11 Faculty Jessica Carey added to teaching team