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