# Programming Psychology Experiments ## Objectives - learn to build experimental psychology experiments, that is, how to create visual and auditory stimuli, to present them at precise times and possibly record participants' responses and analyse them - learn tools to do reproducible science (github, markdown, ...) - improve your programming skills (clean code, real-time, ...) ## Pedagogy * The lectures essentially consist of **Practical tutorials**: After we introduce a topic, you have to solve challenges (with help from us if necessary). * We will use mostly Python, but also Javascript for online experiments. * Bring your computer and have the software installed in advance !!! ## Expectations/Evaluations * Attendance is expected (warn me by email if you cannot attend for a good reason). * Working during the course is also expected. At the end of lectures, I will asked to you to send me by email a copy of your work folder, with your attempts. ## Resources: ### Our Github repositories: - https://github.com/chrplr/programming-psychology-experiments - https://github.com/chrplr/PCBS ### Python * Books: - *Automate the boring stuff with Python* (highly recommended!) - *Apprendre à Programmer avec Python3* - *Think Python* * MOOCs: - Udemy’s Python programming for absolute beginners - Code Academy’s Learn Python module - Openclassrooms’ Apprendre à programmer en Python - Python 3 : des fondamentaux aux concepts avancés du langage ### Programming skills * Software Carpentry provides nice lessons about writing software for science and do reproducible science. ### Unix Command line (shell) - The Linux Command Line by Williams Shotts. - Openclassrooms MOOC ### Git * Openclassrooms’ MOOC Manage your code with Git and Github * https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners * https://git-scm.com/book/en/v2/Getting-Started-Git-Basics * The Git Book * My own git cheat page ### Cognitive and Brain Sciences Programming * *Programming Visual Illusions for Everyone* by Marco Bertamini. * *Neural Data Science: A Primer with MATLAB and Python* by von Erik Lee Nylen and Pascal Wallisch * *Matlab for Brain and Cognitive Scientists* and *Analyzing neural time series data* by Mike X Cohen * Python in Neuroscience * *Modeling Psychophysical Data in R* by Kenneth Knoblauch & Laurence T. Maloney ### Stimulus/Experiment generation modules -------------------------------------- - http://www.expyriment.org (See Get started with Expyriment - http://psychopy.org (See Programming with PsychoPy ) - http://psychtoolbox.org/ (See Psychtoolbox demos ) - https://www.jspsych.org/ (See intro at https://blog.s-m.ac/using-jspsych/) - https://dialoguetoolkit.github.io/chattool/ ### Data analyses, Statistics in Python ----------------------------------- - Modules: numpy, scipy, pandas, seaborn, statsmodel, sklearn - Data manipulation: - http://pandas.pydata.org/pandas-docs/stable/tutorials.html - Plotting: - http://matplotlib.org/users/pyplot_tutorial.html - https://seaborn.pydata.org/tutorial.html - *Scipy Lecture Notes*: http://www.scipy-lectures.org/ - *Think Stats* by Allen B. Downey: http://greenteapress.com/thinkstats2/ - *Python Data Science Handbook* by Jake VanderPlas: https://jakevdp.github.io/PythonDataScienceHandbook - *Introduction to Data Science in Python*: notebook from a 2 day workshop organized by the Paris-Saclay Center for Data Science: https://github.com/paris-saclay-cds/data-science-workshop-2019 - *Machine Learning with scikit-learn" MOOC*: https://www.fun-mooc.fr/en/courses/machine-learning-python-scikit-learn/ (on github: https://inria.github.io/scikit-learn-mooc/)