The CS 1377 final project is an opportunity for you to apply what you’ve learned in a month-long open-ended setting.
Scope
Your final project should connect to the themes of the course. That is, it should generally be about software which supports cognition, broadly construed. Cognitive activities include learning, reading, note-taking, planning, organizing, budgeting, modeling, and programming.
Your final project can take one of a few forms:
- Build a system: you design and implement a software system. This could be a standalone tool (e.g. web app, phone app, CLI) or an extension to an existing tool (e.g. Obsidian plugin, Anki plugin, Jupyter plugin). Like you practiced on Assignment 2, the system should address a clear set of problems in some cognitive task, using some combination of interfaces and algorithms.
- Run an experiment: you design and execute a scientific experiment. This could be a analysis of how people work with a particular tool for thought (e.g. spreadsheets, hypertext systems), or a comparative analysis of how two different tools compare for the same task. We can help you recruit participants within the class, or you can find a participant pool elsewhere at Brown.
- Create an explainer: you make a webpage or video which explains a technical concept. This could be an explorable explanation, a multimedia Manim, or something similar. Your explainer should leverage the cognitive principles and software TfT we discussed in class to communicate a concept more effectively than existing approaches.
- Dream a future: you create an artistic work which portrays a view on what the tools for thought of the future should or will be. This could be a short story (e.g., “The Truth of Fact, the Truth of Feeling”) or a video (e.g., “Knowledge Navigator”).
This list is non-exhaustive, and you may propose an alternative form of project if you think it’s related to the course.
The final project should be done in groups of 2-4. (Groups of 1 are permitted, but you should try to find a partner!) You are expected to spend 10 hours per week on the project for four weeks, so the final project should reflect approximately 40 hours per person of work. You should scope your ideas accordingly.
If you’re struggling to think of a good project, here’s some sample ideas to jog your brain:
- Integrate spaced repetition into a new context, such as helping you review content you heard on a podcast or watched on YouTube.
- Use AI tools to automatically generate more memorable versions of information, using poetry, music, and other mnemonic tools we discussed in class.
- Build a better note-taking interface for Zotero.
- Implement sidenotes / marginalia for Obsidian.
- Contribute a new feature to Vega-Lite / Altair, such as one of the open enhancements on the issue tracker.
Proposal
Due: Tuesday, April 7 at 11:59pm [NO LATE DAYS]
Submission link: Gradescope Submission
Your group’s project proposal should describe the outline of your project. The goal of the proposal is (a) for you to articulate a concrete plan, and (b) for us to give feedback to ensure you’re on the right track. (Also, writing project proposal documents is an extremely valuable skill which you will use in basically any future job!)
Your proposal must incorporate the following elements: