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.