Admission Requirements
Bachelor diploma (any). Enthusiastic about creating programs / games / user experiences. External / exchange students are welcome! A personal laptop is highly encouraged.
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 these 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 (e.g. Java or Python) as well as a visual programming language (e.g. 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.
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 preferably 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 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
Time Table
The dates are included in the Media Technology calendar
Mode of Instruction
Lectures, lab and self study, and group work.
Assessment Method and Grading
Weekly programming assignments, final project, exam, and class participation. A more in-depth description of the individual assignments will be provided at the start of the course.
Blackboard
Not applicable
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 reading material will be provided by the lecturer during the course.
Registration
Via program coordinator Media Technology: Nanda Milbreta: mediatechnology@leiden.edu, 071-527 6994
Signing up for classes and exams in uSis
You have to sign up for classes and examinations (including re-exams) in uSis. Check this link to find the information and activity codes.
How to sign up for classes and exams
Contact Information
Lecturer: Marcello A. Gómez Maureira (m.a.gomez.maureira@liacs.leidenuniv.nl)
Course Coordinator: Nanda Milbreta (mediatechnology@leiden.edu)
Important Links
Curriculum link
http://mediatechnology.leiden.edu/programme/curriculum/introduction-to-programming/