Kies de Nederlandse taal
Course module: 800829-B-6
Advanced Programming for CSAI
Course info
Course module800829-B-6
Credits (ECTS)6
CategoryBA (Bachelor)
Course typeCourse
Language of instructionEnglish
Offered byTilburg University; Tilburg School of Humanities and Digital Sciences; TSH: Department Cognitive Science and AI; TSH: Department Cognitive Science and AI;
Is part of
B Communication and Information Sciences
B Communication and Information Sciences (Spc.Cog.Sc & AI)
B Cognitive Science and Artificial Intelligence
dr. M. Atzmüller
Other course modules lecturer
dr. M. Postma
Other course modules lecturer
Academic year2019
Starting block
SM 2
Course mode
Registration openfrom 15/01/2020 up to and including 21/08/2020
Advanced computational techniques are necessary for developing complex (large) programs, according to proven design principles and programming best practices. Such techniques are also at the basis of many of the courses taught in the CSAI and Data Science programs. The course "Advanced Programming" builds on the computational knowledge of the courses "Data Structures and Algorithms" and "Basic Programming" in two ways: (1) it teaches the students advanced concepts of the general programming language Python, and (2) it provides the necessary skills to use advanced programming concepts, algorithms and data structures utilizing standard and third-party library tools.

After the course, the student will be able to:
  • Construct programs in Python using advanced object oriented concepts.
  • Apply functional programming principles for constructing modular programs.
  • Illustrate and employ effective, performant and robust programming and testing.
  • Analyse and arrange advanced data structures such as sparse matrices, graphs and networks.
  • Assess and compare advanced programming concepts like parallel processing to solve particular problems.
There will be two take-home assignments. These take-home assignments are mandatory (the dates will be announced at the start of the course via Blackboard). The assignments will be graded. The average of the assignment grades will be 40% of the final grade for the course. The other 60% will be a computer exam that is given in the exam week at the end of the course.
The course will be taught with one lecture and one practical session per week. The lecture will be used to teach the students advanced concepts of the Python language and advanced programming techniques. The practical session is used to allow the students to practice with the materials taught. However, the students are also expected to work on exercises at other times. Programming can only be learned by practicing a lot. Many exercises will be made available to the students for this purpose.

The topics covered will include:
* Advanced object orientation
* Functional programming in Python
* Iterators & Generators
* Program design, style & Design Patterns
* Debugging, testing & robust programming
* Advanced data processing & data structures
* Plotting & visualization

Compulsory Reading
Nothing is compulsory, programming is learned by doing, not by reading. However, many materials will be made available via Blackboard at the start of the course.

Recommended Reading
Most books on advanced Python programming are helpful. One freely available book, for example, is "Think Python" by Allen Downey, for which especially the later chapters are relevant.

Basic Programming, Data Structures and Algorithms (Python)

“Due to limited capacity, this course is currently not open for external students.”​
Course available for exchange students
Conditions of admission apply
Contact person
dr. M. Atzmüller
Timetable information
Advanced Programming for CSAI
Required materials
Recommended materials
Take Home (60%)

2 Assignments (40%)

Final Grade

Kies de Nederlandse taal