Add notes on the topic

This commit is contained in:
2026-08-20 21:53:08 -04:00
parent 8d50900eaa
commit 5920408271
4 changed files with 33 additions and 1 deletions

Binary file not shown.

View File

@@ -0,0 +1,5 @@
## Overview
We'll go over exercise 2 from [last week](../2026.08.20/overview.md), as well as
a new topic: [topological sort](./topological_sort.md). Try to complete the
exercise from the document.

View File

@@ -0,0 +1,27 @@
## Class ordering
These are some classes for Chapman University, for
the [computer science program](https://catalog.chapman.edu/preview_program.php?catoid=33&poid=6408&print).
![An ordering of classes for Chapman University.](classes.png)
> [!QUESTION] What type of graph is this?
We say that a class is a *prerequisite* or a *dependency* of another class
if we need to take it before that other class. So, we need to take CPSC 230
before CPSC 231, for example.
Could you come up with something like this for your school?
## The algorithm
If you were to come up with a list of classes, such that the list of classes
is in the order which you need to take them, what would that look like?
This order is what we're trying to achieve with the topological sort
algorithm. Note that there can be multiple correct solutions.
## The exercise
Let's write the algorithm. First, test it against the Chapman classes, then
put in your classes and see how it fares against that.

View File

@@ -15,7 +15,7 @@ classes = {
}
def topological_sort(adjacency_list: dict[str, set[str]]):
# return the sorted ordering
# return the sorted ordering ['CPSC 230', 'ENGR 101', 'CPSC 231', ...]
return []
print(topological_sort(classes))