From Lupyan Lab
Jump to: navigation, search

Welcome to Psych 711 - Programming and Automation Techniques. Our mission is to teach you how to stop relying on point-and-click experiment packages and program your own experiments, script common tasks, organize your data, and in the process, become a better scientist. In Fall, 2011 (the first time we're offering this class!) we will be meeting on Wednesdays 9:30-12 in Psych 634. The class is taught by Prof. Gary Lupyan (lab page), (lupyan _at_ wisc dot edu)).

Why Program?

Simply put, knowing how to program and how to automate common tasks will make your life (or at least your academic life) better. Much better. A programmatic approach will allow you to create experiments in hours that would take days or weeks of fiddling in point-and-click packages like Eprime. Programming your experiments will give you complete control overy every aspect of the procedure. Never again will you need to try to figure out how to make your experiment work in some package. A globally programmatic approach to behavioral research will also mean that you will never again you have to shuffle lists in Excel to create the proper counterbalancing. You will never have to copy and paste data files, manually code objective responses. Changing the size of 1000 images or measuring the onset latency of a voice response becomes as simple as executing a little program, which at the end of the class, you will be able to write from scratch.

At the end of the class you'll be comfortable with creating full-blown experiments using Python and Psychopy. You will learn how to design experiments in a programmatic (no pointing, no clicking) and be amazed with your increase in efficiency. In addition to coding experients, by the end of the class you'll be on your way to doing all sorts of fancy schmancy things in Python and command-line tools (e.g., data massaging of all sorts, corpus linguistics, and auto image and audio processing). The world will be your oyster.

Class philosophy

Programming, as taught by computer scientists, tends to emphasize theory (pointers, O-notation) and abstract problem solving (sort algorithms, recursion, etc.). Although this is probably the best way to gain a deep understanding of computer science, we are betting that it is not the best way to teach applied programming skills in a short amount of time to non computer-scientists. In this class we'll be taking a more applied approach. Every exercise we do will introduce students to a skill directly relevant to solving problems commonly encountered in behavioral research. We'll learn some theory along the way, but the focus will be on practical how-to solutions. If you've never programmed before, you're in for an initially steep learning curve, but it will flatten out quickly, and your mind will be blown. If you have programmed before, you will appreciate the simplicity and elegance of Python compared to the messiness of Matlab, the utter chaos of R, and the high overhead of more traditional languages like C and Java.

What now?

First, make sure you've signed up for the class mailing list ( and joined the shared dropbox folder. Name the folder Psych711_YourFirstName_YourLastname (the folder should already have your name; just add "Psych711_" to it if you need to). Then, follow the download and install instructions.

For those of you using this site as a tutorial: you can simply copy/paste the code from the templates in the exercises; I will transfer over downloadable template files shortly). If you need a file used by exercises and not available for download, or a missing solution, contact me directly (lupyan _at_ wisc dot edu).

Personal tools
Download and Install
Programming Exercises
Quick reference