26. Cogmaster Lectures¶
Ateliers de Programmation pour les (Neuro)Sciences Cognitives / Programming for Cognitive and Brain Sciences
This year (2021-2022) the lecture is split in 3 independent modules:
PROG Introduction to Programming with Python (first half of first semester)
This series of lectures targets students with little or no prior knowledge of programming. It will introduce the fundamentals concepts of coding : variables, expressions, functions, control structures, input/ouput. The course will make use of https://pythontutor.com/
PCBS Programming for Cognitive and Brain Sciences (2 sessions: second half of semester 1 and first half of semester 2)
The purpose of this module is to train students to solve typical tasks encountered in cognitive or neurosciences: (creation of stimuli, programming of real-time experiments, data manipulation and analysis, simulations…), using Python ou R. The course consists of short lectures followed by hands-on exercises.
PROJ Programming project (second half of semester 2)
Each student selects a cognitive science topic (psychology experiment, simulations of a cognitive system, etc, …) and implements it using a programming language. The project’s development should be public on github.
Slack discussion forum
26.1. Course description¶
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
26.1.2. Learning outcomes¶
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.
26.1.3. Pedagogy, class organization and homework¶
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).
26.1.5. Textbook and readings¶
All the materials are available on the course’s web site at http://github.com/chrplr/PCBS.
26.1.6. Course policies¶
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).
The project should try to replicate an experiment or some simulations related to cognitive (neuro-) science.
An example of the kind of things that we expect is provided at http://chrplr.github.io/PCBS-LexicalDecision
All documents (scripts, stimuli, documentation, data files) related to the project should be on a github.com repository with a name starts with
PCBS-followed by a label that gives an idea of what the project is about.
- The main page of the repository (
README.md) should :
describe the aim of the project (explain the experiment or the simulation
explain how to install and run the experiment on one’s computer (which command line, which options if any).
if the project involves analyses, the README.md should point to a documents (html, pdf, not Word!!!) containing the report.
- The main page of the repository (
It is highly recommended to use the ‘Pages’ system of github to generate a nice looking page (see https://docs.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site ).
It should be possible to clone your repository and execute your code without modifying anything. This implies that you should absolutely avoid absolute pathnames. Also your code must be portable and run on MacOS, Windows and Linux.
Send us a link to your github project as soon as possible so that we can check your progress.
The readability of the code, and of the main page are of the main criteria of evaluation.
Do not be overambitious: a well written project that does a simple thing but well will receive a better score than one that has an unreadble code that does complicated things.
You can work in binomes to read, check and criticize each other code regularily. it is very useful to have someone else check that the documentation and code that you write is readable.
use the slack forum https://cogmaster-pcbs.slack.com/ to ask questions
- At the end of the README.md file, you must include a section detailling:
your previous coding experience
what you have learned since then, by following the lecture, coding the project or working by yourself
what you missed in this course.
I have uploaded some experimental papers on the Schoology web size (in Materials: papers-for-projects.zip) that can be used as the basis of your project.