上次介紹了 Jupyter Notebook Viewer ,
可以在 Open edX 上面觀看 Jupyter Notebook ,
這次的主題是:
Xblock模組 - Graded Jupyter Notebook Integration
之前提過 XBlock 是 Open edX 擴充功能的一個模組,
許多功能都能基於此模組進行開發,
Graded Jupyter Notebook Integration使用Docker和nbgrader創建一個Python環境
並自動對Jupyter Notebook進行評分,
將所得分數紀錄於 Open edX 成績簿中。
使用底下命令進行安裝:
sudo /edx/bin/pip.edxapp install git+https://github.com/ibleducation/jupyter-edx-grader-xblock.git
由於使用到 Docker 所以系統必須安裝 Docker CE,
新建一個名為 docker 的 group (或許安裝就建立了):
sudo groupadd docker
並建立一個使用者加到此 group 中:
adduser --no-create-home jupyter
usermod -aG docker jupyter
以 root 進入 visudo 並寫入底下命令,將 www-data 的使用者以此身分登入jupyter:
www-data ALL=(jupyter) NOPASSWD:/usr/bin/docker
分別在 lms/cms 的 urls.py 加入:
url(r'^api/jupyter_graded/',include('xblock_jupyter_graded.rest.urls',namespace='xblock_jupyter_graded')),
同時在 lms/cms 的 envs/common.py 的 INSTALLED_APPS 中加入:
'xblock_jupyter_graded',
最後進入 edx 虛擬環境進行 Database Migration
cd ~/edx-platform source
../venvs/edxapp/bin/activate
./manage.py cms migrate xblock_jupyter_graded --settings=aws
將 Open edX 重置以後,就能開始使用此模組,
當然使用之前必須先到 CMS ( Studio ) 中的 Advanced Settings找到 Advanced Module List
加入:
"xblock_jupyter_graded"
儲存後才能在大綱模式下在 Advanced 按鈕中找到
Graded Jupyter NoteBook
課程管理者需在 Studio 中,
將nbgrader Jupyter NoteBook 作業上傳,(如上圖)
而學生則需要下載作業並作答後,
上傳即可得到評分,(如下圖)
這就是今天的的主題:
Xblock模組 - Graded Jupyter Notebook Integration