Results

All notebooks have consistent structure. This structure consists of: (1) A brief synopsis of the notebook data and analysis methods. (2) An on-ramp to immediately introduce - and evaluate in Python - a core concept of the notebook. (3) A description of the data, method of collection, and scientific question motivating analysis. (4) A detailed statement of the module goals and the data analysis tools to be studied. Then, (5) Data analysis begins with visualization approaches. (6) Data analysis continues with implementation of the techniques specific to the notebook, including development of appropriate theoretical material and practical implementations. (7) Data analysis concludes with rendering of results.
Notebooks are modular and can be completed in any order.Although we organize the notebooks sequentially, each notebook is independent of any other. In this way, learners and educators may develop individual learning paths through the material. For example, a learner with limited programming experience who is interested in the fundamentals of EEG analysis could begin with the extensive Python tutorial (Notebook #1), and then proceed to notebooks introducing the evoked response potential (Notebook #2) and spectral analysis (Notebooks #3 and #4). Or, an educator teaching a graduate course in computational neuroscience may introduce the topic of cross-frequency coupling (CFC, an active research area [4]) and provide students with a hands-on example of implementing and applying a measure of CFC (Notebook #7). A motivated individual could also complete the entire sequence of notebooks, in order.
GitHub, Python, and Jupyter notebooks for an interactive online learning environment. To facilitate an open, freely available distribution of the material, we use the programming language Python (https://www.python.org/), host all material on GitHub (https://github.com/), and organize the material into Jupyter notebooks [5], each focused on analysis of a specific data set. To interact with the material, a learner may download (or clone) the entire repository (including all data, Python code, and written material) for use on his or her own device. Alternatively, a learner may interact directly with the material through his or her web browser; no downloads or software installations required. Using Binder (https://mybinder.org/) or ThebeLab (https://opendreamkit.org/), the Jupyter notebooks become fully interactive environments; the data analysis (Python code) becomes executable and modifiable directly in most modern web browsers.