Skip to content

Latest commit

 

History

History
733 lines (434 loc) · 32.4 KB

README.md

File metadata and controls

733 lines (434 loc) · 32.4 KB

Syllabus for CAT 117 Process & Interaction: An Introduction to Creative Coding

  • Katherine Bennett, Assistant Professor
  • Email: [email protected]
  • Office Hours: Tues Thur Fri 9-9:45 am, 2:30-3pm
  • Office Location: B13

Processing & Interaction: An Intro to Creative Coding

This course is an introductory programming class, appropriate for students with no programming experience, who are interested in creating interactivity. Traditionally, introductory programming teaches algorithmic problem-solving, where a sequence of instructions describe the steps necessary to achieve a desired result. In this course, students are trained to go beyond this sequential thinking - to think concurrently and modularly. By its end, students are empowered to write and read code for creating interactivity including: event-driven creative applications, interactive installations, graphical user interfaces, networked video games and user interfaces. Interactivity will be introduced and discussed throughout. 1 c.u.

###Course Competency • Scientific and Technical Skills

Students will achieve a well-rounded proficiency in technical concepts including: core competence in programing (variables, loops, control, movement, classes, Addon’s & Libraries, Object Orientated Programming); fluency in industry standard commercial hardware, software (IDE’s ) and professional workflows (Git & Version Control); and understand the interaction and user design concepts behind art and design.

• Creative Problem Solving, iteration, tenacity, critical thinking Students will have coding challenges and projects that they will have bring to fruition through code and iteration.

• research (This includes visual, materials, and technological research)

###Course Goals Students will:

• Develop procedural thinking skills

• Develop and refine problem solving and independent learning skills

• An alleviation of the fear of programming (it’s not that bad) and acquisition of programming principles

• Have an ability to write code which controls content and interactivity, actualizing programming principles and creating 3 interactive applications

• Have confidence in building something from the ground up - risk taking and experimentation

• Discuss current work in the field of software & interactive arts

• Understand and implement the iterative process

• Develop a vocabulary to evaluate and critique Interactive work and code

• Create an internal developer / creative community

Program Goals

This course reinforces the CAT Program goals by

• Integrate multiple mediums of image, text, sound, physical, space, and interactivity. (Reinforced)

• Adapt to constantly changing technological paradigms by learning how to learn. Skills acquisition.

• Combine research and studio practice through inquiry and iteration. (Reinforced)

• Collaborate across disciplines.

• Adopt and use professional practices. (Reinforced)

• Integrate Cultural Literacy

• Adapt to constantly changing technological paradigms by learning how to learn. Skills acquisition.

Assessment

Assessment will occur by reviewing weekly coding assignments & challenges, project milestones, and final projects. The course is cumulative. Please see the Grading Section for specific grade breakdown, calendar for due dates, and assignments for briefs.

Students will evaluate their own progressed in a course in two ways: 1) A course evaluation form, which will be developed based on the course’s individual objectives. 2) Students will participate in a self reflection assignment due Week 7 (Feb 26) & Week 13 (April 30) or as otherwise noted. This written evaluation is worth 15 points and to be turned into me as a separate document.

• Critically analyze/evaluate how much time was spent learning syntax & structure, programming concepts vs. actually programming, and how does this reflect on the final quality of your end result.

• Comment on your openFrameworks and Processing successes and frustrations.

• Compare and contrast openFrameworks versus Processing

Course Requirements

• Email contact about logistics (when, where, how many, etc) ONLY

• Talk to me in person about issues or problems

• Consult the github account for the class at least once a week for up to date information

• Come to class on time and be familiar with the current class topics, and be ready to answer or ask questions and participate in discussions

• Submit the weekly Tickets to Leave

• Be professional at all times in your communication and attitude

• Complete all assignments by due date

• Acquire and keep up with all of the readings. Read all assigned readings before class.

• Devote at a minimum 8 to 10 hours a week outside of class, fulfilling homework assignments, readings and studying concepts covered in class.

• Have Desire amounting to Enthusiasm (to learn and to explore)

• Have Patience, Persistence, and Discipline

• Be Creative

• Pay attention to Detail & Craft

• Have Self-confidence and Pride in your work

• Take Risks & be Fearless in your assignments

• Don’t be afraid to fail. Don’t let your failures determine you. Rise again.

Attendance

Unexcused absences (without a note from a doctor or agency) will affect your grade. Attendance is taken at the beginning of class and is mandatory.

• One unexcused absence is allowed; after that, your final overall grade for the course will drop by 2.5 points out of 100 for each additional absence.

• 3 unexcused absences is grounds for dismissal from the course.

• All presentation and critique days are mandatory. Being absent on critique days, affects your grade for that project as well as your participation grade. Work is still due on due dates, regardless of whether you are in class or not. Critiques can not be made up.

• Contact me in advance if you will not be in class. (Email is preferred) Demonstrate time management, communication and respect.

• Be on time! Lateness will affect your grade. For every 15 minutes you are late, your participation grade drops.

• Material missed is the responsibility of the student to make up. Speak to other classmates in order to find out what was lectured and discussed. It is your responsibility to go over that material independently. It is your responsibility to contact me if you continue to have difficulty with the information.

Contacting Me

Email is the preferred initial contact ([email protected]). Email is suitable for short questions (to answers that cannot be found in the syllabus), to set up appointments, or to notify me about being late or absent. Emails should not be longer than 5 sentences.

For matters longer than 5 sentences, please email me to make an appointment during office hours. This is the proper way to address longer questions, issues, to ask me about an assignment, review a grade you received, or to discuss other matters. If you send me a long email, I am simply going to respond by asking you to meet with me to resolve the matter. I will not resolve matters over email.

If I have asked you to schedule an appointment with me, I am not trying to avoid you. I am offering you my full attention and preparation. Due to my schedule and other campus responsibilities, I ask you to respond to emails and to be respectful of time.

###Required Materials

We will utilize a variety of tools to make this class successful and to create your class projects.

• Texts and Readings:

• Learning Processing by Daniel Shiffman (purchase)

• Additional links found on github.com 

• A Github account for yourself- https://github.com/ - email me your handle

• Processing - http://processing.org/

• openFrameworks - http://www.openframeworks.cc/

• Sublime Text

• Proper utilization of resources outlined

Please Note: Software is either already on the computers in the lab, or free to download. • A hard drive

• A notebook/sketchbook and a pen. At all times.

Course Structure

This is a studio course. Students will work on individual projects and group collaborations. Work will be completed both inside and outside of the class. Class will be a mix of lectures, class discussion, Show & Tell, workshops/challenges, studio time and critiques. Guest critics may be present.

The course can be broken down into 3 sections: programming basics, Object Orientated Programming (OOP), and advance topics (automation/behaviors, using addons - JSON, API’s, etc).

A typical day will aim for the following schedule:

• 10:00 - 11:30 Demo/Lecture/Workshop/Discussion

• 11:30 - 12:00 Show & Tell Presentations

• short break

• 12:15 - 1:30 Pair programming workshop for class exercises

• 1:30 - 1:45 Tickets to Leave

###Important Aspects of this Course

Pair programming is a popular way to learn and to work on projects. Two people share one computer and write code together. For the second half of class, an exercise will be given which will be worked on in pairs. The exercise will be due at the end of the class period and presented to class. On occasions the deadline will be at another point. Yet, the exercise is meant to be worked on together - on one laptop, in one program.

Homework projects will be turned in via GitHub. GitHub is a web hosting service that supports Git version control. It is more important than your resume, whether you are an artist or designer. It’s used largerly for software, but can be used for anything. It’s important to become familar with it, develop good habits (it’s like Time Machine, but better). See the assigned reading links for more information.

Time. Time management is everything. You will need it to have reasonable accomplishments in this class. The material is cumulative. The readings are essential. Writing code is the only way to make progress and to fully synthesize the material. It becomes evident quite quickly. Develop excellent time management. You will need 8-10 hours outside of class to succeed.
Projects are not group projects.

How to Submit Assignments via GitHub

Do the follow these steps for each assignment:

  1. To start, fork the repository.
  2. Clone the repository to your computer.
  3. Modify the files and commit changes to complete your solution.
  4. Push/sync the changes up to GitHub.
  5. Create a pull request on the original repository to turn in the assignment.

###Show and Tell

You will be assigned a Show and Tell presentation date. See the calendar. Please research the assigned artist/designers/firms/pieces/collectives in advance. Each presentation will be about 10-15 minutes long. Be able to address the following, along with visual examples of their work: (2 points each)

• What is original/unique about how this artist uses technology?

• What kind of code did the artist use? (JavaScript? Flash? Procesing? openFrameworks?)

• Why is it necessary that the artist use code? (ie: particularly if it’s non-interactive, could it have been achieved with traditional or linear media?)

• Your presentation must be prepared and professional.

Show and Tell People

Week 2: Jan 22 - Field - http://www.field.io/ & Josh Nimoy

Week 3: Jan 29 - Jer Thorpe & Jurg Lehni (Brian Shapiro)

Week 4: Feb 5 - United Visual Artists & Hellicar & Lewis (Jonathan Echavarria)

Week 5: Feb 12 - Robert Hodgin - Flight404 & Casey Reas (Bruce Johnson) + Julian Oliver & Amit Pitaru (Kevin)

Week 7: Feb 26 - Ben Fry & Joshua Noble - (Valencio) + Zach Lieberman & rAndom International (Nicholas Escalante)

Week 8: Mar 5 - Red Paper Heart & Daniel Shiffman - (Nyoka)

Week 9: Mar 19 - Marius Watz & Memo Akten (Hector)

Week 10: Mar 26 - Seb Lee-Delisle & Kyle McDonald - (Jhossei)

Week 12: Apr 9th - Jeff Crouse & Golan Levin - (Ash)

Week 13: Apr 16 - Zachary Lieberman & Martin Wattenberg (Andrew Arce)

Week 14: Apr 23 - Joshua Davis, N-e-r-v-o-u-s-S-y-s-t-e-m, Soso Limited, Diato Manabe, Leo Villareal (Ryan + Jonathan Pelegrini)

Grading

• Show & Tells 3%

• Self-Assessments (Tickets to Leave, Midterm & Final) 7%

• participation 10%

• Exercise 1, 2, 4 10% (total)

• Exercise 3, 5, 6 20% (total)

• Project 1: Adjective (critiqued) 20%

• Project 2: Choice (critiqued) 30%

Each assignment will be allotted a certain number of points. For example, Show & Tell presentations are worth 8 points, 2 points for each required aspect. The points are given based on those aspects, and also how thorough and crafted those aspects are presented. If you receive 8 points, you have an 8/8 or a 100% for your Show and Tell grade which is worth 3% of your final grade. If you receive 6/8, you have a 75% for your Show & Tell grade. If you have a 3/8, you have a 37.5% for your Show & Tell grade. If you do not do your Show & Tell or fail, you get a 0%.

For each project your grade will be assessed upon the following: Principles, Creativity/Thoughtfulness, Craft. Below gives you a sense of the spectrum, giving examples for high, middle and low grades.

Principles:

• Superior - A - Your work shows evidence and understanding of programming concepts discussed in readings, lectures, and exercises, as you bend them to your will.

• Satisifactory - C - Your work shows evidence of concepts and is still developing an understanding of course material. You understand some aspects, but aren’t utilizing them fully. Usage is cursory. Keep pushing your work and review the material to revisit how you can integrate it to your work.

• Unexceptable - D/F - Your work shows some evidence of concepts discussed, but lacks key understanding, confidence, robustness and authority. Aspects are lacking. Reviewing course material is required. Ask questions in class. Manage your time better.

Creativity, Thoughtfulness:

• Superior - A - YYour work demonstrates your personality and a great depth of engagement with the material. It’s extremely evident that you are thinking, exploring, playing and taking risks. You are creating wonderful experiences.

• Satisifactory - C - You are executing your ideas, but more time is needed to consider more deeply about what is conceptually and physically happening. They are barely getting off the ground. Or have large bits that are broken. Do more research and exploring. Play.

• Unexceptable - D/F - Your work is so straightforward that it’s flat. It’s barely coded (or badly broken). It’s copied from elsewhere and not expanded upon. Question and Iterate your work to push your it further. Read. Play. Get off the lame track and get inspired.

Craft:

• Superior - A - Your work shows delicate care and consideration to presentation and professionalism. You code is neat, clean, commented and structured. Your friends consider you “Type A.” Your style is evident.

• Satisifactory - C - Your work shows the birth of your ideas, but further time and iteration can really push your work to excel. Your code is there, but messy. It can be simplified and made cleaner. What you put into it, is what you get out of it. Practice makes perfect!

• Unexceptable - D/F - Your work is rushed and looks like it was done on your train-ride in or the night before. Make your work something you are proud of. You are here to build your portfolio after all, aren’t you?

Participation will be based upon: Professionalism, Engagement, and Improvement

Professionalism:

• Superior - A - Always arrives on time; assignments turned in properly and on time; respectful of others in class and gives feedback appropriately.

• Satisifactory - C - Usually arrives on time; most assignments turned in on time; listens to others.

• Unexceptable - D/F - Often tardy; turns in assignments late; fails to prepare for class; in attentive to instructor or other students

Engagement:

• Superior - A - Always contributes appropriately to class discussion; frequently offers to demonstrate technique; shows leadership in group projects.

• Satisifactory - C - Usually contributes to class discussion; has demonstrated technique; participates actively in group projects.

• Unexceptable - D/F - Does not participate in class discussion; no evidence of technique; fails to contribute adequately to group projects.

Improvement:

• Superior - A - Shows an exceptional and growing understanding of technique; builds on previous lessons; accepts critique and makes proper adjustments.

• Satisifactory - C - Technique is developing; has shown some ability to build on previous lessons; generally able to accept critique.

• Unexceptable - D/F - Little or no development of technique; is unable or unwilling to accept critique; unable to make adjustments.

The numerical breakdown for letter grades is as follows:

• A 100-90 Excellent

• B 89-80 Very Good/Good

• C 79-70 Satisfactory

• D 69-63 Poor; Below Average

• F 63 & below Unacceptable

The Bloomfield College Grading Policy can be found in the current Course Catalog.

Required Resources

• Github vs Linked in : http://www.ittybittyurl.com/32g6, http://www.ittybittyurl.com/32g7

http://lifedev.net/2008/07/programmer-creativity-boost/

http://www.openframeworks.cc/tutorials/

http://www.openframeworks.cc/

http://www.openframeworks.cc/documentation/

http://wiki.openframeworks.cc/index.php?title=Main_Page

http://ofxaddons.com/

http://natureofcode.com/

• Douglas Rushkoff’s Program or Be Programmed

Fabulous References and Supporting Resources

Programming (general) and other languages

http://worrydream.com/LearnableProgramming/

http://www.udacity.com/

http://www.codeschool.com/

• Code Academy - http://www.codecademy.com/#!/exercises/0

https://coderwall.com/

http://www.ittybittyurl.com/32g9 <-- list of online references and learning places for programming

http://projecteuler.net/problems

http://teamtreehouse.com/library

http://learnpythonthehardway.org/

http://ruby.learncodethehardway.org/

http://codingbat.com/ (Python and Java)

http://inventwithpython.com/

http://creativejs.com/2011/08/31-days-of-canvas-tutorials/

Processing

Learning Processing (Daniel Shiffman, video lectures)

Nature of Code (Daniel Shiffman, video lectures)

http://funprogramming.org/

http://forum.processing.org/

http://processing.org/learning/

http://www.learningprocessing.com/tutorials/

http://www.plethora-project.com/2011/09/12/processing-tutorials/

http://flowingdata.com/2010/04/13/data-visualization-tutorial-in-processing/

http://www.lynda.com/Processing-training-tutorials/1402-0.html

####openFrameworks

https://sites.google.com/site/ofauckland/home

https://github.com/jefftimesten/CodeForArt

https://github.com/openframeworks/openFrameworks/wiki/Tutorials,-Examples-and-Documentation

http://www.quietless.com/kitchen/getting-started-with-openframeworks/

http://www.memo.tv/simple-openframeworks-application-on-iphone-sample-1/

####Git

http://gitref.org/

http://ndpsoftware.com/git-cheatsheet.html#loc=local_repo;

http://git-scm.com/docs

http://rogerdudler.github.com/git-guide/

http://www.lynda.com/GitHub-training-tutorials/1384-0.html

####Xcode

http://www.lynda.com/Xcode-training-tutorials/451-0.html

Twitter Resources and Inspiration

• Joshua Noble - @fctry2

• Joshua Nimoy - @jtnimoy

• Red Paper Heart - @redpaperhearts

• Creative Coding - @creativecoding

• Casey Reas - @Reas

• Daniel Shiffman - @shiffman

• Marius Watz - @mariuswatz

• Amit Pitaru - @pitaru

• Processing Tips - @ProcessingTips

• Creative Applications - @creativeapps

• Memo Akten - @memotv

• Seb Lee-Delisle - @seb_ly

• Eyeo organizers - @eyeofestival

• Kyle McDonald - @kcimc

• Jer Thorp - @blprnt

• Golan Levin - @golan

• Hacker School - @hackerschool

Technology in the Classroom

Please respect class time and the contact with me, your professor. Utilize your phones only on break. Keep your phones on silent otherwise. If you absolutely need to take a call, please excuse yourself from class.The quality of the class depends in large part on the quality of your attention and active participation. In particular, give me and your fellow students the respect deserved. Give your full attention when students are presenting work and while I am going through lectures and demos. Continued use of cell phones or social networking sites during class time are a distraction. Students that are not respectful of class time will be asked to leave class. Course material missed is their own responsibility to cover, make-up and address. It is not the Professor’s.

Academic Integrity

Violations of academic integrity are considered to be acts of academic dishonesty and include (but are not limited to) cheating, plagiarizing, fabrication, denying other access to information or material, and facilitating academic dishonesty, and are subject to the policies and procedures noted in the Student Handbook and within the Course Catalog, including the Student Code of Conduct and the Student Judicial System. Please note that lack of knowledge of citations procedures, for example, is an unacceptable explanation for plagiarism, as is having studied together to produce remarkable similar papers or creative works submitted separately by two students, or recycling work from a previous class.

Please see the Student Handbook for further information regarding this, including procedures taken for addressing such violations. Procedures may include, but are not limited to: failing the assignment, failing the course, going in front of an academic judicial council and possible suspension from school. Violations will not be tolerated.

Educational Accessibility Statement

Bloomfield College is committed to assuring equal educational opportunity and full participation for all students. The mission of the Office for Students with Disabilities is to provide individuals with learning differences (a.ka. disabilities) the same access to programs and activities as other students. We assist students to maximize their potential while helping them develop and maintain independence.

Students who believe they are eligible for course accommodations under the ADA or Section 504 or have had accommodations or modifications in the past, should contact the Office for Students with Disabilities at 973-748-9000 or [email protected] to arrange for appropriate accommodations and to obtain an accommodations letter, if applicable. Faculty can provide course accommodations/modifications only after receipt of an approved accommodations letter from the Office for Students with Disabilities. Accommodation letters can be provided to qualified students at any time during the semester, but grades earned before the faculty receives the letter cannot be changed.

Other Support Services for students

· Personal Counseling: If you are struggling with a personal issue and need to speak with someone, Bloomfield College offers free and confidential counseling to all students. For more information, contact Sharon McNulty, the Director of Personal Counseling, at [email protected].

· Health Services: If you are feeling ill, make an appointment at the College’s health services office. For more information contact Robert Martinez at [email protected].

· The Student Support Services (SSS) Grant was awarded to Bloomfield College in the 2000-2001 academic year. The program was named STAR (Students To Achieve Renown). The program fosters the attainment of academic and personal success via student centered activities and services so that each participant may successfully acquire their baccalaureate degree.

What is STAR?

The STAR Program is a TRIO federally funded project that endeavors to increase the retention and graduation rates of its participants while facilitating the process of transition from one academic level to the next. A comprehensive student support services program that provides opportunities for academic development, assists students with basic college requirements, and serves to guide and motivate students towards the successful completion of their college education. In particular, the project aims to advance objectives related to needs assessment, good academic standing, persistence and graduation.

Academic Advising and Personal Counseling
Mentoring and Coaching
Instruction in Academic Foundation Courses
Academic Skill Building & Study Skills Workshops
Financial Literacy Workshops                                                                                                        
Math, English & Technology Tutorials
Pre-Nursing Support Group
Student-Staff Roundtables
Career Guidance
Participant Computer Lab
Leadership & Cultural Enrichment Activities
Grant Aid to Pell-Eligible Students
Assistance in understanding and completing your FAFSA
Graduate/Professional School Enrollment Assistance

For more information, contact [email protected]. 

Schedule

  • Week 1: Jan 15

    • Class
      • Introductions
      • Course Outline
      • Expectancies
    • Lab
    • For Homework
      • Get a Github account
      • Email me your handle from your BC acct
      • Fwd your BC account to personal acct
      • Read:
        • Rushkoff’s Program or Be Programmed - Ch. 1 (CMT)
        • Programming, Creative Boost (RR)
        • PI - Ch. 2
  • Week 2: Jan 22

  • Week 3: Jan 29

    • Class
      • Loops, Control, Interaction
      • Git Hub
    • Lab
      • PP: Exercise 2
    • For Homework
      • Project 1
      • Read:
        • LP - Ch. 4-6
  • Week 4: Feb 5

    • Class
      • Random
      • Motion
      • Functions
    • Lab
      • Studio Time
    • For Homework
  • Week 5: Feb 12

    • Class -Arrays -Algorithms -Images
    • Lab -PP: Exercise 3
    • For Homework
      • MidTerm Self Assessment -Read:
        • LP - Ch. 9- 11
        • Project 1
  • Week 6: Feb 19 - MidTerm Self Assessment Due

    • Class
      • Project 1 DUE
      • Pixels - breaking apart images
    • Lab
      • PP: Exercise 3
    • For Homework
      • Pull everyone’s projects & run them. Give 2 critical/improvement comments, 1 positive comment.
      • Read:
        • LP - Ch. 15-16
      • Sign up for One-on-One reviews with me during my office hours. (Link forthcoming)
  • Week 7: Feb 26

    • Class
      • Video
      • OOP
    • Lab
      • PP: Exercise 4a
    • For Homework
      • Read:
        • IP - Ch. 5
        • LP - Ch. 8, 22
  • Week 8: Mar 5

    • Class
      • OOP
    • Lab
      • Exercise 4a/b
    • For Homework
      • Proposal for Project 2
      • Read
        • Programming, Creative Boost (RR)
  • March 9 - 15 **Spring Break **

  • Week 9: Mar 19

    • Class
      • Project 2: round table proposals
      • Strings & Reading files
    • Lab
      • Exercise 5
    • For Homework
  • Week 10: Mar 26

    • Class
      • Round table for Project 3
      • Addon’s
      • Libraries
    • Lab
      • Exercise 6
    • For Homework
      • Read:
        • LP - Ch. 20-21, 23
  • April 2 Easter Break

  • Week 12: Apr 9th

    • Class
      • Json
      • OpenCV
    • Lab
      • Studio Time
    • For Homework
      • Prototype for Project 3
  • Week 13: Apr 16

    • Class
      • Prototype for Project 3 Due
      • Demo By Request
    • Lab
      • Studio Time
    • For Homework
      • Project 3
  • Week 12: Apr 23

    • Class
      • Studio Time
    • Lab
      • Studio Time
    • For Homework
      • Project 3
      • Final Self-Assessment
  • Week 13: Apr 30

    • Class
      • Project 3: Due - Group Critique
      • Final Self Assessment Due
    • For Homework
      • Study for the Final
  • Finals Week May 7th - Final Exam

Paired Programming Exercises:

Exercise 1: Crop a section of Kandinsky’s Composition 8 (github) First select an interesting/ambitious crop, then load it into a program such as Photoshop or Illustrator to read the color and coordinate data. Use integer values for coordinates and only use the following functions for drawing: line(), triangle(), quad(), rect(), ellipse(), arc(), and beginShape(), endShape(), vertex().

Exercise 2: Write a program that creates a monster. Animate the monster using variables and mouse interaction. Use different control constructs to animate the character for a set duration, or state.

Exercise 3: Use what you’ve learned about motion and images to load images into a kinetic collage, that changes upon input. Use only your own images or images that you have permission to use. Flickr is a good source if you don’t want to use your own photos: http://www.flickr.com/commons/

Exercise 4a: Take monsters made from others in the class (See exercise 2). Create a classes for each. Then create a monster army, with each monster being able to be drawn uniquely, based on the call to the class. You must have at least 3 methods. Create a program that draws your monster army to the screen at once. You may even make classes out of individual parts and swap them among monsters (ex, hairy arm, fleshy arm, buffer arm, robotic arm, etc).

Exercise 4b: Take your monsters and give them individual behaviors. Are certain ones angry or happy? Weak or strong? Playful or humourous? What happens when certain monsters come in contact with other monsters? How do they interact? What happens over time? Do they age? Get fat? Integrate time, motion, Perlin noise, control structures, etc.

Exercise 5: Strings

Exercise 6: XML, Yahoo, Twitter- Libraries & API

Pick an adjective and make a program that illustrates that adjective interactively. You may not use images. Only drawing functions, meaning mostly stuff found in the ‘graphics’ section. The focus of this project is procedural intensity. How expressive can you be using only lines, shapes, colors?

Code must be 60 lines or more, not including spacing, comments or commented out code

Ingredients: Graphics (shape, color, line, placement, custome shapes), Control Structures (if, for, while), Movement, Interaction (mouse, keyboard), Custom functions, Random.

Project 2: Choice - 6wks (../../../FinalProjects)

Option 1- Persuasion: Choose a current event, news item, or issue that you feel strongly about and make a piece that addressees it. Think of it as an interactive, algorithmic documentary. The emphasis of this project is using code to be persuasive. How can you convey a point of view in using procedural generation and interactivity?

Ingredients: Control structures, interaction, addon’s, libraries, advance topics

Option 2 - High Score: Design and program a game. This project focuses on motion and interaction. To place the focus on those two components exclusively, the visual elements will be minimal. The visual components of the game are restricted to ~6 basic shapes on the screen at a time, but you may use any motion or interaction technique that you can imagine. You many use only lines, circles, and rectangles, but you may also use simple typography to keep score or show other basic data. These restrictions have been defined to minimize the complexity of the project, to encourage you to be creative within constraints, and to place the emphasis on the qualities of the interaction. After you have completed the game as geometry, you may choose to “skin” the game.