"If the artist carries through his idea and makes it into visible form, then all the steps in the process are of importance... All intervening steps --scribbles, sketches, drawings, failed works, models, studies, thoughts, conversations-- are of interest. Those that show the thought process of the artist are sometimes more interesting than the final product." - Sol Lewitt
2010
Assignment #12 (Final Presentations, Mon. May 17th)
- Prepare for final (public) presentations in McCormack theatre (70 Brown St, between Waterman & Angell - use entrance on Fones Alley) from 6pm-9pm on May 17th. Timing will be tight, so please rehearse these in advance to ensure they are under 7 min. (Note: there will be a strict timer with instructions to cut people off who exceed the limit)
- Email myself (and the TA) with the URL for your piece, so that we can compose a launch-page (this will include the presentation order). Be sure to specify any unusual technical needs you may have (drivers, libraries, a specific OS or machine, etc.) Otherwise, it will be assumed that ALL projects will run in a browser (Safari or Firefox) on the Mac, at a maximum applet size of 1024x740 using Java 1.5.
- Prepare all documentation (see Assignment #11 for a list) by May 21st. Documentation is an especially important element of digital projects and will thus contribute significantly to your final grade. As usual, all project elements should be linked from your project's home page on the course wiki. Remember as well that the final project itself must be linked as either an executable web applet or as a web-viewable video (or both).
- Take advantage of these last few days to meet with myself (and/or the TA) for discussion of the presentation itself as well as last-minute polishing...
Assignment #11 (Due Mon. May 3rd)
- Prepare for final project rehearsals which will occur over the next two classes (sign-up for a date here**). These should be a maximum of 7 min. (there will be a timer), use supplementary materials where appropriate (slides, mockups, etc.), and should be rehearsed in advance. All your materials will be expected to be on the web so that we can share a single computer. If you are running an application or have other un-web-friendly media types, please bring these on a USB thumb-drive or CD/DVD. If for some reason you need to use a specific computer, pls. contact myself or the TA in advance of class and let us know.
** I have assigned some of you tentative dates already, based upon who we've heard from most recently. Please check that your date works for you and *ALSO* that there are NOT MORE THAN 7 PEOPLE signed up for either day.
- Verify that you have included all the requested documentation from the last week (at least 3 descriptive paragraphs, screenshots and/or images, risk and task lists, a daily schedule, and at least 1 programmatic sketch). This documentation will contribute significantly to the grade for your final project (and thus the class).
Assignment #10 (Due Mon. Apr 26)
- This week will be dedicated to work on final projects, which will be presented in class on May 3 and May 10 (public presentations are tentatively scheduled for the 17th). Tasks: 1) upload an image (exactly 270x72 pixels) to the FinalProjectLinks page as demonstrated in the example (use the upload button, as described here); 2) post a day-by-day schedule on your web page that covers the remaining tasks (include time for testing, debugging and documentation).
- Don't hesitate to schedule an appt. (with myself or Paul) if you have questions, concerns, or just want some additional feedback...
- Recommended: read through the Processing libraries page here and consider whether any of these can be used to simplify the programming for your final (make sure to scroll down on the page).
Assignment #9 (Due Mon. Apr 19)
[Planning] In addition to your project description and sketches/mockups, add 2 new sections to the web page for your final project: a 'Task List' and 'Risk Areas'.
- The 'Task List' should list the various parts that will need to be done before the project is finished. This should get you thinking about how to decompose a big project into smaller, more manageable sub-parts, which is an essential skill when doing larger pieces (in art & elsewhere.) Assign each task two numbers from 1-5. The first should be its 'priority' and represents how essential the task it is to the success of the piece (1 means "absolutely essential", and 5 means "might be nice if there's extra time"). The second, called 'difficulty', should represent your best guess as to how long the task will take you to complete. These two #s, taken together, should give you a pretty good idea of the order with which the various tasks should be done.
- 'Risk Areas' should list any parts of the project (taken from your task list above) that either a) could cause the project to fail if not completed and/or b) that you have doubts about how to do. Examples of what might go here include any technical implementations that you are not completely sure of how to do, or any external dependencies that your project requires. Examples here include a) access to resources like dictionaries, texts, or databases, b) equipment needs, like access to a server, recording equipment for creating samples, or other hardware, e.g., for a physical installation, c) any permissions required, say to install a piece in a public place, d) human resources, like participants in a performance, or help from a specialist in some part of your project (e.g graphic design), or e) whatever you might be expecting from collaborators. The goal here is identify as many possible causes of failure for your project plan as early as you can.
[Coding] For this week, everyone should create a working program that implements at least ONE element of your final project. This should both help to clarify your idea for others in the class and be something you'll eventually include in the finished piece. Make sure to pick some part of the project that can be addressed independently (probably something directly from your task list above.) Let me know ASAP if you are having trouble thinking about how to break things up. Add a link to the sketch on your final project page and be ready to present it in class for feedback.
[Writing] This week I want you to reflect on your experience thus far in a short writing assignment. This should be a minimum of a paragraph and a maximum of a page and specifically address the following 3 questions in the context of programming for art.
- What was your most notable 'breakthrough' moment thus far; e.g., when you learned some concept you'd been having a difficult time with, added a new technique to your process, or pushed a specific piece to a new level?
- Describe a moment (or decision) you wish you could take back. Perhaps a task that now seems simple on which spent you an inordinate amount of time, or some choice you made on a piece that lead you down a dead-end.
- What's the most important thing that you feel you have NOT quite learned/mastered yet. This could be a specific technical concept, some part of the 'making' process on which you feel stuck or frustrated, or something you find lacking in one or more of your works.
Send this to myself (and the TA) via email before class on 4/19.
Assignment #8 (Due Mon. Apr 12)
*** Important: if you haven't decided on (or aren't in love with) your final project, please make an appointment to meet with me right away
- Continue to work on your final projects. If you haven't already, create a webpage for the project and add a link to it here. This page should contain (at least) the following elements:
- The author's name(s) and a (provisional) title
- 3 paragraphs of descriptive text organized according to the following headings: 'overview', 'technical', 'conceptual'; the latter referring to the larger ideas/themes/questions that the project addresses
- At least one piece of explanatory media; a mock-up of the user-interface perhaps, or a process, system, or data-flow diagram. These can be hand-drawn sketches, images (Sketch-up, Photoshop, etc.) or short procedural demos (Processing, Flash, etc.) that demonstrate your thinking/process.
- Next steps (for those who are ready): a) create a working program (a Processing sketch) that implements ONE element of your final project b) add a 'task-list' and 'risk areas' to your project's webpage (for more detail on these items, see last year's assignment #10 here).
- Recommended: A short video demonstrating live-coding with ruby, midi, and textmate
- Recommended: The longer video, Is Evolution an Algorithmic Process?, which contains a more in-depth interview with Karl Sims about the creation of his evolutionary creatures (the video we watched early on in the semester)
Assignment #7 (Due Mon. Apr 5)
2. Projects
- By this point you should be pretty clear on the direction your final project will take. Prepare a short (3-5 min) but formal proposal of your project as if it were already (successfully) completed . Present supplementary material (description, website, sketches, screenshots, thumbnails, etc.) where applicable. Discuss the technical, aesthetic and conceptual problems you overcame on the path to realizing your larger vision (which should be apparent). If you're undecided between 2 or more of your ideas, email me ASAP so that we can discuss.
3. Games
- Download and play through Jason Rohrer's 'Passage' (<5min).
- Take a break during your break -- pick at least one day on which you don't touch the computer whatsoever. Ok. Now don't touch the computer on that day.
Assignment #6 (Due Mon. Mar 22)
1. Coding
- Post the 2nd iteration of your collaborative web-scraping project here. Be sure to include a link to your 1st iteration as well as to whatever websites/data-sources you use.
2. Projects
- Spend some time this week developing your final project ideas to the point where you can present them (informally) in class for feedback. Make sure you've posted three such ideas here, at least two of which should be described in some detail.
3. Presentations
- If you haven't done so, add your presentation topic and date here for approval. There are a number of topic ideas posted at top for anyone who is as yet undecided (or wants to change).
4 Constraints (Extra credit)
- Compose a 512-character (not including spaces) poetry generator using RiTa, as demonstrated in class by Prof. Cayley. For reference, see Nick Montfort's Perl poetry-generators here, which use even stricter constraints (though in a far more concise language).
Assignment #5 (Due Mon. Mar 15)
1. Reading
- Read through page 64 of Hartman's 'Virtual Muse'. Upcoming coding exercises will be based on the 'Travesty' program presented. If you're not poetically inclined, feel free to skim through chapter 4, which focuses on meter/scansion.
2. Coding
- Post a first iteration of your collaborative web-scraping project here.
The constraints for this piece are:
- Use text scraped from a live* web site. *(live=changing frequently)
- Use other media (image, sound, video) also scraped from the web
- Use no APIs (just raw http 'get's) -- regex's may come in handy here
Note: feel free to use the RiHtmlParser (or RiGoogleSearch) if you like...
3. Presenting
- Add your presentation topic and date here for approval. Presentations should be concise (<=10 minutes), which will require careful planning to keep things both interesting and informative. Example programs are often a good idea, as are supplementary materials (including short readings) which can be assigned in advance. Presentations should relate the topic to the arts context whenever possible.
4. Documentation
- Continue to think about ideas for your final project. The short-term goal is to generate at least three different ideas that can be developed over the next few weeks. Continue to add/develop your ideas here.
Assignment #4 (Due Mon. Mar 8)
1. Reading
- Read page's 1-27 of Hartman's 'Virtual Muse'. This is easy/quick reading, but don't leave it until the last moment.
2. Coding
- Read this article on 'Regular Expressions in Java'. Then do the coding assignment here. This should be turned in (via email to myself and the TA) by 4pm on Monday. Late assignments cannot be accepted as we will discuss solutions in class. (Extra credit for the most elegant/shortest solution to #3).
3. Writing
- Continue to think about ideas for your final project. The short-term goal is to generate three different ideas that can be developed over the next few weeks. Add a paragraph description of one such idea (don't worry if it is incomplete or vague) on this page
4. Documentation
- If you haven't already, make sure to add a link to the 1st iteration of your collaborative project here.
Assignment #3 (Due Mon. Feb 22/29)
- Read the P. Galanter article: 'What is Generative Art? Complexity Theory as a Context for Art Theory', which should directly inform your group project described below.
- Watch this video by Kenny Goldsmith (discussed last week) on so-called 'Conceptual Writing.' (Due 2/29)
- Create (with your partner) a work of generative literary art using one of the types of systems mentioned in the Galanter article. The constraints for this assignment are as follows:
- Text must be the primary visual element. Other visual media (images, video, etc.) should be used only as a means of framing or contextualizing the textual.
- The text should not only be decorative, but should make linguistic (and hopefully literary sense). To be more specific, it is NOT Ok, for example, to take a flocking system and simply substitute random letters or words for the points.
- You should however feel free to use an existing generative simulation (there are MANY on the Processing website) as a starting point from which to develop your piece.
Again, make sure there are clear conceptual links between the content (the text), the form (the display/interaction), and the generative mechanism you have chosen.
- Publish a short description (at least one sentence), a 'thumbnail' (250x100), and a link to your sketch under your name on this page, no later than Monday at 4pm. Though you have two weeks for the final version of this assignment first iterations are due next Monday (Feb 22) by 4pm.
- Misc: make sure you have your copy of Hartman's 'Virtual Muse'. To get a head start, begin by reading chapters 1-3...
Assignment #2 (Due Mon. Feb 15)
2. WRITING
- Prepare a piece of 'creative' writing (a poem, piece of dialogue, a short fiction, a bit of a play, etc.) to share with the class. The constraints for the assignment are as follows:
- It must between 8 and 50 lines long
- At least one line of every ten must be taken from an external source (a book, a quote, a web-page, a song, a movie, etc.), and the source must be noted in the project description.
3. CODING
- Create an interactive sketch (using Processing/RiTa) that displays the writing from above in a compelling way. The key here is to create a conceptual link between the content (the writing) and the form (the display/interaction).
- Consider how each element (from font, to color, to other media types you might include) helps (or hinders) what you are trying to communicate in the piece. This includes your HTML page as well as the applet itself. We will discuss these choices in depth.
- Publish a short description (at least one sentence), a 'thumbnail' (250x100), and a link to your sketch under your name on this page, no later than Monday at 4pm. For info on how to publish your work, see this page
4. OTHER
- Post at least one message to the list during the week -- this may be an introduction, a question or problem, something cool you've come across or realized, even just an endorsement of communal purpose...
- If you have technical difficulty with any the above, make sure to go to this week's lab! Things will only move faster from here on out.
- Make sure you have obtained your copy of Hartman's 'Virtual Muse'! We will begin using it next week.
- Don't forget the Processing sketches you chose for last week's assignment as we will return to them at various points over the next few classes.
Assignment #1 (Due Mon. Feb 8)
1. TOOLS AND SETUP
- Download & install the Processing environment here
- Verify you can run the examples in your Sketchbook:
Menu: File->Examples
- Download & install the RiTa core library (v96)
Download and unzip RiTa.zip from here to your desktop. Then create a 'libraries' directory (if it doesn't already exist) inside your Processing sketchbook and place the 'rita' folder inside. (follow this same procedure to install other Processing libraries)
- Verify you can run the RiTa examples in your Sketchbook:
Menu: File->Sketchbook->Libraries->RiTa->Examples
Go through each and try to understand what is going on.
Keep track of any questions you can't resolve on your own.
- Visit and bookmark the following reference pages:
2. PROGRAMMING REVIEW/CONCEPTS
Read through the
ProgrammingConcepts pages on the topics below and make sure you understand the concepts (much of this may be review; if so, continue down the page.) Come to class with at least 2 (written) questions that came up for you during the reading (and/or installation and running of RiTa/Processing examples)
- Operators, Variables, Arrays
- Conditionals, Program Flow, Loops,
- Functions, Classes and Objects
3. DEVELOPING A CRITICAL VOCABULARY
Locate a Processing (or Java) project that uses text (the
Exhibition section is a good place to start). Write up a short description (<1pg) and be prepared to present the project ot the class. In addition to describing what you like about it and how it works, be sure to address specific
conceptual,
technical, and
aesthetic aspects of the work. (If possible, pick a project with links to its source code)
other places to look: resources & the right sidebar ->
2009
Assignment #12 (Due Mon. May 4)
In next week's class (May 4) we'll do a practice run-through of final project presentations (following the order on the final projects page.) Each of you should prepare (and practice) a 5-min presentation of your project. This can be a performance, a show-and-tell, or even a short-introduction followed by video documentation (here's a nice example from a previous course.) Except in special cases (let me know ASAP), all project materials should be available on the web, so that they can be run from one computer, which will greatly reduce the amount of setup time between presentations.
Public presentations, as mentioned, will be held from 6:30-9:30pm on May 11 at McCormack Family Theater, 70 Brown St. (this is in the alley between the LitArts and English buildings.) The setup will be, as in class, a projector, computer w' internet, and audio. If anything else is required (including a specific operating system) , please let me know ASAP. For those interested, John Cayley and Justin Katko's digital writing classes will present their work from 4:30-6-30pm. Following the presentations we will have a little end-of-semester gathering at 151 Benefit St. (at South Court) which is a short walk from the theatre.
Assignment #11 (Due Mon. April 27)
As we are getting down to the wire (~10 more days!) this week will be dedicated to work on final projects. The only deliverable will be to post a day-by-day schedule on your web page for the remaining tasks BY FRIDAY end-of-day. This should not take very long, but will be important as you manage your remaining time (Note: grading-wise, this will be considered a FULL assignment.)
"Writers don't own their words. Since when do words belong to anybody?
'Your very own words,' indeed! And who are you?"
--Brion Gysin
Assignment #10 (Due Mon. April 20)
[Planning] In addition to your project description and sketches/mockups, add 2 new sections to the web page for your final project: a 'Task List' and 'Risk Areas'. Due by 3pm on 3/20
- The 'Task List' should list the various parts that will need to be done before the project is finished. This should get you thinking about how to decompose a big project into smaller, more manageable sub-parts, which is an essential skill when doing larger pieces (in art & elsewhere.) Assign each task two numbers from 1-5. The first should be its 'priority' and represents how essential the task it is to the success of the piece (1 means "absolutely essential", and 5 means "might be nice if there's extra time"). The second, called 'difficulty', should represent your best guess as to how long the task will take you to complete. These two #s, taken together, should give you a pretty good idea of the order with which the various tasks should be done.
- 'Risk Areas' should list any parts of the project (taken from your task list above) that either a) could cause the project to fail if not completed and/or b) that you have doubts about how to do. Examples of what might go here include any technical implementations that you are not completely sure of how to do, or any external dependencies that your project requires. Examples here include a) access to resources like dictionaries, texts, or databases, b) equipment needs, like access to a server, recording equipment for creating samples, or other hardware, e.g., for a physical installation, c) any permissions required, say to install a piece in a public place, d) human resources, like participants in a performance, or help from a specialist in some part of your project (e.g graphic design), or e) whatever you might be expecting from collaborators. The goal here is identify as many possible causes of failure for your project plan as early as you can.
[Coding] For this week, everyone should create a working program that implements ONE element of your final project. This should both help to clarify your idea for others in the class and be something you'll eventually include in the finished piece. Make sure to pick some part of the project that can be addressed independently (probably something directly from your task list above.) Let me know ASAP if you are having trouble thinking about how to break things up.
Add a link to the sketch on your final project page and be ready to present it in class for feedback.
[Writing] This week I want you to reflect on your experience thus far in a short writing assignment. This should be a minimum of a paragraph and a maximum of a page and specifically address the following 3 questions in the context of programming for art.
- What was your most notable 'breakthrough' moment thus far; e.g., when you learned some concept you'd been having a difficult time with, added a new technique to your process, or pushed a specific piece to a new level?
- Describe a moment (or decision) you wish you could take back. Perhaps a task that now seems simple on which spent you an inordinate amount of time, or some choice you made on a piece that lead you down a dead-end.
- What's the most important thing that you feel you have NOT quite learned/mastered yet. This could be a specific technical concept, some part of the 'making' process on which you feel stuck or frustrated, or something you find lacking in one or more of your works.
Send this to me via email before class on 3/20.
'An original artist is unable to copy. So [s]he has only to copy in order to be original'
-Jean Cocteau
Assignment #9 (Due Mon. April 13)
- By now you should have decided on a final project idea to pursue. For next week, continue to develop your project concept by further refining your idea to the point where you can present it to the class. Each project *must* have a web-page of its own with a description (1 paragraph min.) and at least one piece of explanatory media. These will likely be mock-ups of the interface, which can be useful both for your process and in conveying your ideas to others. Mock-ups can be hand-drawn sketches, images (Sketch-up, Photoshop, etc.) or short procedural demos (Processing, Flash, etc.) If you want to get a head start, prepare a programmatic sketch of some part of your project. Add a link to your project web-page here BEFORE class.
If you're having trouble deciding, send me a note with the 2 ideas you're choosing from.
- Watch this video by Kenny Goldsmith on so-called 'Conceptual Writing', and be prepared to discuss some segment that particularly interested you...
- Read this article on 'Regular Expressions in Java'. Then do the coding assignment here. This should be turned in (via email to myself and the TAs) by 4pm on April 13.
Another regex article for those looking for more explanation...
'Believe it or not, I can actually draw' -Michelangelo
Assignment #8 (Due Mon. Apr 6)
Prepare the final version of your N-Gram project to be presented in class and post a link here. This is not just a clean-up of your first iteration, but a significant revision that explores new ground (Both iterations are required.) Take into account the feedback you received in class and/or on the list (if you didn't get to present in class, feel free to post your project to the list now.)
Remember to include full documentation in the form of an HTML page with links to BOTH iterations of your projects. Additionally, there should be (at least) a one paragraph description of the piece, instructions, and at least 1 thumbnail for the class website (250 x 100 pixels). Note that the link you post on the course website should go to your HTML page, NOT to the applet itself.
CHECKLIST
A link on the course website (here) to your HTML page with:
- Your title
- Links to BOTH iterations of your project (with appropriate background colors for your applets!)
- Your project description (at least one paragraph) - remember to mention any external sources you've used (texts, libraries, inspirations, etc.)
- Screenshots (at least one, 250 x 100 pixels) plus any relevant sketches or mockups from your process
- Links to all source files (please link to any server code as well, e.g., php files) - these can be also be put on the individual applet pages
- Instructions for use - these can be also be put on the individual applet pages
No flash-drives, CDs, or verbal URLs will be accepted in class. Projects not posted by 4pm on Monday will lose one letter grade.
Recommended Reading: Notes on Post-Modern Programming by Noble & Biddle (Optional)
Assignment #7 (Due Mon. Mar 30)
WRITING
Submit three short proposals (1 paragraph each max) for your final projects. These should leverage ideas/techniques from the course, and can be variations on a single theme, or 3 completely separate projects from which you will choose. Primary criteria are originality, cohesion, and communication -- make these works say something both personal & resonant to an audience. Due in my email by 3pm 3/30, no exceptions.
READING
Read this short article (1 pg) on Cellular Automata, and Langton's Lambda parameter, representing the scale from order to chaos, which came up in both sections. Then experiment with the CA applet here.
Recommended: For those interested in generative techniques, the following video 'Is Evolution an Algorithmic Process?' is quite good, including a more in-depth interview with Karl Sims about the creation of his evolutionary creatures (the short video we watched in class.)
CODING
Complete first iterations of your N-Gram projects to be presented in class on the 30th. Your piece should be finished to the point where it can be fully demonstrated (as opposed to described), and useful feedback provided. Your goal should be to gain as much insight as possible from the class as to future directions for the piece (preparing specific questions you'd like answered will be helpful in this regard.)
Note: as usual, remember to check for updates to Processing, RiTa, and any other libraries you're using when starting a new project.
Assignment #6 (Due Mon. Mar 16)
In addition to the reading below, this will be a catch-up week. However ALL previous assignments must be turned in by 3pm Monday, at which time we will begin our next set of projects.
Pending Assignments:
- Warm-up sketch w' hand-written algorithms
- Both iterations of the Grammar Project
- the CharCounter coding exercise (due last week)
Unless you have made special arrangements with me, no further assignments (from the list above) will be accepted after Monday, March 16.
The full set above, in combination with your participation, will be used by myself and the TAs to give midterm grades as follows:
Warm-up & CharCounter 20% each
Grammar Projects 40%
Participation 20%
(in class, labs, & on the list)
If you're not sure whether you've turned something in, please check the recent-work pages (linked above). If you sent work and it is not listed, or you have a reason why you need more time for any of the assignments, let us know right away...
READING: Ch. 5 from Hartman's Virtual Muse. Pay particular attention to the 'Travesty' program. This will relate directly to our 2nd mini-projects (beginning next week). Think about how word-based (as opposed to letter-based) n-grams might look/work. How might we use such data in an artistic context? Come to class with at least one project idea representing an answer to this question.
I'm an artist and if you give me a tuba I'll bring you something out of it... - J. Lennon
Assignment #5 (Due Mon. Mar 9)
"Programming is about choices and constraints, and about how you choose to model some select slice of the world around you in the formal environment of a computer." - M. Kirschenbaum
"Which is more musical: a truck passing by a factory or a truck passing by a music school?" - John Cage
2. Reading / Listening
- Read John Cage's '3 Notes' available here. Listen to Cage's readings of 'Indeterminacy' (with David Tudor on piano) here: Part I and Part II.
Feel free to do more than one of these activities simultaneously -- ideally (perhaps) one might listen to the audio while reading the 'notes' aloud, as a friend reads aloud from the 'stories'
3. Writing / Presenting (UPDATED)
- Visit the programming concepts page (ProgrammingConcepts) and go through the topics there. If any of these (at least up to interfaces) are even slightly unclear, please re-read the section, and write-out as many *specific* questions as you can. Everyone is required to send at least 1 (but no more than 10) of these questions (which should be as clear and concise as possible), to both myself and the TAs for Monday(3pm!). If you read through the sections and cannot come up with a single question, then you're probably not thinking hard enough about the concepts... (though in such cases a solution to the recursion problem(s) will be OK)
(Postponed)
- Pick one of the generative techniques mentioned in the Galanter article from last week to research. Visit the presentations page and add it next to your name -- make sure no one else in your section has picked the same topic (first come, first served). Write a concise (1-2 paragraph) description of the technique and add a link on the wiki. This will be the first step in creating a presentation (with relevant programmatic examples) for the class on your topic of choice
Assignment #4 (Due Mon. Mar 2)
"If the artist carries through his idea and makes it into visible form, then all the steps in the process are of importance... All intervening steps --scribbles, sketches, drawings, failed works, models, studies, thoughts, conversations-- are of interest. Those that show the thought process of the artist are sometimes more interesting than the final product." - Sol Lewitt
1. Coding
- Prepare the final version of your Grammar Mini-Projects to be presented in class. This is not just a clean-up of your first iteration, but a significantly different revision that explores new ground. Take into account the feedback you received in class and/or on the list (both in response to your work and others). Remember to include good documentation (see quotation above) in the form of an HTML page include links to both your grammar file and source code. Additionally there should be (at least) a one paragraph description of the piece (in addition to your instructions) and a thumbnail for the class website (250 x 100 pixels). Note that the link you send to the TA should go to the HTML page, NOT to the applet itself. Some examples: #1, #2, #3.
Projects for which a working link has been not received by the TA at 3pm on Monday will lose one letter grade.
2. Writing
- Continue to think about (and take notes on) ideas for your final project... The short-term goal is to generate three different ideas that can be developed over the next few weeks. Part of this process will involve presenting these ideas to your classmates for feedback.
Assignment #3 (Due Mon. Feb 23)
1. Reading
Read the material on
Grammars before the lecture. Prepare at least 1 question to ask in class. This can be something that is unclear, or a potential limitation of the method itself (e.g., 'it seems impossible to do X, is that true?').
Read chapters 1-2 of Charles Hartman's 'Virtual Muse' before the lecture on context-free grammars [CFGs] . Read chapter 7 of 'Virtual Muse' after.
2. Coding
Prepare the 1st iteration of your
Grammar Mini-Projects to be presented at our next class mtg on 2/23. See the
Haiku example for a simple use of Grammars (the work shown in class should be significantly more developed.) Note that the RiTa grammar object,
RiGrammar, contains several extensions beyond what is considered to be part of the typical CFG. The goal here is to use the grammar technique as a means to creating something unique/personal/expressive/innovative/etc...
3. Writing
Note that CFGs are often used as a more expressive version of simple recombination (as in our
1st assignment) so you may want to begin by writing 'chunks' of text that can later be included in your grammar (Note: this is only 1 suggestion for how to get started...)
Continue to think about (and take notes on) ideas for your final project... (see bottom of this page)
Assignment #2 (Due Mon. Feb 9) (sketches posted here)
1. Reading (both very short)
- Read these short selections from Yoko Ono's Grapefruit
The rest of the book is also recommended.
- Optional: Read Noah Wardfrip Fruin's blog post(s) on 'Reading Processes' that begins here. Follow the 'art-of-code' link, relating to our discussion of last week. GrandTextAuto is a good resource for computational literature.
2. Writing (2 parts)
- a) Prepare a piece of creative writing (a poem, piece of dialogue, a short fiction, a bit of a play, etc.) to share with the class. The constraints for the assignment are as follows:
- It must be at least 8 lines long
- Each line of the work must be taken (unchanged) from a different source (a book, a web-page, a song, a movie, etc.), and each source must be noted.
- b) As you build your text, pay attention to the process by which you choose each line. In a separate document, write an algorithm (in plain English), that someone (another class member, for example) could use to create a text similar to yours.
Note: If you are not sure what it means to write an algorithm 'in plain English', think of a recipe, or the Yoko Ono examples above, or this
example...
3. Programming
- Create a Processing sketch that displays the writing (from 2a. above) in a compelling way. Here's a very simple example: SimpleTextDisplay
- Consider how each element (from font, to color, to other media types you might include) helps (or hinders) what you are trying to communicate in the piece. We will discuss these choices in depth.
- Publish the sketch (no later than Monday at 3pm) in a publicly accessible location and mail the URL & algorithm to your TA. For info on how to publish your work, see this page
Note: no need to display your 'algorithm' or 'data-sources', but source code should, as always, be linked (this is the default in Processing)
Misc
- If you have technical difficulty with any the above, make sure you go to one or both labs
- Don't forget the Processing sketches you selected for last week's assignment as we will discuss them in class
- Make sure you have your copy of Hartman's 'Virtual Muse'!
Assignment #1 (Due Mon. Feb 2)
2. PROGRAMMING REVIEW/CONCEPTS
Read through the
ProgrammingConcepts pages on the topics below and make sure you understand the concepts (much of this may be review; if so, continue down the page.) Come to class with at least 2-3 questions that came up for you during the reading.
- Operators, Variables, Arrays
- Conditionals, Program Flow, Loops,
- Functions, Classes and Objects
3. DEVELOPING A CRITICAL VOCABULARY
Locate a Processing project that uses text (the
Exhibition section is a good place to start) to present to the class. In addition to describing what you like about it and how it works, be sure to address specific conceptual, technical, and aesthetic aspects of the work. (If possible, selected projects should have a link to their source code)
UPCOMING ASSIGNMENTS (to start thinking about)
2-3 MINI-PROJECTS' (2 weeks for each, chosen from below)
Recombination
Based on our discussion of recombination and the examples we've looked at, create a recombinant literary work. While you are free to choose any form, one of the 3 poetic forms we'll discuss (haiku, sonnet, sestina) is probably a good place to start.
Grammar-based generation
Prepare a sketch to present that uses your own grammar. (technical details to be discussed in lab). Find a way to use this technique to make something creative/personal/expressive. First iterations should use only the basic context-free grammar. Discuss any limitations you encounter in your presentation.
Feature Analysis
Prepare a sketch to present that uses feature extraction to generate new literary content. Features that may be extracted via the RiTa library include: word, pos, stress, syllables, and phonemes (technical details to be discussed in lab). Find a way to use this data to make something creative/personal/expressive.
Text-mining
Prepare a sketch to present that uses the web-scraping and text-mining techniques we've discussed to generate new literary content. Try to take advantage of the rapidly changing nature of web data sources to create a work that evolves over time. If you like, use the web-parsing, and sentence extraction components in the RiTa library (also RSS). Find a way to use this data to make something creative/personal/expressive (Note: this sketch
can be submitted as an application (test, zip, and email).
Ontology-based generation (Wordnet)
Prepare a sketch to present that make creative use of an ontology (a hierarchically structured lexicon). WordNet is a good choice here (see the Rita.WordNet library) but there are other options: Verbnet, Framenet, Propbank, OpenCyc, or even del.icio.us. Find a way to use one or more of these resources to make something creative/personal/expressive. Include in your presentation any limitations in the data sources you selected.
=======================================
FINAL PROJECTS
Final projects should build on core concepts in the course. These will be presented formally in the last week of classes in an 'artist-talk' format complete with documentation on all stages of the process (initial ideas, sketches/images, storyboards, recordings, prototypes, writing, etc.) you will be required to hand this in as part of the final project.)
Remember to consider the use of color, space, image, animation and sound (samples, text-to-speech, or recorded voice) as means to extend the range of the piece in an organic/cohesive fashion.
Although project are due at end-of-semester, it is highly encouraged that you start right away and take full advantage of of all course resources...