Studiegids

nl en

Programmeermethoden NA

Vak
2020-2021

Admission Requirements

LET OP: de hoorcolleges worden in het Engels gegeven

Description

The course Programming Methods NA introduces Python as modern and easy to learn programming language. Next to programming, we also pay attention to the preparation of algorithms, such as sorting algorithms, and to principles from software engineering. In the last part of the lecture series, we examine the use of Python in a scientific context: performing numerical calculations, data processing and analysis, and creating high-quality plots. The course aims to provide every student with the basic principles and concepts of programming, including a "working knowledge" of Python. Students who have successfully completed this course will be able to use their own computer programs (Python or another language) in their further study career during classes or research. The overall goals of the course are thus:

  • provide every student with basic programming capabilities in Python

  • lead students to experience team work programming

  • enable students to continue and improve after the course

Course objectives

Concretely, this course enables students to:

  • prepare simple programs in an imperative programming language (Python)

  • deal with UNIX systems and Python development environments

  • explain and reproduce a number of simple algorithms (including sorting algorithms)

  • translate problems and your own solutions into Python code

  • prepare programs in a well-organized and structured way

  • work with data structures such as lists, dictionaries and arrays

  • describe the basic principles of object oriented programming and write a class yourself

  • use Python to perform numerical calculations with the help of NumPy

  • use Python for reading and writing files

  • use Python to create neat plots based on calculated and/or experimentally determined results, using NumPy and matplotlib

  • use extensions (modules) developed by others

  • do simple scientific experimentation using your own programs.

Timetable

Schedule
For detailed information go to Timetable in Brightspace

Mode of instruction

Lectures 2 hours, lab sessions 2 hours. Self study/group work, especially on the assignments will be necessary. It is not possible to perform the assignments only in the lab sessions where we also partly look at other practical problems.

As the course is for 1st semester bachelor students with very different programming skills (from professional to zero), we follow a slightly unorthodox course layout, in this chronological order:

a) intro lectures that deal with programming itself, and explain most basic programming concepts in Python
b) online entry exam (does not count for the final course grade), this is to get an overview of students' current programming skills
c) students not passing b) have to do a mandatory online course part that helps them to train Python concepts in parallel to the lecture, who passes b) can skip that
d) lecture continues
e) in parallel to the lecture we start the homework assignment phase, relatively simple online tests (individual)
f) lecture continues, programming assignments start
g) in the last weeks, we focus on finishing the programming assignments, lecture only as needed

Assessment method

Around 4 homework assignments (individual), together 20% of the grade
2 smaller group programming assignments (20% of the grade each)
1 larger group programming assignment (40% of the grade)

Each of these components must be completed with a grade of at least 5.5 in order to pass.
Please note that programming submissions are regularly checked for plagiarism.

Reading list

There are a lot of online courses and books, any of these can be helpful. I personally like this one (it is also used here and there in the lecture):

http://www.spronck.net/pythonbook/

Brightspace

Instructions and course material can be found on Brightspace. Registration for Brightspace occurs automatically when students enroll in uSis via uSis by registration for a class activity using a class number

Contact

Docent Mike Preuss
Onderwijscoördinator Informatica, Riet Derogee

Remarks