-
-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Project
Scientific Python
Summary
To modernize the infrastructure and content of the Scientific Python Lecture notes to make them more useful as independent long-form tutorials.
submitter
Matthew Brett
project lead
Community benefit
The Scientific Python Lectures are a community-based effort intended to provide "one document to learn numerics, science, and data with Python". Their focus is to provide concise notes for "displaying on screen while teaching" during in-person bootcamp-style sessions.
This design choice makes the notes much less useful as an internet tutorial — that is, a set of documents that one can read at one's own pace for a grounding in the covered topics — they are too sparse, too note-like for comfortable reading by a new or intermediate student. As a result, the current approach relies heavily on the presence of expert instructors to "fill in" explanatory gaps during workshops.
That is a shame, because the materials in the lecture notes are of very high quality, written by experienced and knowledgeable contributors. When suitably unpacked and expanded, with more exercises, they could be of great use for reference and further reading in formal courses and for independent readers, who discover the notes by links and searches. This audience is likely to be several orders of magnitude larger than that of audiences for in-person bootcamps.
In addition, the current notes were written before many developments in the infrastructure around teaching from notebooks, such as https://jupyterbook.org, https://next.jupyterbook.org, https://github.com/executablebooks/sphinx-exercise, and the use of JupyterLite for local in-browser code execution.
We will modernize the infrastructure and style of the current lecture notes for greater accessibility and usefulness to independent readers. Meanwhile we will ensure that the notes remain easily usable as high quality workshop materials. The updated format will use clear, step-by-step explanations, interactive code examples and embedded exercises/solutions, to better serve readers seeking a single place to learn numerics, science, and data with Python. This will deliver more efficiently on the promise of the lecture notes.
Both applicants (MB and PR) have extensive experience teaching data science and neuroscience using materials in the proposed new format. We have taught from this format on the Nipraxis course, at the University of Birmingham, and the London Interdisciplinary School. We believe that this modern format - using Jupyter Book, and with expanded explanatory scaffolding - offers advantages for both instructors and students of all levels.
For workshop instructors and advanced students, the expanded explanatory text can be skimmed quickly, focussing on the detailed interactive code examples, with the in-depth explanations to be sampled as needed. For novice students, especially those reading independently, the expanded explanatory text provides scaffolding for understanding the material in a way that the current format of the notes precludes, relying as it does on the presence of an expert instructor. The enhanced interactivity of the code — which includes exercises and solutions embedded on the same pages as the text and code examples — allows a user to experiment with the code examples, expanding, altering or breaking things, which can enhance learning and teaching by showing the code "in action" rather than as static examples.
We have already created new Pandas tutorials in the Jupyter Book format, which were written for the 17th Advanced Scientific Programming in Python summer school. These new materials received positive feedback for their approachable, step-by-step style, and are a model for the approach we plan to apply across the entire lecture notes. In addition, we have ported the existing SciPy lecture notes into the Jupyter Book format.
To conclude the modernization, we seek funding to support the revision of the remaining content, with extended explanations and more exercises. We will focus first on the earlier sections of the lecture notes — which introduce the Scientific Python ecosystem and foundational libraries like NumPy. These revised pages will provide a template and working practice for later revisions to more advanced content from the wider community.
Amount requested (USD)
7000
Execution plan
Once modernized we will submit pull requests for updated links to the lecture notes in documentation of relevant components of the Scientific Python ecosystem.
- $5,000 (100 hours at $50/hour) for PR to update port to Jupyter Book, and to
rewrite the Section 1 of the current notes over a 4 month period (~6 hours
per week). - $2,000 (20 hours at $100/hour) to MB for supervision, editing.
- We will modernize later material as time and budget allows.