Python Book



At Tilburg University, I teach the course "Computer Games" and in the CSAI master. In the CSAI bachelor, I teach the course "Data Structures and Algorithms". Im 2022, I coordinated the course "Programming & Algorithmic Thinking". I developed two extensive sets of notebooks for teaching Python, namely "Data Processing with Python" and "Computational Thinking with Python"; these notebooks are used in multiple courses in the CSAI and Data Science programs. Formerly, I taught the courses "Games and Social Simulations", "Data Processing" and "Data Processing Advanced" in the HAIT/Data Science master; and "Understanding Intelligence" and "Games for Artificial Intelligence" (together with Sander Bakkes) in the CIS bachelor. I also contributed to the courses "Business Information Technology", "Digital Media Research Tools", and "Inleiding HAIT" in the CIS bachelor. I supervise many bachelor, master, and PhD students.

Courses at the Open University

For the Open University, I taught the courses "Kunstmatige Intelligentie 1", "Kunstmatige Intelligentie 2", "Onderzoeksvaardigheden Kunstmatige Intelligentie", and "Artificial Intelligence for Games". I was also involved in bachelor and master thesis projects.

Other Courses

In 2009, I taught a five-day Summer course in "Artificial Intelligence for Games" for about 50 third and fourth-year students at Helsinki University. I also teach a two-day course on the same subject area for Dutch PhD students of the SIKS research school, and a similar course for PhD students of Tilburg University on request. I occasionally contribute to courses at other universities, such as Utrecht University and the University of Amsterdam.

Past Courses at Maastricht University

At Maastricht University, I taught the courses "Logic", "Object-Oriented Modeling", and "Games & AI" of the Knowledge Engineering program. I was also involved in several student projects, and contributed to the Summer course in Data Mining.


I guide several Bachelor, Master, and PhD students in their thesis projects.

  • Bachelors at Tilburg University:
    • New students in 2023: Svetoslav Ivanov, Vera Luksen, Rik Mol, Daniël Schot, Tim Tomljanović, Carthago Vlug.
    • Matthijs Leenheer, Facial analysis in game playing (finished).
    • Wynand Sijben, Dynamically Scripted Robots (finished).
    • Marjolein de Vries, Morality and Cooperation in Agent Societies (finished).
    • Jeffrey van der Linden, Increasing Security Awareness with Serious Games (finished).
    • Sem Meereboer, Player Profiling in DOTA2 (finished).
    • Wineke Sloos, Morality in Agent Societies (finished).
    • Rick Smetsers, Neural Networks in Physical Lego Bots (finished).
    • Matthijs de Regt, Occupational N-grams for Player Imitation (finished).
    • Iris Balemans, Psychological Player Profiling in Fallout 3 (using a Fallout 3 mod (FOSE required); finished).
    • Linda Stege, Serious Games in Education (finished).
    • Tetske Avontuur, Player Modelling in Wargus (finished).
    • Sonny Schreurs, Psychological Profiling of Game Players (finished).
  • Masters at Tilburg University:
    • Bart Kuipers, Predicting hatchability in commercial broiler breeder flocks using Deep Learning (finished).
    • Carlo Mathijssen, Using machine learning to predict a successful run in Slay the Spire.
    • Lieke Buuron, Predicting Conversion and Click Through Rates Based on Search Queries (finished).
    • Luuk Verheij, Tension Prediction in Hearthstone (finished).
    • Sonny van Veghel, Identifying Success Factors in Online Learning by Subgroup Discovery (finished).
    • Robin Bredo, Where not to park your bike (finished).
    • Rick van Hamond, Peak Emotions in First-Person Shooter games (finished)
    • Stefan Marshall, Death prediction in CSGO (finished).
    • Jesse van de Mond, Predicting user responses to push notifications (finished).
    • Robbert Spaargaren, Early Game Win Prediction in League of Legends (finished).
    • Bob Tuynman, Emotional Agents in Hide-and-seek games.
    • Dimitris Vatsakis, Dixit AI (finished).
    • Thomas van Vliet, Predicting the Life Satisfaction of online gamers with neural networks (finished).
    • Tyra Monsch, Using tweets to predict impact on the stock market (finished).
    • Harm van Driel, Rumble in the Jungle (finished).
    • Jean-Paul Dingemanse, Road Safety improvement using on-board diagnostics (finished).
    • Thijs Janssen, Social media and mental health (finished).
    • Niels van de Laar, Public sentiment and the coronavirus pandemic (finished).
    • Agner Piton, Peak-end effects in Hearthstone (finished).
    • Alex Apostolov, Teaching computational thinking using Augmented Reality (finished).
    • Teunis van der Hofstad, Explainable AI for image quality assessment (finished).
    • Aron Varadi, Simulation to real world knowledge transfer (finished).
    • Itoro Unang, AI for Scrabble (finished).
    • Mathijs Leenheer, Determining player frustration through Facial Expression Analysis (finished).
    • Marco Wedemeyer, Customer churn (finished).
    • Letizia Minarini, Difference in playstyles in Tournaments and Solo Queues (finished).
    • Joris van Abeelen, isMCTS for Take-5 (finished).
    • Angelo Brouwers, Winner prediction in MOBA (finished).
    • Justin Boon, A hybrid recommendation system for Steam (finished).
    • Sander van Riel, Ranking prediction in PUBG (finished).
    • Robin van Gerwen, Relation between motivation and game choice in board games (finished).
    • Menno van Dijk, The liquidity premium in virtual financial markets (finished).
    • Anouk Breugelmans, Culture and game choice in Steam (finished).
    • Bram Ooms, Stress and serious games (finished).
    • Marije Merckens, Criminal profiling (finished).
    • Johan Björkroth, CRM in online social games (finished).
    • Wesley van Westenbrugge, Analyzing game preference differences between continents (finished).
    • Stijn Geraats, Match outcome in battle royale games (finished).
    • Gerlof Bremmer, Cryptocurrency price development (finished).
    • Laura Sulman, Positivity in online game chats (finished).
    • Jeroen van Buren, Human decision making in game theory (finished).
    • Lars Strijbos, Culture and play style in Counterstrike and Dota2 (finished).
    • Prab Laoharojanaphan, a game for language learning (finished).
    • Arjen Traas, Toxicity in games (finished).
    • Max Schöttler, Temporal dependencies in recommender systems (finished).
    • Bram Notten, Steam recommender systems (finished).
    • Marco Unfer, Automatically extracting information from news media (finished).
    • Johannes Barkhau, Pandora Intelligence -- discovering trends (finished).
    • Denitsa Pesheva, Pandora Intelligence -- dealing with missing data (finished).
    • Christa Janse, Digital footprint of game players (finished).
    • Marjolein de Vries, Mining the Relationship between Culture and Play Style (finished).
    • Mark Verschoor, Eating seeds as a pastime activity (on toxicity in gameplay behavior; finished)
    • Irwan Wiradinata, Achievement-driven game players (finished).
    • Miroslava Trnková, Social characteristics of game players (finished).
    • Hanneke Kersjes, Emotional and personality models of game agents (finished).
    • Stefan Methorst, Adapting a game to facial expressions of players (finished).
    • Dhiratara Putri, The relationship between player quality and team quality in games (finished).
    • Anne Sars, Recognizing Neuroticism in Gameplay Behavior (finished).
    • Joël Grevelink, Transreality in Cybersecurity Games (finished).
    • Cindy van Miltenburg, Increasing Awareness with a Serious Game (finished).
    • Maxime von Bannisseht, Pandora II and Text Mining (finished).
    • Rico van Lent, Gamification on Online Platforms (finished).
    • Gerke van den Akker, The Effect of In-Game Advertising on Player Behavior (finished).
    • Mateusz Bialas, Cultural Effects on Play Style (finished).
    • Lucas Vergeest, Classifying Tweets with Neural Networks (finished).
    • Hugo van Wissen, Predicting Decisions from Facial Observations (finished).
    • Rein van Strien, Predicting Decisions from Facial Observations (finished).
    • Khaoula Ouerfelli, Transmedia Storytelling Effects (finished).
    • Karen Ebert, Transmedia Storytelling Effects (finished).
    • Vincent Lichtenberg, Fuzzy Logic for Game Behavior (finished).
    • Sophie Bressers, Pandora Model (finished).
    • Linda Stege, Pandora Prediction Capabilities (finished).
    • Iris Balemans, The Taxation Game (finished).
    • Tetske Avontuur, Determining Player Skill in StarCraft II (finished, won the Leo Coolen award for her thesis).
    • Jeff Schram, Culturally Aware BDI Agents (finished).
    • Sonny Schreurs, Tuning a Game to a Player's Profile (finished).
    • J.J. Vens, Simulation of Emergence in Social Networks (finished).
    • Alexandra Guzga, Player Profiling for Entertainment (finished).
    • Evi Joosten, Influencing Emotions in Games (using her Neverwinter Nights module; finished).
    • Freek den Teuling, Preference-based Player Modelling (finished).
  • Bachelors at Open University:
    • Johan Eikelboom, Chatbots (finished).
    • Kees van Winzum, Chatbots (finished).
    • Erik Bloemers, Chatbots (finished).
    • Gery Wauters, Crossings (finished).
    • Martine Vanderveken, Crossings (finished).
  • Masters at Open University:
    • Reinier Beeckman, Player Modeling for Poker.
    • Floris de Vooys, Cross-Entropy Learning in Credit Assessment (finished).
    • Patrik Rombouts, Generation of Musical Motives (finished).
    • José Bronswijk, Flexible Scheduling (finished).
    • Ivo Klinkert, Satellite Tracking (finished).
    • Rosanne Janssen, Classification of Treatments (finished).
  • Bachelors at Maastricht University:
    • Benjamin Schnieders, Automatic Scenario Creation (finished).
    • Dean Hawkins, Adaptive Team Composition in RTS Games (finished).
    • Matthijs Rohs, Opponent modeling in Civilization IV (finished).
    • Antonie Valkenberg, Opponent modeling in World of Warcraft (finished).
    • Irmin Auwerda, Online learning with dynamic scripting by a real-time strategy AI (finished).
    • Kevin Moesker, Citadels (finished).
    • Philip Kerbush, Learning unit values in Wargus (finished).
  • Masters at Maastricht University:
    • Bart Mehlkop, Adapting to Opponent Models in RTS Games (finished).
    • Marcel van der Heijden, Dynamic Formations in RTS Games (finished).
    • Maurice Bergsma, Adaptive Spatial Reasoning for Turn-Based Strategy Games (finished).
    • Richard Arnoldussen, Adaptive teams in Neverwinter Nights (finished).
    • Timor Timuri, Automatic rule ordering for dynamic scripting (finished).
    • Maurice Urlings, Modelling task behaviour using hierarchical reinforcement learning (finished).
    • Rob Collaris, an adaptive automatic pilot for RPGs (finished).
    • Berend Berendsen, Evolutionary ethics in agent societies (finished).
    • Marc Ponsen, Evolutionary learning of Wargus game AI (finished).
    • Yvo Keuter, Neural networks in racing games (finished).
    • Sander Bakkes, team-behaviour learning in Quake III (finished).
    • Ramon Frissen, A sensorimotor model of mental rotation (finished).
  • PhD students: