Skip to main content
Practical programming for Cognitive Scientists
Graduate Program (& Advanced Certificate) Status
Course Description

The goal of this class is to help you implement experiments using state-of-the-art programming tools like PsychoPy, MatLab and the Psychophysics Toolbox, and JSPsych. Rather than just teaching you how to program experiments in each of these systems, the aim is to give you a sufficient foundation in the principles and concepts of programming, and practice using those skills, to the point where you know how to learn anything the course does not teach you.

Learning Outcomes

By the end of the course, you should be able to

• Program an experiment in PsychoPy, MatLab, and/or JSPsych.

• Understand how programming concepts are implemented in different programming languages, and how to find out how something is implemented in an unfamiliar language.

• Interpret and resolve error messages and unexpected behavior.


Most weeks will have a homework assignment that we will start in class. Homework is due at midnight the night before the following class. Google and external resources are allowed and encouraged. Collaborative work is permitted, but each person is expected to turn in their own assignments. All assignments should be uploaded through the Moodle interface at . Grading is simple: If it works, you pass. We’ll also go over the homework in class, and, you can also turn in a corrected file by midnight that day for credit (but you should still turn in an initial version by midnight).

Final project: The final project in the class will involve writing a detailed experimental procedure for an experiment that you want to build using programming tools. You can use an actual experiment you plan to run or try to replicate an existing design. You will turn in the written procedure and the code. Evaluation will be based on the detail of the written procedure and whether the code successfully implements it.

Course Level
Academic Year
US Credits
ECTS Credits
Course Code