Differences between revisions 1 and 41 (spanning 40 versions)
Revision 1 as of 2012-11-04 13:48:19
Size: 7951
Editor: v217232
Comment:
Revision 41 as of 2013-01-10 14:46:49
Size: 9434
Editor: dyn-176108
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
= Creative Programming Assignment 201204 (Q4) = = Creative Programming Assignment 201211 =
Line 9: Line 9:
 * 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.  * 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
Line 14: Line 22:
 * This assignment has two parts, each of which has two lectures and one interactive session.
 * There will be two challenges, one for each part. Your result of the challenge will be exhibited during the interactive session.
 * 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 in the interactive session.
 * 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.
Line 19: Line 31:
== Schedule ==
 * Part 1: {{{
  Week 1: 25-04-2012 08:45 until 10:30 AUDITORIUM 14
  Week 2: 02-05-2012 08:45 until 10:30 AUDITORIUM 14
  Week 3: 09-05-2012 08:45 until 10:30 AUDITORIUM 14
}}}
 * Part 2: {{{
  Week 4: 16-05-2012 08:45 until 10:30 AUDITORIUM 14
  Week 5: 23-05-2012 08:45 until 10:30 AUDITORIUM 14
  Week 6: 30-05-2012 08:45 until 10:30 AUDITORIUM 14
}}}
=== Part 1 ===
 * '''Challenge''': Creating static visual arts. At the end of this part, every student is expected to be able to
=== Challenges ===
 Challenge 1:: Individual task. Creating static visual arts. At the end of this part, every student is expected to be able to
Line 33: Line 34:
  * print the result and present it on a form board (A3 only please), for the interactive session in the third week.   * print the result and present it on a foam board (A3 only please), for the exhibition in the fourth week.
Line 40: Line 41:
==== Week 1: Introduction and Variables ====
 * Presentation by Rene Ahn: [[attachment:PresentationWeek1.pdf]]


==== Week 2: Control flows and PDF output ====
 * Presentation by Loe Feijs: [[attachment:PresentationWeek2.pdf]]
 * Examples: [[attachment:ExamplesWeek2.zip]]

==== Week 3: Interactive Session 1 ====
 * Everyone brings your A3 print (presented on a form board nicely) to the session.
 * Prepared to present your concepts and techniques to the others.
 * All the assigners will be present.

=== Part 2 ===
 * '''Challenge''':
 * Create interactive visual arts. At the end of this part, every student is expected to be able to create an interactive installation that
  * uses a webcam to capture movements as input, and
  * as output, dynamically render visual arts in real time as output.
 * You may work individually or in pairs.
 * Examples for inspiration
  * <<YouTube(NwVBzx0LMNQ)>><<YouTube(dyMVZqJk8s4)>>
 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.
Line 62: Line 43:
  * 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.   * 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. 
Line 67: Line 48:
==== Week 4: Functions, Arrays and Algorithms ====
 * Presentation by Mathias Funk: [[attachment:PresentationWeek4.pdf]]
== Schedule ==
Line 70: Line 50:
==== Week 5: Classes, Objects and Computer Vision ====
 * Presentation by Jun Hu: [[attachment:PresentationWeek5.pdf]]
 * The Car Example: [[attachment:ExampleWeek5.zip]]
 * Computer vision (movement detection) using Myron
  * Library: [[http://webcamxtra.sourceforge.net/download.shtml|JMyron (WebCamXtra)]], or [[attachment:JMyron.zip]]
  * If the camera image is mirrored and you can not adjust it from the settings of the camera, you might need [[http://download.cnet.com/ManyCam-Virtual-Webcam/3000-2348_4-10593500.html|ManyCam Virtual Webcam]].
  * For Windows platforms: If you got an error message saying "JMyron.dll can not find dependent libraries" or something similar, please check first whether you have copied the DLL's to required directory. If you are sure you have done it correctly, follow the following steps to install additional DLLs:
   * Download [[attachment:msvc71.zip]]
   * unzip it, copy both {{{msvcp71.dll}}} and {{{msvcr71.dll}}} to
    * {{{C:\Windows\system}}}, if you are running 64bit Windows.
    * {{{C:\Windows\system32}}}, if you are running 32bit Windows.
  * For Mac OS X platforms:
    * Intel (most newer Macs): first unpack and install [[attachment:JMyron.zip]], THEN replace the file "libJMyron.jnilib" in the folder JMyron/library with the file from [[http://www.jibberia.com/projects/libJMyron.jnilib.zip|here]]
    * PowerPC (old Macs only): you can use [[attachment:JMyron.zip]] without any changes
 * Read the book "Getting Started with Processing", chapter 5 "Response", learn how to respond to mouse events.
 * It is recommended to learn how to use a GUI library to create your own interface. Check out [[http://www.sojamo.de/libraries/controlP5/|ControlP5]].
|| '''Week''' || || '''Lecture''' 13:45 t/m 15:30; PAVILJOEN J17 || || '''Workshop''' 10:45 t/m 12:30; AUDITORIUM 12 ||
|| 1 || 12-11-2012 || Introduction, by Rene Ahn || 15-11-2012 || Using Libraries, by Mathias Funk and Rene Ahn||
|| 2 || 19-11-2012 || Variables and Flow Control, by Rene Ahn || 22-11-2012 || Graphics, by Mathias Funk and Loe Feijs ||
|| 3 || 26-11-2012 || Arrays and Functions, by Mathias Funk || 29-11-2012 || Multimedia, by Mathias Funk ||
|| 4 || 03-12-2012 || Algorithms and Data Structures, by Loe Feijs ||<bgcolor="#E0E0FF"> 06-12-2012 ||<bgcolor="#E0E0FF"> Exhibition of Challenge 1 ||
|| 5 || 10-12-2012 || Object Orientation, by Loe Feijs, Jun Hu and Rene Ahn || 13-12-2012 || Arduino and Serial Communication, by Jun Hu and Rene Ahn||
|| 6 || 17-12-2012 || GUI and Interactivity, by Jun Hu || 20-12-2012 || Internet (of Things), by Peter Peters and Mathias Funk ||
|| 7 || 07-01-2013 || Beyond Processing, by Jun Hu ||<bgcolor="#E0E0FF"> 10-01-2013 ||<bgcolor="#E0E0FF"> Exhibition of Challenge 2 ||
Line 87: Line 59:
==== Week 6: Interactive Session 2 ====
 * Bring your interactive demonstration to the session.
 * Be prepared to present the concepts and the techniques to the others.
=== Week 1 ===
==== Lecture: Introduction ====
 * [[attachment:Introduction.pdf]]
Line 91: Line 63:
==== 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"

==== Workshop: Multimedia ====
 * [[attachment:Multimedia_examples.pdf]] (no slides, only Processing code)
 * we were aiming at something like this:
  <<YouTube(fsE0g-8CDQo)>>

=== 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]]
  * 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:IoT.pdf]]
  * [[attachment:IoTExamples.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 ====
Line 95: Line 128:
 * An invitation to a shared Drop``Box folder will be sent to everyone. Please join the shared folder.
 * Code of conduct: do not change/delete the documents from the others. Do not upload huge files.
 * Upload files in your own folder: {{{DG200-201202/Deliverables/Part <1|2>/<Your Name>. }}}. Do not change the structure of the folder.
 * '''Feedback request''' after the assignment:
  * Please send your request only to one of the assigners, according to this [[attachment:RegistrationList.xls]].
  * '''Attach all your deliverables to the request''', as identical to the files in the Drop``Box folder. Including:
   * ZIP file of the source code from part 1.
   * PDF from part 1.
   * ZIP file of the source code from part 2.
   * TXT file containing the YouTube link from part 2.

 * '''For ALL students''':
  * Attach all your deliverables to an email, send it to <<MailTo(dg290 DOT submission AT gmail DOT com, dg290.submission@gmail.com)>>, including:
   * ZIP file of the source code from Challenge 1.
   * PDF from Challenge 1.
   * 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 1.
   * PDF from Challenge 1.
   * ZIP file of the source code from Challenge 2.
   * TXT file containing the YouTube link from Challenge 2.
Line 117: Line 155:
<<Anchor(installArduino)>>

== 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.
 2. Install necessary Arduino drivers. Follow the instructions in page 23, Chapter 3 of [[attachment:GSArduino.pdf|Getting Started With Arduino]]

== Installing Processing ==

Creative Programming Assignment 201211

  • 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 O'Reilly

  • Before the first lecture, Please download and 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

1. 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.

1.1. 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

  • What to be delivered:
    • Source code. Please zip the sketchbook and deliver the zip file. Please use the 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 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 plain text file with an extension “.TXT”. The video shall be titled as

      CreaPro 2012: <a meaningful title> by <your names>

      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”.

  • 2. Schedule

    Week

    Lecture 13:45 t/m 15:30; PAVILJOEN J17

    Workshop 10:45 t/m 12:30; AUDITORIUM 12

    1

    12-11-2012

    Introduction, by Rene Ahn

    15-11-2012

    Using Libraries, by Mathias Funk and Rene Ahn

    2

    19-11-2012

    Variables and Flow Control, by Rene Ahn

    22-11-2012

    Graphics, by Mathias Funk and Loe Feijs

    3

    26-11-2012

    Arrays and Functions, by Mathias Funk

    29-11-2012

    Multimedia, by Mathias Funk

    4

    03-12-2012

    Algorithms and Data Structures, by Loe Feijs

    06-12-2012

    Exhibition of Challenge 1

    5

    10-12-2012

    Object Orientation, by Loe Feijs, Jun Hu and Rene Ahn

    13-12-2012

    Arduino and Serial Communication, by Jun Hu and Rene Ahn

    6

    17-12-2012

    GUI and Interactivity, by Jun Hu

    20-12-2012

    Internet (of Things), by Peter Peters and Mathias Funk

    7

    07-01-2013

    Beyond Processing, by Jun Hu

    10-01-2013

    Exhibition of Challenge 2

    2.1. Week 1

    2.1.1. Lecture: Introduction

    2.1.2. Workshop: Using Libraries

    2.2. Week 2

    2.2.1. Lecture: Variables and Flow Control

    2.2.2. Workshop: Graphics

    2.3. Week 3

    2.3.1. Lecture: Arrays and Functions

    2.3.2. Workshop: Multimedia

    2.4. Week 4

    2.4.1. Lecture: Algorithms and Data Structures

    2.4.2. Exhibition of Challenge 1

    2.5. Week 5

    2.5.1. Lecture: Object Orientation

    2.5.2. Workshop: Arduino and Serial Communication

    2.6. Week 6

    2.6.1. Lecture: GUI and Interactivity

    2.6.2. Workshop: Internet (of Things)

    2.7. Week 7

    2.7.1. Lecture: Beyond Processing

    2.7.2. Exhibition of Challenge 2

    3. Deliverables

    • For ALL students:

      • Attach all your deliverables to an email, send it to dg290.submission@gmail.com <dg290 DOT submission AT gmail DOT com>, including:

        • ZIP file of the source code from Challenge 1.
        • PDF from Challenge 1.
        • 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 RegistrationList.xls Excel sheet or in PDF format RegistrationList.pdf.

      • Attach all your deliverable to the request. Including:

        • ZIP file of the source code from Challenge 1.
        • PDF from Challenge 1.
        • ZIP file of the source code from Challenge 2.
        • TXT file containing the YouTube link from Challenge 2.

    4. Installing Processing

    1. 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.

    2. Create a directory "Programs" on the C: disk, in the root. If "C:\Programs" exists already, skip this step.
    3. Extract the entire directory to C:\Programs (note, not "C:\Program Files"). if you are reinstalling Processing, remove the entire processing directory first.
    4. Create a shortcut on your desktop to "Processing.exe" for easy access.

    5. Installing Arduino

    1. Download Arduino software;

    2. Extract the entire directory to C:\Programs (note, not "C:\Program Files"). if you are reinstalling Arduino software, remove the entire arduino directory first.
    3. Create a shortcut on your desktop to "Arduino.exe" for easy access.
    4. Install necessary Arduino drivers. Follow the instructions in page 23, Chapter 3 of Getting Started With Arduino

    6. Installing Processing

    7. 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.

    CreaPro: CreativeProgrammingAssignment201211 (last edited 2013-01-10 14:46:49 by dyn-176108)