We are drowning in information and starving for knowledge.
-- Rutherford D. Roger
The amount of information is enormous nowadays and it is continuously growing. See resources to observe only a tiny fraction of machine learning content available on the Web. Isn't it enough? Why should we create one more piece of content?
There were a lot of Holy Wars about education and all around it. Leaving them aside, I personally formulate the main purpose of education as follows:
Create conditions allowing students to acquire knowldedge and skills at the desired level in the shortest possible period of time.
:align: center
Our attempt will technically rely on Jupyter book, an open-source tool for building publication-quality books and documents from computational material.
To introduce the capabilities of Jupyter book along with some methodological ideas I wrote the e_book. For now it consists only of one chapter devoted to the Euler number.
The main features:
- interactive quizzes (taken "as is" from here);
- mix of narrative and executable content as it is usually done via markdown and code cells in Jupyter notebook;
- pictures and visualizations (sometimes interactive);
- available online on any device.
Hopefully, during this course we'll write something similar about machine learning.
Activity | Final scores |
---|---|
Attendance | |
Practice | |
Midterm | |
Jupyter book project | |
Final exam |
Successive completion of the project requires effective team collaboration. The team should consist of several students with different roles:
- technical writer
- author of executable content
- designer of interactive plots
- designer of quizzes
the most useless...project manager
The goal of every team is to create a nicely looking section in the ML book.
- writes clear and neat narrative content in Markdown
- looks for consistency with all other types of content
- translates some Russian texts into English if necessary
- writes executable content in Jupyter notebook
- suggests ideas of python calculations and static plots which would enrich the narrative content
- searches for existing datasets and visualizations
- tries different models of machine learning
- uses plotly or pywidgets or something else to create interactive visualizations
- searches for places where it would be quite beneficial to insert interactive elements
- suggests ideas of quizzes which could be solved by investigating of interactive content
- searches for ideas of single/multiple choice and numeric quizzes
- writes quizzes using Jupyterquiz in a separate Jupyter notebook
- encodes the quiz bodies and inserts them into main content
- tracks the progress of each member of the team
- checks for consistency of all types of content, notations and cross-references to other parts of the book
- searches for different sources of information
- communicates with PMs of teams which work on related topics
- communicates with BDFL
:align: center
- Don't copypaste from chatGPT, it can serve just as a starting point
- Study carefully the documentation of Jupyter book and jupyterquiz; pay special attention to the things relevant to your role in the team
- The Jupyter book ecosystem allows to produce diverse content, make advantage of this as much as you can (see e_book for a baseline)
- As a starting point, clone the ML book repo and check that you can build the book locally
- Clone only one branch of ML book repo which corresponds to your section:
git clone -b BRANCH_NAME --single-branch https://github.com/Fedmug/kbtu-ml-book.git BRANCH_NAME
- Try to investigate all possible sources of information about your topic, especially those from ML resources
- Think about links between parts of your section or to some other sections and chapters
- Keep in mind that you are creating content for newbies