# 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/)