Knowledge in Your Own Environment
In Wednesday’s class, we explored how the Coq proof assistant embeds knowledge about mathematical proof that is formally “in the head” into “the world”. In this demonstration exercise, you will perform a similar analysis for your own development environment. For the purposes of this exercise, we’ll define “development environment” broadly so that you can reflect on a process of interest to you. By development environment, we mean any collection of tools and processes you use to accomplish a task. This includes:
- Your programming development environment which might include your text editor/IDE and accompanying documentation for your chosen language.
- Your “typesetting development environment” which might include your LaTeX IDE and system for working on mathematics problems.
- Your “task-tracking environment” which might include your to-do tracking tools and calendar.
Many other environments are possible; be open-minded! When in doubt, please ask me if you’d like to check if a particular environment you have in mind is in-scope.
For this exercise, you will analyze how your development environment allows you to manage relevant knowledge “in the head” and “in the world”. You will then brainstorm a knowledge-related need that you identified through this analysis and then give a storyboard of an idealized solution to this need.
- First, perform a self-observation of yourself performing tasks in your development environment of choice. Similar to your project observations, take notes of what you do, how you do it, and your in-the-moment feelings about your performance. In particular, note (a) what knowledge you need to know in order to perform your task and (b) where that knowledge exists in your environment. You should conduct your observation over at least two sessions, each lasting at least 30 minutes so that you can gather adequate data.
- After your observations, identify one need that arises due to issues related to managing knowledge in your environment. For example, you might identify that a piece of information, e.g., a useful library function, is hard to find or inaccessible.
- Reflect on this need and come up with one novel potential solution for this need. Like with your project brainstorming, don’t constrain yourself to what you believe is “possible”. Imagine an ideal solution.
- Finally, flesh out this ideal solution using the techniques of sketching and storyboarding to describe (a) the problem you encountered and (b) how your proposed solution would solve this problem?
Present your findings in a 2–3 page report that:
- Describes your chosen development environment.
- Summarizes the notes of your observation, in particular, your findings about knowledge in your environment and where it exists.
- Describes your chosen need.
- Summarizes your ideal solution.
In addition to the report, you should also include your storyboard. As with all storyboarding that we do in this course, you artistry is not important here! Instead, you should focus on making a descriptive storyboard that clearly describes the context of your problem and how your proposed solution would work.