Programming for Designers
AbstractThe course is an introduction to the basic concepts of computing and programming using a general-purpose language such as Processing. It is intended for a general audience with no prior programming experience, and taught with an emphasis on user interaction and graphics.
Changes may occur
Programming is an exciting, inspiring and powerful way of creative expression for game designers.
To know something about programming is arguably also the only way to use a computer to full extend and to substantially participate in and contribute to the brave new digital world. At the core of this world are algorithms – automatic, dynamic, interactive logic. This is what the amazingly successful computer phenomenon is about; the *digital revolution* is an *algorithmic revolution*.
I believe the most interesting things to program are interactive systems for people to use productively, express themselves and play with each other. Within interactive applications, initially, the computer has been used and it is still used as a tool to model other media, that is, for example, to paint pictures and cut movies. But increasingly, the computer is coming into its own, and people start to question its uses and experiment with it, and interact with it in novel, provocative, and playful ways that were unimaginable before, and which have no precedent.
For participants who have not done any programming before, it may take a few weeks to get into computational thinking, and to understand how programming works, recognize and use the handful of structures, encounter object-based and event-driven programming, and implement a basic multiplayer game – and to see *how programming can significantly benefit their own design practice*. This course offers a potentially disruptive change of perspective, and participants will experience the world of digital media in a different way, and be able to participate and contribute in ways they could not before.
A semester plan is published in the first week of teaching on LearnIT. Roughly, the course covers basic syntax and program structure, object-based programming, event-driven programming, application examples, interactivity and graphics.
Formal prerequisitesThe course is an introduction to the basic concepts of computing and programming using a general-purpose language such as Processing. It is intended for a general audience with no prior programming experience, and taught with an emphasis on user interaction and graphics.
As an introductory course, there are no prerequisites. Except a wild curiosity and the willingness to learn a challenging but rewarding skill!
Intended learning outcomes
After the course, the student should be able to:
- Design and implement simple programs using a modern domain-neutral programming language
- Write documentation of their own code
- Select and integrate existing code and libraries
- Apply a range of basic algorithms
- Use version control systems
Changes may occur
14 weeks of teaching consisting of lectures and exercises The Processing programming language is used to get a first overview of fundamental programming techniques. Teaching time will be divided between lectures, tutored sessions and presentations of students' solutions. All lectures will be complemented by practical programming assignments, some of which will be small and clearly focussed (at the start of the semester), while others will be more open to artistic or playful interpretation (towards the end of it); all will be done individually except the last one which is done in teams. Participants are asked to manage their own time; the exercises are divided into groups, usually including a mix of approaches, requirements and techniques. Participants will go through cycles of learning something and using it for cool stuff; then learning some more, and using that; the cycles get bigger and more challenging during the semester.
Every week there is a lecture; the exercises are introduced and explained. After the lecture everybody can work on the exercises in the lab.
Casey Reas and Ben Fry. Processing: A Programming Handbook for Visual Designers. 2nd ed., 2014
I recommended to get a (hard or digital) copy of the well-known Processing book by Reas, Fry (2014). The course loosly follows it, and I find it well-written and reasonably easy to understand. There are several other Processing books available, e.g. by Greenberg (2007), Shiffman (2008), Noble (2009), and Bohnacker et al. (2012), which I find not as well-suited to our introductory course (but do what works for you).
Student Activity BudgetEstimated distribution of learning activities for the typical student
- Lectures: 15%
- Exercises: 15%
- Assignments: 45%
- Exam with preparation: 25%
Ordinary examExam type:
C: Submission of written work, External (7-point scale)
C11: Submission of written work
For the exam, students are expected to submit written solutions to exercises; the majority of the exercises are to be done individually, the rest in pairs.