Form a team of between one and four students.
Decide upon a project.
Build the project, spending about four hours per person.
Submit the project.
Present the project.
We have learned a wide variety of techniques for working with text this semester. For example,
You now have the opportunity to work with other students to apply them to a moderate-sized project of your choice. You can choose the technique or techniques you apply. You can choose your data source or sources. All we ask is that you do something that someone will find interesting. Well, we also ask that you keep your time commitment reasonable, about four hours per team member of out-of-class time (plus the presentation).
project.rkt.timelog.txt.Taylor 17 Nov 2021 09:00-09:15 Found relevant Web pages
Taylor 17 Nov 2021 09:15-09:30 Started writing `mungify`
Taylor 17 Nov 2021 09:30-09:45 Wrote tests for `mungify`
Taylor 18 Nov 2021 17:00-17:15 Met with group
Taylor 18 Nov 2021 17:15-17:30 Finished writing `mungify`
Taylor 20 Nov 2021 12:00-12:15 Looked for collections of words for sentiment analysis
...
Your group will give a 5–10 minute presentation to the class on Monday, 29 November 2021. There may also be other audience members present.
In your presentation, you should make sure to show off the results of your project and to discuss any particularly interesting code you wrote.
The following are not intended as restrictive; rather, they are to help you consider kinds of things you might do.
You might identify a series of reports (e.g., fires at national forests) and visualize the series data.
You might write a program that generates a word cloud for an arbitrary Web page.
You might write a program that generates a particular form of poetry, such as villanelles.
You might write a program that conducts sentiment analysis on each paragraph of a Web page and re-styles those paragraphs depending on the sentment of the paragraph.
As you’ve likely learned by now, it can be difficult to predict how long it will take to write a program. Hence, we encourage you to take a minimum viable product approach to this project. That is, identify the simplest possible version of the project, build that, and then add features as you go.
For example, if you were doing the “word cloud” project above, you might start with a program that takes an ordered list of word/appearances pairs and makes an image of the first ten words stacked above each other.
Once that works, you can add: resizing words, based on the number of appearances; recoloring words (randomly?); changing orientation; going from Web page to ranked list of words; etc., etc.
This rubric is approximate. Our goal is that if you do the work and follow good habits, you sould get an M.
[ ] All necessary files included
[ ] Project runs and produces correct output on most inputs
[ ] Documentation describes goals of project, what was achieved, and how to run it
[ ] Time log appears reasonable
[ ] Presentation between 5 and 10 minutes
[ ] Presentation includes both results and underlying code
[ ] Answered questions well
[ ] Code correctly formatted (a few mistakes are permissible)
[ ] One or more of the following, at the discretion of the grader.
[ ] A particularly nice procedure or piece of code (please describe in documentation)
[ ] A particularly valuable, clever, or innovative project
[ ] An outstanding, nearly flawless, presentation
[ ] All procedures documented
[ ] Almost no inefficient or otherwise bad code
[ ] Documentation clear and well orgnized