Introduction to Programming

Vakbeschrijving Introduction to Programming
Collegejaar: 2018-2019
Studiegidsnummer: 4383INTP4
Docent(en):
  • Marcello Gomez Maureira
Voertaal: Engels
Blackboard: Ja
EC: 4
Niveau: 400
Periode: Semester 1, Blok I, II
Onderwijstijd in uren
(excl. zelfstudie):
75:00 uur
  • Wel Keuzevak
  • Geen Contractonderwijs
  • Wel Exchange
  • Wel Study Abroad
  • Geen Avondonderwijs
  • Geen A-la-Carte en Aanschuifonderwijs
  • Geen Honours Class

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/

Talen