diff --git a/notes-and-examples/2026.08.27/classes.png b/notes-and-examples/2026.08.27/classes.png new file mode 100644 index 0000000..8ca3fbc Binary files /dev/null and b/notes-and-examples/2026.08.27/classes.png differ diff --git a/notes-and-examples/2026.08.27/overview.md b/notes-and-examples/2026.08.27/overview.md new file mode 100644 index 0000000..17c2ca8 --- /dev/null +++ b/notes-and-examples/2026.08.27/overview.md @@ -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. diff --git a/notes-and-examples/2026.08.27/topological_sort.md b/notes-and-examples/2026.08.27/topological_sort.md new file mode 100644 index 0000000..eeca5ac --- /dev/null +++ b/notes-and-examples/2026.08.27/topological_sort.md @@ -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. diff --git a/notes-and-examples/2026.08.27/topological_sort.py b/notes-and-examples/2026.08.27/topological_sort.py index 1bb63a8..5cff7ea 100644 --- a/notes-and-examples/2026.08.27/topological_sort.py +++ b/notes-and-examples/2026.08.27/topological_sort.py @@ -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))