Project 1: Text Generation

Assigned: Monday, March 5, 2007
Due: Wednesday, March 14, 2007

Summary: Once you've completed the laboratory experiences emphasizing text generation, we'd like you to extend the procedures you've written in that lab and then to describe your project in a form accessible to others.

Collaboration: You should work in groups of two or three. You may not work alone. You may not work in groups of four or more. You may discuss the assignment with anyone you wish. You may obtain help from anyone you wish, but you should clearly document that help.

Submitting Your Work: As always, you will submit your work via email, in this case with a subject of CSC151 Project One. For this assignment, you will be permitted to attach files to your email. Further details below.

Contents:


Stage One: Generating Particular Genres of Texts

In the first laboratory on text generation, you worked with and built procedures that construct simple, yet difficult to predict, sentences. In the second laboratory, you saw how to use some key Scheme techniques to vary the structure of these sentences and the components of the sentences.

Unfortunately, most of those sentences were not very interesting. Hence, we should find a way to generate a particular kind of text. For example, we might focus on the number of syllables in each word, and write a Haiku generator. We might consider both number of syllables and ending sounds to make simple rhymes. (In this case, it might be useful to randomly choose an ending sound.) We could even try to generate texts that sound a bit like Dr. Seuss.

Your first task in this report is to choose a simple genre of writing (form letters, personal advertisements, rhymes, Haiku, Seussian stories, etc.) and write a procedure that generates unpredictable versions of that types of writing. Your procedure should build on the code you wrote in the second laboratory.

In generating those texts, you will want to customize the words files. You may also want to add another element to each of the lists in the parts-of-speech files (such as the number of syllabus, the ending sound, or something similar).

Stage Two: Writing the Report

For this assignment, in addition to writing code, you are also to write narrative text. In particular, you should write a narrative description of what you have accomplished in the project and how you have accomplished that goal. Your audience is other CSC151 students, but students who have not read the readings on text generation and who have not worked with the labs.

You should make sure that your narrative describes the key procedures you've written or used (both for your custom text generator and for the general text generation strategy) and how they work. Your narrative should be clear enough that someone could rewrite similar code (in, say, eight hours) without having any of the code as a reference.

I'd suggest organizing your report as follows:

Please use 1.5 or double spacing and a 10-11 point font. I expect your report to be around 3-4 pages.

Stage Three: Submission

Once you are satisfied with your code and your report, you should email them to me using a subject of CSC151 Project One. I expect to see the code as an attached .ss file and the report as an attached OpenOffice, Word, PDF, or text file, whichever you prefer.

Important Evaluation Criteria

The project will be graded out of 100 points. I'll be looking at two main things in my evaluation: ambition and competence

As with the homework, you can expect to earn 90 points on a project that is competently executed. In the context of the project, this means your code works, has reasonably good style, and builds on your code from the second lab on text generation. Your report should also be competently executed: it should be clearly written, use standard spelling and grammar, and cover all of the required topics.

An ambitious project takes on a complex task or uses particularly elegant strategies. (For example, generating really good random poems can be surprisingly challenging.) A project that is both ambitious and competent will earn more than 90 points.


Janet Davis (davisjan@cs.grinnell.edu)

Created March 1, 2007 based on http://www.cs.grinnell.edu/~davisjan/csc/151/2006F/projects/01.text-generation.html
Last revised
March 12, 2007
With thanks to Sam Rebelsky