Data Structures and Algorithms

Fall 2020
Sophomore - Senior
Class Size: 50
16 Credits per quarter
Log in to add this offering to your saved list.
Taught by

This program is intended to help you gain the technical knowledge and skills required to understand, analyze, modify, and build complex software systems. Data structures and algorithms are the fundamental building blocks for creating these systems. Deepen your understanding of computing systems, both in theory and practice. The work will provide prerequisite knowledge for all of the advanced programs.

Just as computer technology has an impact on almost anything we do, data structures and algorithms are central to advanced study in computer science, whether it is about building systems to control computers, create large applications, or analyze data. Along with building these systems, one needs to analyze them. This program is for computer science students who are already familiar with a programming language, are familiar with linear data structures such as linked lists, stacks, and queues, and can write programs of medium complexity. The emphasis in this program will be on object-oriented design.

The program content will be organized around several interwoven themes. The Data Structures and algorithms theme will cover linear and non-linear data structures, including important algorithms and analyses of their complexity. The Programming theme will focus on object-oriented programming. The Systems theme will cover core concepts and structures of computing systems, choosing among formal languages, architecture, operating systems, and database systems.  We will explore these themes throughout the quarter via lectures, programming labs, homework exercises, and workshops.

To successfully participate in this program, students will need a computer and internet. Students can expect our remote teaching to be around 2 hours of synchronous (scheduled) coursework per week, using Zoom. Students will have access to alternatives to synchronous participation if conditions require. There may be optional in-person on campus outdoor activities. 



2 quarters of object-oriented programming, at least one quarter of discrete math (including big-O) , 1 quarter of computer architecture.

Fall 2020 Registration

Signature Required

Students must have previous college-level study in computer science as gained in Computer Science Foundations or the equivalent. Students should email the faculty (, with a brief statement of how they have met the prerequisites, e.g. course completion or equivalent. If students meet the prerequisites and send their request at least 1 week before fall quarter, they will receive an electronic signature to enroll. Otherwise, they may need to get a paper signature. 

Course Reference Numbers

So - Sr (16): 10008

Academic details

Fields of Study
Preparatory for studies and careers in

computer science and mathematics.

Maximum Enrollment
Class Standing
Upper Division Science Credit

Up to 16 upper division science credits will be awarded to students who successfully complete the program requirements.


Time Offered
Schedule Evergreen link
see Schedule Evergreen for detailed schedule

First Meeting



Date Revision
2020-08-13 This program is now fully remote