IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Programming for Game Designers 
Kursusnavn (engelsk):Programming for Game Designers 
Semester:Forår 2016 
Udbydes under:cand.it., spil (games) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:12 
Forventet antal deltagere:20 
Maks. antal deltagere:30 
Formelle forudsætninger:After the course the student should be able to:

Use the chosen programming language
- Apply this language to simple tasks using good programming techniques
- Discuss fundamental principles of program design
- Design and implement programs
- Read and analyse existing programs
- Analyse and design of a range of basic algorithms
- Create custom-made programming functions
- Solve problems using given tools, steps and strategies, problem analysis, program development, testing and documentation 
Læringsmål:Successful participants will be able to
- Acquire basic competence in the chosen programming language
- Apply this language to simple tasks using good programming techniques
- Demonstrate an understanding of fundamental principles of program design
- Design and implement programs as well as read and understand existing programs
- Demonstrate an understanding of analysis, design and application of a range of basic algorithms
- Write and use custom-made programming functions
- Acquire skills in problem solving using given tools, steps and strategies, problem analysis, program development, testing and documentation 
Fagligt indhold:Programming for Designers 2016 Spring Creating Interactive Systems

We program to create interactive systems. This is the only reason to do it. (There might be one or two other reasons, but for this course, I suggest to focus on interaction.)

Not limit yourself to use what somebody else has done, but to take control and create yourself what nobody has done before! I believe the most interesting things to create are interactive systems. That is, not use the computer as a tool to do what we have been doing already, e.g.
painting pictures or cutting movies, but to interact with it in novel, provocant, and playful ways.
Being able to program is the only way to seriously create such systems, to have full control, to even know what to ask and look for in tools and engines. In short, to be able to use a computer to its full potential means to know something about programming. This is what the amazingly
successful computer phenomenon is about; the digital revolution is an algorithmic revolution, and not about storing data, speed, 3D graphics or communication, but about interaction.

If you have not done any programming before, it will take a few weeks to get into this mode of thinking, understand how computers work, recognize and use the handfull of constructs, move to object-based programming, finally implement a basic multiplayer game. This course offers an
interesting change of perspective, and you will see the world of digital media in a different way.

A semester plan will be published in the first week of teaching. Roughly, we will cover basic syntax and program structure, object-based programming, application examples, interactivity and graphics. 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

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.

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

Every week there is a lecture; the exercises are introduced and explained. After the lecture everybody can work on the exercises in the lab. At the end of each day participants have the opportunity to present something they have done on that day.

There are two rounds of exercises in the course. Round one consists of 36 exercises, four of which are mandatory (see field on Mandatory Activities). The second round of exercises is due in the end of the semester (at ITU's official exam hand-in date - see field on Assessment form & description).

As this is a skill-based technical course, the main criterium for assessing your work is demonstrated understanding of programming concepts (this is e.g. done by skillfully writing code, but also by presenting your solutions and explaining them); further relevant criteria which are clearly connected to that are active participation and constructive criticism in discussions, asking interesting and relevant questions, doing the assigned exercises and handing-in the
material that is asked for on time, managing your time to arrive at good results, being able to talk about your work, support peer learning, and being receptive to new ideas and willing to learn. 

Obligatoriske aktivititer:4 exercises to be handed in in week 13. Participants will get written feedback.

Be aware: The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt. 
Eksamensform og -beskrivelse:C: Skriftlige arbejder uden mundtlig eksamen., (7-scale, external exam)

Hand-in of 3 exercises, which are assessed summatively.  

Litteratur udover forskningsartikler:Abelson, Sussman 1985 Hal Abelson, Gerald J. Sussman. Structure and
Interpretation of Computer Programs
. Cambridge: MIT Press, 1985.
Bohnacker et al. 2012 Hartmut Bohnacker, Benedikt Gross, Julia Laub.
Generative Design: Visualize, Program, and Create with
Processing
. Ed. Claudius Lazzeroni. Transl. Marie Frohling. New
York: Princeton Architectural Press, 2012.
Reas, Fry 2007 Casey Reas, Ben Fry. Processing: A Programming
Handbook for Visual
Designers and Artists
. 2nd ed. Cambridge: MIT Press, 2014.
Greenberg 2007 Ira Greenberg. Processing: Creative Coding and
Computational Art
. Berkeley: Apress, 2007.
Shiffman 2008 Daniel Shiffman. Learning Processing: A Beginner's
Guide to Programming Images, Animation, and Interaction
. Burlington:
Morgan Kaufmann, 2008.
Noble 2009 Joshua Noble. Programming Interactivity: A Designer's
Guide to Processing, Arduino, and openFrameworks
. Cambridge:
O'Reilly, 2009.