Students in Cognitive-(Neuro)-science need to learn programming:
to understand how computers work, because of the importance of the Computational Theory of Mind in Cognitive Science.
to automate the boring stuff (e.g. repetitive work on files, web scrapping,)
to do reproducible science: simulating models, designing experiments, running them, analysing data, …
The purpose of the PCBS course is to make students able to write clean code in order to solve the tasks that are typically encountered in cognitive or neurosciences (data manipulation and analysis, creation of stimuli, programming of real-time experiments, simulations…). The first half (6 weeks) of the course consists of lectures with hands-on exercises, then, during the last 6 weeks, students have to realize a project publicly available on http://github.com
On successful completion of this course, students should be able to write readable, well- documented, Python programs, and use system such as git that promote reproducible science.
The first classes are lectures with hands-on exercices. The remaining classes, I and the teaching assistant are present for individual support to help the students accomplish their project. I also give weekly assignments to be done before the next lecture.
The projects will be graded on a 20 points scale. The main criterion is clarity (see Projects for more details).
All the materials are available on the course’s web site at http://github.com/chrplr/PCBS.
Laptops: Students must bring there own laptop (preferably fully charged!) with the specified software preinstalled.
Participation. You are strongly encouraged to participate in lectures and on the slack discussion forum. The more advanced students are expected to help the beginners.
They should acquainted with basic programming concepts: instructions, variables, tests (if..then..else), loops (while and for).
I strongly recommend the freely available book Automate the boring stuff with Python: Practical programming for total beginners. to total novices (as well as the other books by the author). For those who dislike reading, there are videos on the site.
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
Modeling Psychophysical Data in R by Kenneth Knoblauch & Laurence T. Maloney
Modules: numpy, scipy, pandas, seaborn, statsmodel, sklearn
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
Under Windows, after having installed Git, you have access to
git bash, which provides a terminal with the bash shell and emulates many unix commands.
Under Windows 10, Microsoft has recently made available the “Windows Subsystem for Linux”, which provides a virtual Linux system running inside Windows. (See https://itsfoss.com/install-bash-on-windows/, and https://itsfoss.com/windows-linux-kernel-wsl-2/).
Under MacOSX, when you open a terminal, you may be interacting withthe bash shell or the zsh shell (to know which, type
To understand why you need to learn git, see Tools to do Reproducible Science