Creating more teaching tools for ML and Society course
This page contains a quick overview of the proposed project on creating more teaching tools for future iterations of the course.
A Request
I know I am biased in favor of references that appear in the computer science literature. If you think I am missing a relevant reference (outside or even within CS), please email it to me.
Mentor
Atri.
Background
Are you will see, we will be using Jupyter notebooks to do a bunch of in-class activities to better understand the material. Unfortunately, due to lack of time, we could not develop the notebooks as much as we had hoped to do. This is where you come in!
Proposed project
High level goal
The high level goal of this project is to augment the existing notebooks so that they can benefit students taking future incarnations of this course.
Below is a partial list of things that could be done to improve the notebooks:
- Improving or adding new widgets to existing notebooks. The notebooks you will see in the course will have some widgets. However, some of the widgets could be improved (starting from changing the layout of the widget to adding more functionality) or perhaps there could be new widgets created that are currently missing.
- Augmenting existing notebook content. Some (or perhaps most?) of the current notebooks could do with some extra activities to make it more complete/useful for in-class lecture activities.
- Creating more "generic" notebooks. The existing notebooks focus on the COMPAS dataset: extending notebooks to arbitrary datasets would be nice.
- Integrating existing tools into existing notebooks. For example, integrating functionality of the What-If Tool into existing notebooks would really allow for some nice activities related to fairness issue that we will cover in class.
- Creating auto-gradeable notebooks. Create assignments via Jupyter notebooks that can be graded as an assignment (in some cases graded automatically).
Proposed project-specific deliverables
We first list all the steps that would need to be done to take this project to its logical conclusion:
- Figure out what capabilities already exist in the existing notebooks.
- Pick as many of the following options as is feasible/relevant for your group project:
- Improving existing widgets this could include e.g. adding more functionality to an existing widget and/or improving the layout of an existing widget.
- Adding a new widget. Add a new widget that would be nice to have but does not exist (e.g. adding widgets to apply various fairness definitions to a given model).
- Augmenting existing notebook content.
- Create a more "generic" notebook.
- Import more functionality from existing tools
- Creating auto-gradeable notebooks.
What is expected from you in this project
To get full credit on this project you have to do step 1 and at least three sub-steps in Step 2. (It is possible, depending on how you plan your project that it might be enough to pick one or two sub-step(s) from Step 2-- talk to the mentors for more on this.) Of course doing more sub steps from step 2 would be awesome and is greatly encouraged!