Design and Analysis of Algorithms

Ethics Content Description

The ethics materials focus on difficulties that computer scientists and engineers might face when trying to apply algorithms to comlpex, real-world problems: incommensurable values, imperfect proxy measures, threats faced by people whose personal information might be included in or excluded from the data algorithms operate on, problems with idealization and abstraction, and wicked problems like equitable hiring. The materials also explore how philosophical theories of moraltiy or justice (like utilitarianism) can and cannot help us resolve the difficult questions about value that arise when applying algorithms in the real world.

Course Description

This course covers basic approaches for designing and analyzing algorithms and data structures. Topics include the following: Worst and average case analysis; recurrences and asymptotics; efficient algorithms for sorting, searching, and selection; data structures: binary search trees, heaps, hash tables; algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, randomization; Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching, amortized analysis, stable matchings, and approximation algorithms.

Contributors

Ethics materials by Kathleen Creel, Benji Xie, Daniel Webber, Makenzy Caldwell, Ricky Parada, and Nicole Lee.

Modules (Assignments + Lectures)

Lectures

Download all