Skip to content
Snippets Groups Projects
index.md 11.04 KiB
layout: minimal
title: CSE 373
has_children: true
has_toc: true
seo:
  type: Course
  name: Data Structures and Algorithms

{{ site.tagline }}

{: .mb-2 } {{ site.description }} {: .fs-6 .fw-300 }

{% assign instructors = site.staffers | where: 'role', 'Instructor' %} {% for staffer in instructors %} {{ staffer }} {% endfor %}

Husky Maps is a web app for mapping the world, searching for places, and navigating around Seattle. All these features are powered by the sociotechnical infrastructure of data structures and algorithms, programming abstractions designed by software engineers to represent data and automate processes. CSE 373 asks the question: How does the design of an abstraction affect implementations and clients?

Although CSE 373 is designed to be taken after CSE 143---we expect familiarity with array lists, linked lists, and search trees---the focus is not on programming but rather the design, analysis, and critique of the data structures and algorithms that implement software's social imaginations and designed futures.

  1. Design data structures and algorithms by implementing and maintaining invariants.
  2. Analyze the runtime and design values of data structures and algorithms.
  3. Critique the application of data structures and algorithms toward social problems.

In the first 7 weeks, we'll study 3 interfaces and 6 applications of data structures and algorithms.

  1. Autocomplete data structures and algorithms for search suggestions and DNA indexing.
  2. Priority queue data structures for content moderation and shortest paths.
  3. Graph data structures and shortest paths for seam carving and navigation directions.

In the final 2 weeks, we'll apply our learning toward new problems involving technology and society.