This page is constantly updated based on the feedback received by students and teachers. Do not hesitate to get in touch if you have a suggestion!

Programming Fundamentals (with JavaScript!)

Target: Social science students, beginners and absolute beginners in computer programming.
Last Taught: University of Luzern Block Course Spring 2020

This course teaches the basics of computer programming with the JavaScript language. Latest slides and exercises are available here.

Design and Implementation of Online Behavioral Experiments

Target: Social science students, beginners and absolute beginners in computer programming.
Last Taught: Mannheim University Fall Semester 2019

In this applied course, students will learn the fundamentals of experimental design, will review landmark lab and experiments, and will design and implement a behavioral experiment of their choice.

To do so, they will first learn how to master the JavaScript language, to manipulate the DOM tree, and to style HTML pages with CSS rules. Then, they will learn the nodeGame framework for implementing and running online experiments, including: defining treatments, game sequences, client types, widgets, surveys, interactive games, bots, etc.

Do it yourself at your own pace, or teach it your class using the slides in .ppt format.

Lecture 1. Introduction: From Lab to Online Experiments
A quick tour of the pillars of experimental design, with a focus on the challenges and opportunities of online experimentation.
Slides: pdf, ppt
Lecture 2. JavaScript Introduction
A fun intro into JavaScript: the browser's console and primitive types.
Slides: pdf, ppt
Lecture 3. More JavaScript
Getting serious about JavaScript: manipulating the HTML DOM and understanding CSS.
Slides: pdf ppt
Lecture 4. Advanced JavaScript
Putting the pieces together: a conclusive exercise.
Slides pdf, ppt
Lecture 5. The Puzzle of Cooperation
An overview on experimental and behavioral research on cooperation.
Slides pdf, ppt,
Lecture 6. Getting Started with nodeGame
Getting to know nodeGame: using the terminal, installation, and the game folder.
Slides pdf, ppt
Lecture 7. More nodeGame
The big picture: game stages, treatments, client types, and widgets.
Slides pdf, ppt
Lecture 8. nodeGame Intermediate
Getting your hands dirty: implementing the game sequence, creating a survey, and writing a bot.
Slides pdf, ppt
Lecture 9. nodeGame Advanced
Mastering nodeGame: interactions between players, timueps, matching players, and the memory database.
Slides: pdf, ppt
GitHub: My Experiment
Lecture 10. Going Live
A few last advice before sailing off: requirements, authorization, and other production settings.
Slides: pdf, ppt

Configure and get started with the ATOM editor.
Slides: pdf, ppt
JavaScript Extra Concepts: npm, closures, debugging, prototype, inheritance.
Slides: pdf, ppt
Project Evaluation Criteria.
Slides: pdf, ppt