Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

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 Discord, 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
  • Discord: used to coordinate all course communication. Use this link to join our class server:


  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 Discord workspace. You can ask questions and get help with all aspects of the course via our Discord community. You'll need to create a (free) Discord account.
  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.
  • Discord-- 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 Discord, 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 Discord 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.)


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







No packages published