開始使用 replit.com
這個學期(2023 年春季)在台大工商管理學系新開設了「程式設計」課程,有別於過往使用 mybinder.org 讓同學們使用不需登入、一鍵啟動的雲端互動 Python 筆記本環境,這次改採用 replit.com 作為雲端環境、Visual Studio Code 搭配 Miniconda 作為本機環境。我的教學內容仍然是以科學計算與資料科學為主軸,照理來說使用基於互動 Python 筆記本(Interactive Python Notebook, ipynb)的開發環境,例如 Jupyter Notebook、Jupyter Lab 或者 Google Colab 理當是最契合的,轉而使用基於 Python 腳本(Script with .py as extension)的 replit.com 以及 Visual Studio Code 必定其來有自。
關於 mybinder.org
mybinder.org 是一個能夠免費使用的 BinderHub,只要輸入公開的 GitHub Repository 網址,就可以即時啟動一個雲端 Jupyter 計算環境,將本來只能在 GitHub Repository 靜態展現的互動 Python 筆記本內容,轉換成為一個能夠在瀏覽器上執行、編寫的 Jupyter Notebook/Jupyter Lab。
當初選擇 mybinder.org 而不是 Google Colab 的主因是 Google Colab 在檔案、環境與終端機的支援上不足,例如檔案必須在每次啟動後重新上傳、Python 與模組的版本無法固定、欠缺終端機介面以及需要一個 gmail 帳號登入,因此 mybinder.org 的優點相較之下就顯現出來:
無須註冊、登入。
可以在環境中指定檔案、Python 版本以及模組版本。
可以使用終端機介面。
但是在過去三年的教學期間,無論是 Hahow 線上課程的練習題或者台大的學分課,mybinder.org 的缺點也一覽無遺,而且對於修課同學而言,似乎缺點遠大於優點。
雖然無須註冊、登入,但也因此欠缺了儲存功能,無法延續前一次的程式撰寫。
有時候在啟動階段會等候過久。
如果有超過 10 分鐘的閒置就會斷線。
同時上線人數僅有數百人的規模,在尖峰時段(歐美時區的白天)常會無法連線。
每個啟動的 Jupyter Notebook/Jupyter Lab 僅有 2GB 的 RAM 可以使用。
有鑑於此,這個學期(2023 年春季)在台大工商管理學系開設的「程式設計」課程改採 replit.com 作為雲端環境;另一門同樣在台大工商管理學系開設的「資料視覺化與現代資料科學」課程因為偏重 Jupyter Notebook,改採 Google Colab 作為雲端環境。
關於 replit.com
replit.com 是一個雲端程式開發環境,開發介面和 Visual Studio Code 相似,提供多種語言和模版可以選擇,只要是公開的專案或模版都可以直接 Fork 到自己的帳號下去使用,可以免去檔案下載、環境設定的前置作業。replit.com 對我而言並不是陌生的服務,早在以前撰寫與 HTML/CSS/JavaScript 相關內容的文章時,我就有使用過如 replit.com、JSFiddle 以及 CodePen 等類似服務,但當時我對於科學計算、資料科學的環境評估,只侷限基於互動 Python 筆記本的選項,也因為互動 Python 筆記本才能整合 Markdown、LaTex、Code 以及程式和圖形輸出是資料科學必要的四個元素,不過這樣的優勢在 Visual Studio Code 支援互動 Python 筆記本之後,有可能翻轉過去 10 年風靡資料科學生態圈的現況,且讓我們繼續觀察下去。
如何使用 replit.com
最適合初學者開始使用 replit.com 的方式為註冊一組帳號,登入之後 Fork 一個公開的 Repl,然後就能夠開始寫程式了!讓我以 2023 年春季「程式設計」課程的作業一為例:
前往 replit.com 註冊一組帳號並且登入。
前往作業一的 repl: https://replit.com/@yaojenkuo/asgmt-1-programming-design-2023?v=1 然後點選右上角的 Fork 按鈕完整將這個 repl 複製到自己的帳號底下。
閱讀 asgmt-one.md 中的題目敘述並依據函數底下的說明文字(docstring)將指定函數寫作在 asgmt-one.py 之中。
點選上方的 Run 執行單元測試(unittest)的程式碼 test-runner.py