Media Technology MSc

Introduction to Programming (MSc)

Objective See Course Objectives in below Description
Teacher(s) Marcello A. Gómez Maureira
Course Level 400
ECTS Credits 4
Number of Classes 10
Examination Assignments and a written exam

Learning a programming language is surprisingly similar to learning a new spoken language. At first, we become familiar with the vocabulary and the rules that provide structure. With practice we gain the ability to communicate complex thoughts and add nuance to our conversations.
However, where humans can deal with ambiguity and imperfect structure, computers require us to be precise, consistent and systematic at all times. This can be difficult to get used to and can make programming seem like an insurmountable challenge.
In the "Introduction to Programming" course we overcome this challenge through reviewing foundational principles of programming and applied practice. As part of the course, you will create programs on a weekly basis, based on a list of requirements. Some of the programs are meant to carry out work for you, while others are playful or aesthetically interesting. Whatever the functionality, you are asked to find a way to create it. Programming in this course will be discussed through a text-based language (Java via Processing) as well as a visual programming language (Pure Data). Rather than make you an expert in a specific programming language, the aim of the course is making you proficient in understanding and creating code in any language. This will allow you to choose the best tool (i.e. programming language) depending on what it is you want to achieve. In addition to getting acquainted with programming, you will also learn to version-control your code with GIT.
All teaching material used in this course is freely available. You will need access to a computer with Internet access at home (Windows, Mac or Linux), and bring your own laptop to each class. Note that the course is part of the Media Technology MSc curriculum. If you are a student of the programme, the content of this course will be important for subsequent courses. 
If you are unsure if this course is right for you, write the lecturer with your concerns. If you require specific assistance of any kind in class or after, be sure to let the lecturer know as soon as possible, either before the start of the course, or very soon thereafter.

Course Objectives

  • Create programs that can act as tools or as artefacts for entertainment (e.g. games, interactive artworks)
  • Gain the ability to understand and modify programs written in a range of modern programming languages
  • Gain the ability to teach the fundamentals of programming to others
  • Deconstruct the intended functionality of a program into smaller tasks
  • Find several ways to solve a task and make informed decisions when choosing specific solutions
  • Work with version control systems