IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Programming for Game Designers 
Kursusnavn (engelsk):Programming for Game Designers 
Semester:Forår 2015 
Udbydes under:cand.it., spil (games) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:12 
Forventet antal deltagere:20 
Maks. antal deltagere:30 
Formelle forudsætninger:The 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 graphics and user interaction.
As an introductory course, there are no prerequisites. Except a wild curiosity and the willingness to learn a challenging but rewarding skill! Please come up with three things you think computers are good at for our first meeting. 
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 2015 Spring Creating Interactive Systems

Motivation
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 extend 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 (2007). 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 are asked to present something they have done on that day. 

Obligatoriske aktivititer:Content

Workload

Activities
Assessment is based on course work assignment and examination. Many practical programming exercises accompany the lectures of the course, most of them ungraded, and a few of them graded. All graded exercises must be successfully done to pass the course and are assessed summatively. However, the ungraded exercises are the road to the graded ones, and it might be hard to get on with the graded ones without having done the ungraded ones.
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.

Feedback

What if the student fails to pass a mandatory activity:

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:X. experimental examination form (7-scale; external exam)

-  

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. Cambridge: MIT Press, 2007.
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.