EDPX 3701/4701 Creative Coding Syllabus
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.
By the end of this course students will be able to:
Design & develop creative coding applications using OpenFrameworks
Utilize a professional level Integrated Development Environment (IDE)
Understand how to troubleshoot complex code and low-level errors
Share, document, & collaborate with their code using Git and Github
Consider interfaces beyond the desktop including the LEAP, VR displays, etc
Explore & critique the potential & direction of contemporary new media artists and their work.
Collaborate with their class peers through constructive criticism, sharing of skills/ideas, and networking.
This course is structured as a combination of reading assignments, short lectures, programming exercises, project work, and presentations. Class time will be spent in short, fundamental lectures and practical programming work stemming from example programs.
The major assignments are:
Exercises: Topic-based exercises will be conducted throughout the quarter. The emphasis on these exercises is practice on specific, fundamental concepts needed for more advanced project work. Think of these as fun, mini projects. Four to five potential exercises will be carried out through the quarter and finished exercises will presented through short, in-class showcases.
Major projects: There are two major projects which require use of the skills practiced throughout the course: Project 1 due at midterm & Project 2 due at the final. Project 1 involves on the creation of a visualization or generative artwork. Project 2 is focused on interactivity. Details can be found on the individual project pages:
Deliverables: You are expected to complete 2 major projects and a series of exercises.
Play: Do not approach this course as "what things do I need to learn to pass" but with an element of curiosity & play. Have fun and explore concepts and subject matter you find interesting. Think beyond the base requirements of the given assignments as the subject matter and end result are up to you.
Readings & Experimentation: You will be assigned required readings before specific classes. It is extremely important that keep up with the material and experiment with both the sample programs from the book as well as our class examples and examples found online to make sure you understand the important concepts.
Presentations: You will be required to present your 2 major projects. This involves explaining the concepts, important programming choices, showing of design sketches, and demonstration of the working program(s). Feedback will be provided via a following discussion as well as online tools.
Backups: You must have adequate storage to have a backup of your work. Please do not rely upon the lab computers for your only source of backup. USB drives or online/cloud storage should be used to make frequent and versioned backups of your projects. If a project is lost from your disk and you are not prepared with a backup you will still be held responsible for submitting the project on time. There will be no exceptions to this.
Text & Readings
Required readings/videos will be assigned from the course website schedule and/or project pages. Required readings will be referenced from online sources or as linked PDF files on the course website. Readings will be assigned and referenced 2 class sessions previous to discussion and related presentations.
Other excellent books (not required):
Mastering OpenFrameworks by Denis Perevalov
Programming Interactivity by Joshua Noble (includes Processing & Arduino)
Stuff You Need For Class
Github: An account on 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.
Sketchbook: A real, paper sketchbook for brainstorming, program design, and troubleshooting aka working out ideas before making anything. Use it, bring it to class, and utilize it for the required sketches for both Project 1 & 2.
The attendance to a minimum of 3 cultural events is required. For this course, cultural events should be in the field of New/Digital Media. It’s highly recommended that you seek pre-approval for cultural events.
For each event create a document with the title, date, 2-4 images from the event, 1-2 sentence description, as well as a brief and concise paragraph of your impressions. Submit as PDFs via the Cultural Event assignments on Canvas.
Do not wait until the end of the quarter!
- 20% Exercises*
- 30% Project 1
- 30% Project 2
- 10% Attendance, participation, & critiques
- 5% Cultural Events
- 5% Github Portfolio
Work will be graded on the basis of fulfillment of course requirements combined with an assessment of effort, creativity, risk, participation, and individual growth. Grades will be assigned as follows with the +/- range:
- A 100-90 Exceptional: outstanding implementation & concept (usually top 10%)
- B 89-80 Above average: good concept & excellent execution or vice versa
- C 79-70 Average: assignment functional & complete, implementation / concept sufficient but not outstanding
- D 69-60 Below average: assignment has problems / incomplete
- F 59-50 Failing: failed to deliver assignment
Fulfilling the requirements of the course is considered average and will earn a "C." Every student starts the class with a "C" grade. It will be necessary to work outside of class to complete all projects and assignments. Additional effort will be necessary to earn higher grades.
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.
Attendance: Two or more unexcused absences result in the drop of a letter grade. Being late three times counts as an unexcused absence.
Absence: Contact me ahead of time if you are going to be absent. I expect reasonable circumstances, not convenience. You're here to learn, right?
Illness: If you are sick, please avoid contact with others and refrain from coming to class. If you are too ill to return to class and miss more than three classes, this may be sufficient grounds to assign a grade of "I"/incomplete.
Participation: Students are expected to assume an active and engaged role in every aspect of class through verbal communication. Turn off all personal electronic devices before you arrive to class.
Quality of Work: All creative work under consideration for critique or discussion should be of a completed/finished quality that warrants the attention and respect of your cohorts. No excuses or explanations.
Assignments: Late assignments are only accepted with permissions of the instructor. You'll lose 10% per day late up to a max of 7 days late.
EDP Computer Lab Usage: In order to use the EDP Labs, students must follow all the computer lab policies. A PDF with the rules is available on the landing page of the EDP website.
Honor code: All work submitted in this course must be your own and produced exclusively for this course. The use of sources (ideas, quotations, paraphrases) must be properly acknowledged and documented. See the DU Honor Code for details.
Religious accommodations: DU students are granted excused absences from class if needed for observance of religious holy days but should contact instructors to make alternate arrangements during the first week of class. See DU's religious accommodations policy.
Disabilities: If you qualify for academic accommodations because of a disability or medical issue please submit a Faculty Letter from the Disability Services Program (DSP) by the end of the first week of class.
Students who have disabilities (i.e., physical, medical, mental, emotional and learning) and who want to request accommodations should contact the Disability Services Program (DSP); 303.871.2372;1999 E. Evans Ave.; 4th floor of Ruffatto Hall. Information is also available online at www.du.edu/dsp; see Handbook for Students with Disabilities.
Student Athletes: DU sponsors National Collegiate Athletic Association (NCAA) student-athletes at the undergraduate level in seventeen different sports. Student-Athlete Support Services are in place to assist these students in their academic work. According to their policies:
Student-athletes are responsible for informing their instructors of any class days to be missed due to DU sponsored varsity athletic events in which s/he are participating. Student-athletes are provided with a schedule of travel dates that coincide with class dates and an absence policy to present to instructors. This must be signed by the instructor and is the student-athletes responsibility to return the signed forms to an assigned athletics adviser. In the event that a team reaches post-season play (i.e. Conference or NCAA Tournament), letters will be sent to instructors informing them of additional missed class dates. It is the responsibility of the student-athlete to make arrangements with instructors regarding any missed lectures, assignments, and/or exams.