Skip to content

Teaching


In my teaching philosophy, I believe in moving ahead from traditional, teacher-centered methods towards a more dynamic and practical approach. Rather than simply lecturing, I advocate for a hybrid learning model where students engage actively in exercises and applications besides the theory. By incorporating hands-on experiences, such as programming tutorials, students not only absorb theoretical knowledge but also immediately apply it in real-world scenarios. This approach fosters a deeper understanding of concepts and enhances problem-solving skills.

Courses

Basic Programming in Python


My *Basic Programming in Python* course is tailored for cognitive science students with limited or no prior programming experience. I aim to introduce fundamental coding principles through the programming language Python. Students are encouraged to actively apply the learned material in progressing coding tasks. Through hands-on exercises and projects, they are led step-by-step into the world of coding and scientific computing, gradually building their skills while exploring different applications of programming. By the end of the course, students leverage their new programming skills to construct their own cognitive model of human decision-making. This involves integrating the hypothesis of noisy evidence-accumulation through a drift-diffusion model. Course material can be found here

Optimizing Experimental Design


In the *Optimizing Experiment Design* course, students delve into different design strategies of behavioral experiments. Through comprehensive instruction, they gain proficiency in creating experiments that are informative and data-efficient. The course material is directly applied in topics of cognitive science research, by tackling experiment design challenges and validating hypotheses through different experiment design approaches. This course navigates students through topics from baseline experimentation techniques like factorial experimental design and different random sampling strategies to active learning methodologies like uncertainty based design and Bayesian experimental design. During all coding challenges the students leverage their Python programming skills to implement and refine experimental designs with the introduced approaches. In the end of the course, students are collaborating in groups over a certain period of time to address a complex problem set, applying and comparing the presented experimental design principles showcasing the respective differences over a range of problem sets. Course material can be found here