Computational methods are rapidly transforming psychology and neuroscience research. However, traditional psychology and neuroscience training programs have not been able to keep pace with rapid development of methodological developments. Our vision is to help train the next generation of psychological and brain scientists in the latest mathematical modeling and analysis tools for studying the mind. Training students in computational techniques in graduate programs, workshops, and tutorials is an extraordinarily challenging endeavor due to high levels of variability in (a) mathematical and computer backgrounds, (b) interest in theory vs applications, and (c) computer operating systems and software packages. Many existing workshops provide hands on training in specific techniques, but this is largely introductory, merely providing superficial exposure to textbook “toy” problems, which is insufficient to allow students to apply these techniques to their own work. We strive to provide a comfortable, inclusive, diverse, nurturing, and exciting learning environment where all participants have the opportunity to further their science. Each year we select a general theme to help frame the lectures and tutorials included in the course. Importantly, these themes always include ties to psychological and neuroscientific questions at a broad range of scales, ranging from single neurons, to full brains, to interacting groups. For our 2019 MIND Computational Summer School, our theme will be cognitive maps. Past themes have included network dynamics and narratives and natural contexts.
Our summer program takes place over 9 days, with each day organized around four types of sessions.
- Research talks kick off each day by highlighting the use of a specific methods within the context of a particular research question. The goal is to spark ideas by providing inspiring examples of modeling and analysis tools being used in research settings (~2hr/day).
- Tutorials provide introductions to specific methods, enabling students to establish intuitions about how the methods work, formulate expectations about the outputs, and gain hands-on experience applying the methods to real datasets (~2hr/day).
- Pop-up labs are faculty-led research groups that form and evolve organically to collaborate on a variety of research problems throughout the course. This is the core activity and distinguishing feature of our summer school (>4hr/day). Starting on the second day, faculty (and students who volunteer) pitch possible research projects to start organizing attendees into specific pop-up labs. This process continues throughout the summer school as new labs form and reorganize around new findings and evolving interests. This setting provides a highly efficient way for the summer participants to learn from each other and receive active mentorship from course faculty on actual data analysis. At the end of the course participants present their projects to the broader group. Each year a subset of these projects have yielded publication-quality research findings, and they often form the basis of long-term scientific collaborations.
- Breakout sessions provide forums for informal tutorials and discussions for those who are interested (~1hr/day). Our 2018 sessions included discussions on practical issues in doing open science, an introduction to time series analysis, and useful software packages shared by students and faculty.
Open Science Computing Stack
The first day of the summer school is devoted to getting participants up and running with a core set of open source computing tools used throughout their time here, and a set of resources they can reference. In the pop-up labs, participants will have ongoing opportunities to use these tools for real development work. These core tools include:
- Git and GitHub: a system for collaborative version control, Git/GitHub have become the de facto standard for developing and sharing computer code for scientific projects.
- Scientific Computing: an introduction to the Python ecosystem for scientific computing, including the most useful distributions and packages; comparisons and interactions with other tools (R, MATLAB).
- Jupyter Notebooks: introduction and hands-on “getting started” tutorial to the primary tool used for the tutorials throughout the summer school. Before the start of this session, TAs and faculty will help students get the software up and running as needed.
- Open Science Tools: overview of some perennial issues in practicing open science (e.g. licensing, consent, standards) and some tools to help navigate them (e.g., Datalad, PyMVPA, BIDS).
- Reproducibility with Docker containers: hands-on tutorial using Docker, which makes it possible to reproduce a specific software environment (including the operating system and particular versions of all software used to generate a set of results).
- Programming Principles: a philosophy, along with applied tips and tricks, for how to be an effective coder and hacker.
We have done our best to make all of the course materials publically available. Lectures can be viewed on our youtube channel. The majority of the hands on tutorials are available on our github page. The software stack for all of the tutorials is available in our docker container (Note: Matlab requires a license key).