EDPX 3701/4701 Advanced Coding

Syllabus

Catalog Description:

This class with use different technologies and techniques to explore creative coding in greater depth.
Prerequisite: EDPX 2100 or permission of the instructor. Lab fee.

Contact information

Associate Professor Chris Coleman

Office: Room 216A Sturm Hall

Office Hours: 2-5pm Monday and Wednesday or by appt.

Email: Christopher.Coleman@du.edu

Course Overview

In this special topics class, those of you who enjoy text based coding (like Processing) but want to go further will be introduced to openFrameworks (aka OF). OF is a set of libraries that make it much easier to make amazing creative things in C++. OF translates the structures of C++ into patterns very familiar to users of Processing and makes it very easy to use the intense power of a lower level language for your creative works.
You can learn more here: http://openframeworks.cc/
We will get up and running with OF and then learn to apply it to devices like the LEAP, the Oculus Rift, and giant UHD touch screens to make interfaces and experiences.

Course Objectives

By the end of this course you will:

  • Have a working understanding of OpenFrameworks
  • Understand the process of creative coding in OF
  • Understand the basics using a professional level IDE/compiler
  • Understand how to use and add ofxaddons to your project
  • Understand how to troubleshoot complex code
  • Understand how to share and document your code for github
  • Consider interfaces for different formats including the LEAP, the Oculus Rift, and large scale touch screens.

Materials

  • A storage device such as a flash drive or portable hard drive with at least 8GB of space and a way to back up your files
  • All students should have a sketchbook for tracking and planning their ideas.
  • All students will need to sign up for or use an already present github account.
  • Reading materials and examples will be supplied digitally on this website.
  • Two reccomended books for people who like physical texts are “Matstering OpenFrameworks” by Denis Perevalov and “Programming Interactivity” by Joshua Noble

Policies

This class will combine individual work in the lab with individual and group instruction. Students must come to class prepared to work. Showing up without necessary files or equipment is the same as not attending. Although students may also use their home computers to work on projects, this is not a valid reason to not attend. It will be necessary to work outside of class to complete all projects and assignments. A minimum of six hours per week of work outside of class is suggested to get an average grade of a C. Computer failure, equipment malfunction, and file corruption are not accepted as excuses for late or unfinished work so BACK UP YOUR WORK. The computer labs are used by many students, so the labs are in high demand. Budget time accordingly as “unavailable computer time” will also not be accepted as an excuse. Participation in all class discussions and critiques as well as constructive use of lab time is considered in the final grade for each project. At any time in the creation process students should be able to produce notes, drawings,charts etc from their sketchbooks, as well as discuss and articulate the nature of their work to their peers as well as to the instructor.

Attendance is mandatory. Attending class is the responsibility of the student. Lectures and demonstrations may be given or changed without notice and many classes will start with professional examples of relevant work so punctuality is essential. An individual who is absent, late or sleeps during class will be responsible for getting the information missed. Students will be allowed two (2) absences without penalty. Any absence in excess of two will result in a 10% grade reduction of the final grade for the course per absence. All absences will be counted. A student who misses 15 minutes or more of a class (late or leave early) is considered absent. A student who sleeps will be considered absent. A student who will acquire absences due to a University sponsored activities must provide necessary documentation from the appropriate office prior to the absence to make any special arrangements for missed work.

For any absence due to religious beliefs, written notification should be provided in the first two weeks of the quarter; the student is responsible for any missed work. Any special medical or personal problems that occur, where absenteeism will exceed the allowed two, will require verification by a physician or emergency medical association (a letter from Student Affairs merely explains an absence, and will not qualify as an excuse). These situations may require course withdrawal or “Incomplete” status on the final grade. Six absences mandate an automatic grade of “F.” Three late arrivals (less than 15 min.) will equal one absence.

Any student who feels s/he may need an accommodation based on the impact of a disability or medical condition should contact  the Disability Services Program to coordinate reasonable accommodations.  They are located on the 4th floor of Ruffatto Hall; 1999 E. Evans Ave.303.871. / 2372 / 2278/ 7432.  Information is also available on line at http://www.du.edu/disability/dsp; see the Handbook for Students with Disabilities.

CARE Team (Communicate, Assess, Refer, Educate) – When an undergraduate student is involved in a crisis situation, the Pioneers CARE administrator assigns the case to a member of the CARE team (a group of Student Life professionals). The CARE team steps in to connect students with relevant campus resources and outside agencies. Most times, we may need to communicate with the reporting party to help accurately assess the needs of the student. The CARE Team will also outreach to the student to understand his/her situation and develop a plan of action leading towards his/her success. Pioneers CARE 303-871-2400 or email care@du.edu

Grading

Grades will consist of the following:

  • Assignments @ 20%
  • Project 1 @ 20%
  • Project 2 @ 30%
  • Github documentation @ 10%
  • Participation @ 10%
  • Cultural Events @ 10%

Projects  will be graded on the following basis, listed in order of importance.

  • Development, creativity and originality of concept or problem solution
  • Technical development and demonstration of skills
  • Craftsmanship and presentation of work (including commenting your code and the clarity of the readme file)
  • Participation in classroom discussions and critiques in connection with the work

Your grade will be calculated according to the following standards:

  • A = Excellent (100-90%)- work pushes far beyond the project stipulations and shows clear evidence of extreme time, dedication, care and thought about the project as evidenced in effective execution of original/thoughtful ideas.
  • B = Good (80-89%)- work exceeds the basic criteria, provides creative solutions to the problems and shows technical proficiency. Student has made the project “theirs” in that they do not need to explain project stipulations before showing the work.
  • C = Average (70-79%)- work fulfills all requirements, does not expand on techniques shown in class, ideas are close derivations of popular culture.
  • D = Unsatisfactory (60-69%)- work might meet basic criteria but in a careless and/or thoughtless way. Technical proficiency is rudimentary and no chances were taken.
  • F = Failure (0-59%)- the work does not meet the basic criteria.

Late projects will be penalized a letter grade for every class period they are late. Turning a project in after the beginning of the critique counts as one class day late.

Graduate Student Requirements

Students taking the course for graduate credit will be required to produce one additional project or project feature whose requirements are designed in conversation with the instructor. They will also write a 2 page critique and comparison of 3 creative coding based works. For all projects and assignments they are held to a higher standard, reflecting their graduate status.

Cultural Events

Students are required to attend at least 5 cultural events and write a 1 paragraph response (half descriptive and half reflective) as well as take one photo for each event. The cultural event should be related to Emergent Digital Practices and could include performances, lectures, art shows etc. If you are unsure the event is qualified, please ask the instructor. The responses must be labeled clearly and emailed to the instructor. Immediately before our class from 5-6pm there will be a weekly artist lecture series every Wednesday. These do count as cultural events but you are highly encouraged to attend them all.

Github

An essential part of working collaboratively and using open source code is to understand the process of sharing code online. We will use github to submit all assignments and projects. Each one will require a readme.md file with a description of the work and instructions for its use. You will be graded on the code, the comments in the code explaining what you are doing, as well as the readme file.

Lab Rules

It is your responsibility to adhere to all rules regarding the use of the EDP labs and equipment. You will be given a sheet stating all rules. Please see the program assistant in the EDP office if you need a form to access the EDP lab in 211 Sturm.

Plagiarism

Solutions to assignments you submit will be your own work. A student who is discovered to have plagiarized another’s work will immediately receive a grade of F for the course, and a recommendation for disciplinary action will be forwarded to the Dean of Students.

Software

While you are not required to purchase the software that we are using, not having the software is no excuse for failing to complete your projects. It is your responsibility to work out times when you can use the EDP labs or to make other arrangements for doing your work. Please do not download and/or install trial versions of this software or any other onto campus computers. We will be using Xcode on Macs or Visual Studio express for windows. Everything else is open source.

Course Outline

(The following schedule is open to revision at any point in the quarter.)

  • 3/23 – Syllabus, Intros, Intro to OF, Assignment 1
  • 3/25 – Getting back into creative coding, OF Book
  • 3/30 – XCode, the project generator, Seaweed Quiz
  • 4/1 – Using Addons, troubleshooting, Assignment 3
  • 4/6 -Project 1 assigned, 3D spaces and cameras
  • 4/8 – Project 1 ideas discussion, github and readme.md files
  • 4/13 –
  • 4/15 –
  • 4/20 –
  • 4/22 –
  • 4/27 –
  • 4/29 – Project 1 Due/Crit
  • 5/4 – Project 2 Assigned, Data Viz Center
  • 5/6 –
  • 5/11 –
  • 5/13 –
  • 5/18 –
  • 5/20 – Project 2 Pre-Crit
  • 5/25 – Memorial Day (no-class)
  • 5/27 – Work Day – One on Ones
  • 6/1 – Project 2 Due

Resources

– Lecture One

Class Forum – edpforums.org/

Openframeworks website – http://openframeworks.cc/

Download ofSketch – https://github.com/olab-io/ofSketch

ofBook –  http://openframeworks.cc/ofBook/chapters/foreword.html

ofSketch introduction http://openframeworks.cc/ofBook/chapters/ofSketch.html

– Lecture Three

Poly-Seaweed app

– Lecture Four

GitHub Links for Golan

GitHub Online Course Homework

– Lecture 5

Git CheatSheet

HarooPad for .md files

OFBook on Computer Vision

– Lecture 8

Video Tutorials on OF

– Lecture 11

NoiseWorkshop Code

– Lecture 14

Github Forking

 

Final Project:

Create a piece of software that empowers the disempowered or is about issues of empowerment. Definition = Empower – make (someone) stronger and more confident, especially in controlling their life and claiming their rights. Consider using an alternative interface and you are required to use at least one addon not utilized in class.  This could be an assistive tool for someone disabled, a learning tool for an underserved community, a tool for expression by those with no media outlets, a visualization tool about repression in a location, a tool that lets someone understand the plight or power of another, or ??

links:

http://www.eyewriter.org/

http://www.adimarom.com/?p=1386

Theyrule.net

http://www.graffitiresearchlab.com/blog/projects/laser-tag/

http://blog.sfpc.io/post/92594609416/thoughts-on-assistive-technology

 

Leave a Reply

Your email address will not be published. Required fields are marked *