#pragma section-numbers 2 = Creative Programming Assignment 201302 = * Please read AssignmentDescription. * /!\ Please follow the instructions below carefully. It will save us a lot of time. * For your convenience, please buy a copy of ''Getting Started with Processing'', by By Casey Reas, Ben Fry. e-Books and hard copies are available from [[http://shop.oreilly.com/product/0636920000570.do|O'Reilly]] * Before the first lecture, Please download and [[#installProcessing|install Processing]] on your laptop. * Always bring with you your laptop, with fully charged batteries and power cables. * For the workshops in week 5 and 6, please bring your Arduino starter kit to the class. your kit shall include at least the following: * Arduino board * USB cable * two push buttons * a bread board * a 10K ohm resistor * a light sensor (LDR or Light Dependent Resistor) * a few color leds * a few jumper wires <> == Summary of the structure == * This assignment takes seven weeks. Each week has: * a two hour lecture, * a two hour workshop, * and 12 hour self study tasks. * Exercises given by the lecturers, * Two challenges. One for the first four weeks and the other for the last three weeks. Your result of the challenge will be exhibited or presented during a scheduled workshop. * All the assigners and the students will visit the exhibition and give comments to each other. * Some of the results will be selected for plenary presentation. === Challenges === Challenge 1:: Individual task. Creating static visual arts. At the end of this part, every student is expected to be able to * create an artistic poster that demonstrates beauty and complexity, using Processing * print the result and present it on a foam board (A3 only please), for the exhibition in the fourth week. * Examples for inspiration [[attachment:examples.jpg|{{attachment:examples320.jpg}}]] * What to be delivered: * Source code. Please zip the sketchbook and deliver the zip file. Please use the [[http://en.wikipedia.org/wiki/Zip_(file_format)|zip format]] only. * PDF of the print. Challenge 2:: Individual task. Anything creative and interesting, utilizing the knowledge learned from the lectures and the workshops. An interactive application that uses both Processing and Arduino is preferred. * What to be delivered: * Source code. Please zip the sketchbook and deliver the zip file. Please use the [[http://en.wikipedia.org/wiki/Zip_(file_format)|zip format]] only. * A TXT file including a link to a YouTube video that demonstrates the interactivity. We would expect a good quality video. Please include the link in a [[http://en.wikipedia.org/wiki/Text_file#.TXT|plain text file with an extension “.TXT”]]. The video shall be titled as {{{ CreaPro 2013: by }}} Please also include a brief description (in the TXT file as well as on YouTube) about the concepts behind your video and the implementation techniques. Tag your video with “creapro”. == Schedule == || '''Week''' || || '''Lecture''' 13:45 t/m 15:30; METAFORUM ZAAL 08 || || '''Workshop''' 10:45 t/m 12:30; METAFORUM ZAAL 07 || || 1 || 18-02-2013 || Introduction, by Rene Ahn || 21-02-2013 || Using Libraries, by Mathias Funk and Rene Ahn|| || 2 || 25-02-2013 || Variables and Flow Control, by Rene Ahn || 28-02-2013 || Graphics, by Mathias Funk and Loe Feijs || || 3 || 04-03-2013 || Arrays and Functions, by Mathias Funk || 07-03-2013 || Multimedia, by Mathias Funk || || 4 || 11-03-2013 || Algorithms and Data Structures, by Loe Feijs || 14-03-2013 || Exhibition of Challenge 1 || || 5 || 18-03-2013 || Object Orientation, by Loe Feijs, Jun Hu and Rene Ahn || 21-03-2013 || Arduino and Serial Communication, by Jun Hu and Rene Ahn|| || 6 || 25-03-2013 || GUI and Interactivity, by Jun Hu || 28-03-2013 || Internet (of Things), by Peter Peters || Week 7: || 7 || Easter Monday || No lecture. || 04-04-2013 || Exhibition of Challenge 2, /!\ 08:45-10:30, in HG4.57 || === Week 1 === ==== Lecture: Introduction ==== * [[attachment:Introduction.pdf]] ==== Workshop: Using Libraries ==== * [[attachment:UsingLibraries.pdf]] === Week 2 === ==== Lecture: Variables and Flow Control ==== * [[attachment:VariablesAndFlowControl.pdf]] ==== Workshop: Graphics ==== * [[attachment:Graphics.pdf]] * [[attachment:Graphics_Exercises.zip]] === Week 3 === ==== Lecture: Arrays and Functions ==== * [[attachment:ArraysAndFunctions.pdf]] (just slides 1 - 24, the rest comes next week) * [[attachment:ArraysAndFunctions_examples.zip]] the introductory examples with the turning rectangles * [[attachment:DrawingCreatures.zip]] the example with the two "birds" ==== Homework: Arrays and Functions (voluntary!!) ==== You wanted more homework / exercise to develop your processing skills, here you go. All completely voluntary and optional. Start with the first one, as the other build on top of it. Questions? --> Ask during workshop 03, or email Mathias. Solutions? --> Next week! * Exercise '''Arrays.1''': Initialize a list of 8 balls with colors as strings, and draw all balls on screen at a random location in the color specified. * Exercise '''Arrays.2''': Initialize a list of 8 balls with colors as strings, and draw all balls on scren at a random location in the color specified. Animate the balls so that they bounce off the screen borders, all with different speeds. * Exercise '''Arrays.3''': Initialize a list of 100 balls with colors as strings, and draw all balls on scren at a random location in the color specified. Animate the balls so that they bounce off the screen borders, all with different speeds. * Exercise '''Functions.1''': Initialize a list of 8 balls with colors as strings, and draw all balls on scren at a random location in the color specified. Draw the ball with a function that takes the color of the ball as a parameter. * Exercise '''Functions.2''': Write a function that calls itself, but stops doing that after 5 times. The function should output number of the call every time. * Exercise '''Functions.3''': Write a function that calls itself twice and with every call draws a branch of a tree, so you will get a whole tree with ever shorter branches at the end. ==== Workshop: Multimedia ==== * [[attachment:WS_03_examples.zip]] (no slides, only Processing code) * we were aiming at something like this: <> === Week 4 === ==== Lecture: Algorithms and Data Structures ==== * [[attachment:AlgorithmsAndDataStructures.pdf]] * [[attachment:AlgorithmsAndDataStructures_examples.zip]] ==== Exhibition of Challenge 1 ==== === Week 5 === ==== Lecture: Object Orientation ==== * [[attachment:ObjectOrientation.pdf]] * [[attachment:ObjectOrientation_examples_Cars.zip]] * [[attachment:ObjectOrientation_examples_Earth.zip]] * [[attachment:ObjectOrientation_examples_EPD.zip]] * [[attachment:ObjectOrientation_examples_Planets.zip]] ==== Workshop: Arduino and Serial Communication ==== * [[attachment:ArduinoAndSerialCommunication.pdf]] ([[attachment:ArduinoAndSerialCommunication.pptx]]) * Download and [[#installArduino|install Arduino]] on your laptop * Book: [[attachment:GSArduino.pdf|Getting started with Arduino]] === Week 6 === ==== Lecture: GUI and Interactivity ==== * [[attachment:GuiAndInteractivity.pdf]] * [[attachment:GUIExamples.zip]] * You need to download and install the controlP5 library for Processing: [[http://www.sojamo.de/libraries/controlP5/]]. Notice that if you are using Processing 1.5.1, you have to download and install an earlier version of the controlP5: controlP5-1.5.2.zip from [[http://code.google.com/p/controlp5/downloads/list]]. ==== Workshop: Internet (of Things) ==== * [[attachment:IoT2013Q3.pdf]] * [[attachment:IoT2013Q3Examples.zip]] === Week 7 === ==== Lecture: Beyond Processing ==== * From Processing to Java: [[http://www.eclipse.org]] * Processing for Arduino: [[http://wiki.processing.org/w/Android]] * From Processing to C++: OpenFrameworks: [[http://www.openframeworks.cc/]]; [[http://www.openframeworks.cc/tutorials/]] ==== Exhibition of Challenge 2 ==== <> == Deliverables == === After Exhibition of Challenge 1 === * '''For ALL students''': * Attach the deliverables to an email, send it to <>, including: * ZIP file of the source code from Challenge 1. * PDF from Challenge 1. * '''For ID students: Feedback request''' after Exhibition of Challenge 1, '''in addition to the deliverables to the above gmail account''': * Please send your request '''ONLY''' to one of the assigners, according to this [[attachment:RegistrationList.xls]] Excel sheet or in PDF format [[attachment:RegistrationList.pdf]]. * '''Attach all your deliverable to the request'''. Including: * ZIP file of the source code from Challenge 1. * PDF from Challenge 1. === After the assignment === * '''For ALL students''': * Attach the deliverables to an email, send it to <>, including: * ZIP file of the source code from Challenge 2. * TXT file containing the YouTube link from Challenge 2. * '''For ID students: Feedback request''' after the assignment, '''in addition to the deliverables to the above gmail account''': * Please send your request '''ONLY''' to one of the assigners, according to this [[attachment:RegistrationList.xls]] Excel sheet or in PDF format [[attachment:RegistrationList.pdf]]. * '''Attach all your deliverable to the request'''. Including: * ZIP file of the source code from Challenge 2. * TXT file containing the YouTube link from Challenge 2. <> == Installing Processing == 1. [[http://processing.org/download/|Download processing]]. Please make sure you are downloading the latest '''stable''' release. There are two versions, one with Java, one without. If you are not sure, download the one '''with''' Java. * For those who know what the JDK is and wants to install Processing along with JDK: You need x32 version of the JDK no matter whether you are running an x32 or x64 system. * If you don't understand what the above comment is about, download the one '''with''' Java. 1. Create a directory "Programs" on the C: disk, in the root. If "C:\Programs" exists already, skip this step. 1. Extract the entire directory to C:\Programs (note, not "C:\Program Files"). if you are reinstalling Processing, remove the entire processing directory first. 1. Create a shortcut on your desktop to "Processing.exe" for easy access. <> == Installing Arduino == 1. Download [[http://www.arduino.cc/ | Arduino software]]; 1. Extract the entire directory to C:\Programs (note, not "C:\Program Files"). if you are reinstalling Arduino software, remove the entire arduino directory first. 1. Create a shortcut on your desktop to "Arduino.exe" for easy access. 1. Install necessary Arduino drivers. Follow the instructions in page 23, Chapter 3 of [[attachment:GSArduino.pdf|Getting Started With Arduino]] /!\ If you are installing Arduino on Windows 8, the link below explains shortly how to install drivers for arduino on Windows 8. [[http://mytechblog.com/2013/03/install-arduino-drivers-on-windows-8/]]. (Thanks to Wouter van der Wal for pointing this out) == Installing Processing == == If you have questions or if you need help == * The assigner will announce a help hour during his lecture. * The assigner will be available during this hour only if one or more of you make an appointment.