EDPX 2100 Coding Syllabus
This course provides the fundamental concepts of digital interactive software, including the study of how the computer processes information and can be leveraged to create relationships with and between people. Students learn programming fundamentals in ways that are applicable across all types of programming. The basic ideas of Human Computer Interaction are introduced and put into practice.
Objectives
By the end of this course students will be able to:
-
Design & implement a creative work utilizing the Processing coding environment.
-
Analyze potential projects and build user-conscious solutions with clear goals & outcomes.
-
Identify & utilize effective structure, information design, and navigation for interactive projects.
-
Create compelling interactions and interfaces that respond to the needs of users.
-
Transform & manipulate media using programming for a variety of purposes.
-
Solve problems and develop solutions to programming tasks.
-
Explain the basic areas of creative coding, including generative art, data visualizations, and games.
Disclaimer
Learning to program is learning to think like a computer: logically & sequentially. This process may be intuitive to some and hard to grasp at first for others. Simply put: this will take time. You will not be able to successfully complete the course without putting the time and practice into programming outside of class. Approach your assignments with the idea of play and interest in trying new things. It may not be easy, but it won't be hard either. Think about it this way: "would you wait until a week before a marathon to start training?"
Learning via example code is an extremely useful tool. However, you will not get very far by simply copying & pasting someone else's code and changing a few things without understanding how it works. Hack, experiment, & play with examples but you will learn best through the trial and error of writing things from scratch.
Structure
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 defining a set of simple rules which are then used to create 3 separate, generative art programs. Project 2 is to create a more advanced interactive visualization and/or game. Details can be found on the individual project pages:
Expectations
Deliverables: You are expected to complete 2 major projects and 4-5 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 required to read chapters from the textbook 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
The required text for the course is:
Make: Getting Started with Processing (Second Edition), Casey Reas and Ben Fry, O'Reilly Media, 2015. (amazon) (o'reilly)
Additional 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:
Nature of Code, Daniel Shiffman, 2012. (natureofcode.com)
See a comprehensive list on Processing.org
Stuff You Need For Class
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.
Grading
- 25% Project 1 (prototype 5%)
- 35% Project 2 (concept 5%)
- 30% Exercises (in-class & homework)
- 10% Attendance, participation, & critiques
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:
- 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.
Policies
Attendance: Three or more unexcused absences result in the drop of a letter grade. Being late three times counts as an unexcused absence. An unexcused absence from any critique or portion of a critique will constitute the drop of a letter grade.
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: You are required and encouraged to engage in class discussions & critiques. I recognize some students may be shy or arrive at interesting ideas after class, in that case feel free to contact me and we can arrange time for a one-on-one discussion.
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.
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 to me 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.