Admission Requirements
Bachelor degree (completed).
Further requirements: Enthusiastic about creating programs, games and/or user experiences. All lectures involve the use of a personal laptop (Windows, Mac, or Linux).
Description
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
Time Table
The dates are included in the Media Technology calendar
Mode of Instruction
Lectures, practice lab, self study and group work
Course Load
Note that course load are estimates based on acquiring a sufficient grade. Some will require more time to put the lecture content into practice, while others might require only a fraction of the time.
Assessment Method
Weekly programming assignments, weekly code tests, final project, and final exam.
Assessment and grading method (in percentages):
written examination with short questions (weekly) – 15%
written examination with short questions (final) – 35%
programming assignments (weekly) – 15%
programming assignment (final) – 35%
The final mark is determined by the weighted average. Note that both the final exam (35%) and the final programming assignment (35%) need to be passed with a grade of 5.5 or higher. A low mark can thus not be compensated by a high mark of another assessment method.
Final assessment method can be re-taken once. Weekly assessments cannot be re-taken.
Blackboard
Reading List
The Coding Train: Introduction (YouTube Playlist)
http://www.youtube.com/watch?v=2VLaIr5Ckbs&list=PLRqwX-V7Uu6ZYJC7L-r6rX6utt6wwJCyi
The Coding Train: Variables (YouTube Playlist)
http://www.youtube.com/watch?v=B-ycSR3ntik&list=PLRqwX-V7Uu6aFNOgoIMSbSYOkKNTo89uf
The Nature of Code by Daniel Shiffman
http://natureofcode.com/book/introduction/
Note that further study material will be provided by the lecturer during the course.
Registration
You have to sign up for courses and exams (including retakes) in uSis.
Please also register for the course in [Blackboard].
Due to limited capacity, non-Media Technology students (external and exchange) can only register after consultation with and approval of the programme coordinator/study advisor (mailto:mediatechnology@leiden.edu).
Contact
Barbara Visscher-van Grinsven, programme coordinator/study advisor for the Media Technology MSc programme (mailto:mediatechnology@leiden.edu).
Remarks
Curriculum link