Prospectus

nl en

Programming

Course
2019-2020

Tags

Elective

Admissions requirements

None – entry level course.
Interest for doing something creative with computers is appreciated.

Description

Programming has been established as common term for “telling computers what to do”, which usually means nothing else than making the power of automation available for your own tasks. This course serves as a starting point in which students develop basic programming skills and obtain a much better understanding of what programming entails.

The ability to program or at least to understand how programming works and what it can do is very important for approaching most if not all global challenges of today, be it climate change, crisis management, tackling health issues, or fighting poverty and discrimination, because programming enables the use of available data and tools to recombine them into useful, specific applications that help people to make better informed decisions.

The course starts with the basics of programming using the programming language Python. Python is relatively simple and concise compared to other programming languages and we will interactively explore it and try to reach a level where you can set up your first little programs, defining your own projects.

Course objectives

After successful completion of this course, students are able to

Knowledge

  • describe basic concepts of programming and demonstrate they are able to think “algorithmically”.

  • give a meaningful answer to the prevalent public question of what an algorithm is.
    are able to imagine a control flow and visualize it.

  • distinguish between different data types and determine when to use them.

  • use conditional statements and loops and know how to create simple functions, and how these can be used to simplify your tasks.

  • describe what a module is and how you can make use of its functions.

Skills

  • write some simple programs in Python and thereby learn the concepts of the Python language, which is currently the most taught beginner language.

  • demonstrate basic understanding of how to approach a programming project, and how to organize it, also in teams or groups make basic estimates of the difficulty level of your project

Timetable

Once available, timetables will be published in the e-Prospectus.

Mode of instruction

A mixture of lecture style presentations with a lot of interactive elements in order to try out new concepts instantly by means of solving small tasks, accompanied with working classes that focus on repeating and applying concepts from the lectures.

Assessment

  • Weekly exercises (alone, 30%), ongoing weeks 1-8,

  • Small programming task (alone, 30%), ongoing weeks 1-8,

  • Programming task group assessment (groups of 2, 40%), weeks 7/8

Blackboard

There will be a Blackboard site available for this course. Students will be enrolled at least one week before the start of classes.

Reading list

There is no “must read” for the course, but we will largely follow Pieter Spronck’s book “The Coder’s Apprentice - Learning Programming with Python 3” (https://www.spronck.net/pythonbook).
If you are interested in the outcome of programming and non-programming skills in the real world, I suggest looking into: “The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win”, Gene Kim, Kevin Behr & George Spafford, IT Revolution Press, Portland, Oregon, 2013 (actually a fascinating book even if you cannot program at all).

Registration

This course is open to LUC students and LUC exchange students. Registration is coordinated by the Education Coordinator. Interested non-LUC students should contact course.administration@luc.leidenuniv.nl.

Remarks

This course it an entry level course in programming. If you are already familiar with programming, even in another language as Java or C#, you will probably be bored. However, if you just played around a bit on your own with a programming language without much success, this course shall be right for you.

It makes sense to bring your laptops to the course, but you do not need to pre-install much stuff, we will discuss that in the first lecture.

Contact

Mike Preuss, m.preuss@liacs.leidenuniv.nl