March 11, 2021

807 words 4 mins read



Course materials for PSYC 132: Introduction to Programming for Psychological Scientists

repo name ContextLab/cs-for-psych
repo link
language Jupyter Notebook
size (curr.) 19621 kB
stars (curr.) 47
created 2019-03-07
license MIT License


Introduction to Programming for Psychological Scientists

This repository contains course materials for the Dartmouth Course Introduction to Programming for Psychological Scientists (PSYC 132). The syllabus may be found here and a hyperlinked outline of all course materials may be found here. Feel free to follow along with the course materials (whether you are officially enrolled in the course or just visiting!), submit comments and suggestions, etc. If you are a Dartmouth student currently enrolled in this course, please read the Student instructions below to get set up. A list of tutorials and some ideas for tracking down some nice datasets may be found at the bottom of this document.

A note about this Open Course

This course is taught as an Open Course, meaning that the course is designed from the ground up to be shareable and freely accessible to anyone. All code for this course is written in Python and most of the material is organized in Jupyter notebooks.

Feel free to follow along with this course, do the assignments, post questions and/or issues to this repository or Gitter, suggest changes, etc. However, I won’t formally evaluate your submitted work unless you are a Dartmouth student currently enrolled in PSYC 132.

If you are a course instructor teaching overlapping material, feel free to borrow any materials used in this course! If you directly copy (or “draw heavy inspiration from”) the materials, I would appreciate a citation (e.g., a pointer to this repository). I’d also love to hear from you about how you’re using this resource!

This course is a continually evolving work in progress. I plan to update the material to keep the syllabus fresh and relevant. By the same token, although my goal is 100% accuracy and currency, it’s unlikely that I’ll achieve that goal. You should participate with the understanding that this material will likely have occasional mistakes, ommissions, errors, etc. Given this fact, one way to approach the course is to maintain an open yet critical view of the material. If you think there’s a mistake, I encourage you to bring it to my attention!

Student instructions


We will use the following tools in this course:

  • GitHub: used to download code and data, collaborate with other students, and submit course assignments
  • Google Colaboratory: a Google resource we will use to write code, download data, and run analyses
  • Gitter: used to coordinate all course communication


  1. Start by creating a free GitHub account if you don’t already have one. (If you already have an account, you may use it for this course.)
  2. Next, sign into the course’s Gitter chat platform (you can join using your GitHub credentials). You can ask questions and get help with all aspects of the course via Gitter.
  3. If you don’t already have one, create a Google account. (If you already have an account, you may use it for this course.) Make sure you can sign into Colaboratory using this link.

Getting help

Learning to code can be a tricky, rewarding, and often frustrating business. Luckily for us, there are many places to get help! Examples include:

  • Google– searchable portal to of all human knowledge. Most Internet things are reachable through here, and it’s a great place to start your search. You can often find code that other people have written that solves a similar problem to the one you’re working on, or a tutorial that teaches you how to solve a particular class of problems.
  • Wikipedia– community-curated encyclopedia. Wikipedia is a good resource for learning about the background of a technique, looking up equations, etc. It’s not a good source for tutorials.
  • Gitter– course chatroom. A good place to ask questions, post ideas, etc., to other members of the class and community.
  • The last (but hopefully not least) option if you’re feeling stuck, unhappy with how things are progressing, looking for fun new ideas to revitalize your project and get you interested in science again, etc. is to talk with me. If you’re a Dartmouth person you can come to my regular office hours, email me, message me on Gitter, or come visit my lab.
  • Important– chances are good that if you’re feeling lost, you’re not the only one! If you learn something useful, please share it via Gitter or by opening a GitHub issue.

Where to start

The slides folder contains all course materials, organized as a set of Jupyter notebooks. Use the Slides README file to track down the relevant notebooks.

The assignments README file contains links to all course assignments and the associated source code. We’ll use GitHub Classroom to distribute assignments. (You can log into GitHub Classroom with your GitHub credentials.)

comments powered by Disqus