建立編碼練習的講師指南
運用編碼練習,為您的 Udemy 課程新增具有目標性的簡短編碼實務練習。
學習者需要平易近人的方法進行練習、評估及運用所學。在課程中加入編碼練習,就能便利地提供主動式學習體驗。
編碼練習常見問題
什麼是編碼練習?
📖 編碼練習是能讓學習者實際練習特定編碼語言或框架的練習。學習者可透過自動評分,確認自己對於課程中涵蓋概念的理解程度。
如何開始?
瀏覽至課程的大綱頁面。按一下「+ 大綱項目」按鈕,再按一下編碼練習。更多資訊,請見此說明中心文章。
我何時該在課程中加入編碼練習?
應針對課程中所有重要的編碼相關主題與技能提供編碼練習。提供這些練習活動的關鍵時刻如下:
- 課程講座至少有一個學習目標與編寫程式碼相關
- 講座中所講授的概念可透過編碼練習進行評估
我應該在課程中加入多少編碼練習?
單一課程中可加入的編碼練習次數並無上限,但建議您在整個課程中穿插式分配,以便分散練習機會。以下是一些在課程中建構編碼練習的方法:
- 每一個區塊包含至少一次編碼練習。
- 針對相同的學習目標提供多次練習。不過,除非是為同一學習目標提供多次練習機會,否則請避免堆累多個編碼練習。
- 以練習作為部分區塊的開頭,讓學習者能夠進行嘗試,再引導他們至說明練習的講座,接著以新的脈絡提供另一個編碼練習,讓學習者再次嘗試。這種方式能夠激發學習者思索為何在該區塊的講座中需要學習那些項目。
我能透過自己建立的編碼練習賺錢嗎?
如果您的課程屬於 Udemy 訂閱方案,學習者在編碼練習上所花的時間,會新增至您的參與度營收。
有哪些可用的編碼練習語言?
目前來說,您可以使用下列語言建立編碼練習:C#、C# 11、C++、CSV 處理 (使用 Python)、HTML、Java 17 (使用 JUnit5)、Java 11、Java 9、JavaScript ES6、PHP 7、PHP 5、Python 3.10、Python 3.8、Python 3.5、R 3.6、React 16、React 18、Ruby、SciPy 1.4 (NumPy、Pandas 與 SymPy),以及 SciKit Learn 0.23、SQL、SQLite 3、Swift 5 和 Swift 3。
如何建立編碼練習
透過下列步驟,開始建立 (或更新) 您的編碼練習:規劃目標與成果、建立解答、建構練習,並且加入提示與測試案例來協助您的學習者。
規劃您的編碼練習
定義學習目標,開始建立您的編碼練習。從回答下列問題開始:
- 若學習者正確完成此編碼練習,他們應該具備何種能力?
- 此練習能協助學習者練習何種技能?此練習評估的是何種技能?
利用這些問題設計出編碼練習的習題,其正確答案需與上述問題想要得到的學習成果一致。此習題應為工程師/技術人員實際會執行任務的一小部份。
💡秘訣!保持您的編碼練習簡潔有力。
-
- 理想上來說,編碼練習應讓一般學習者最多 15 分鐘即可完成。這是微學習的著名時間框架,且可確保此練習不至於造成時間上的負擔。
從解答開始
設計編碼練習時,建議使用反向課程設計法。因此,一旦您決定編碼練習的習題後,請寫下完整的理想解答,包括評估與解答檔案。
📖 解答檔案是針對習題定義給出的解答檔案。學習者應針對習題定義寫出類似的解答檔案 (未必要完全一樣)。該檔案可驗證提供的評估檔案 (單元測試) 是否正確。
📖 評估檔案是單元測試檔案,用來檢查學習者的解答是否真的可以解開習題。必須使用斷言陳述來驗證解答。
如要建立新的編碼練習,您必須提供系統可驗證的解答與評估檔案。在此提醒,解答檔案是用於驗證評估檔案本身,評估檔案則是用於驗證學習者的解答是否正確。
💡秘訣!利用 AI 產出
針對英語及西班牙語的 Python、C++、Java 和 Javascript 練習,您現在可以從第三方人工智慧取得一些協助來建立您的練習檔案。
-
請前往您的課程大綱頁面,並開始建立新的 Python、C++、Java 或 Javascript 編碼練習。
-
在「規劃練習」分頁中新增練習名稱和學習目標後,瀏覽至第二個分頁「撰寫解答」。
-
按一下新的「利用 AI 產出」按鈕,並針對您的問題新增說明。
-
您完成建構問題大綱後,請按一下新的「利用 AI 產出」按鈕。您會在幾分鐘內看到針對您課程產生的解答和評估檔案
-
在前往「引導學習者」區塊前,請審慎檢查您的練習並予以修正。
訂出練習架構
建立解答後,下一步是向您的學習者清楚傳達此練習的目的和問題。建議您採用下列步驟:
- 說明學習者正確完成此編碼練習將可具備何種能力,以及此編碼練習有助於訓練哪些技能。您應在規劃階段便已定義這些答案。
- 在練習的「問題陳述」中提供完整及易於理解的指引。確保您提供足夠的資訊讓學習者嘗試該練習,並確定他們確實練習該技能 (或展現其完成測驗的能力)。
- 撰寫入門檔案。
📖入門檔案是一開始所需的程式碼,用以架構練習,讓學習者能專注練習目標技能。
💡秘訣!為您的編碼練習建立清楚明確且一致的命名方式。
-
- 為所有編碼練習採用一致且易於查找的命名慣例。舉例來說,所有編碼練習的名稱都以「編碼練習」開頭,讓學習者可在課程中輕鬆找到這些練習。
📝 備註:正如所有與學習者的交流,請確保您的說明精確、無文法錯誤且無偏見用語。
透過指導更進一步
測試案例
📖 單元測試是用於測試單元的方法。所謂單元即是系統中可用邏輯隔離出的最小程式碼片段。在大多數程式設計語言中,這會是一個函數、一個副程式、一個方法或屬性。
您應該為編碼練習的解答提供單元測試,讓您的學習者在按下「檢查解答」時可以獲得意見回饋。此意見回饋能協助學習者找出自身錯誤,並在他們成功時提供重要驗證。
建立測試案例時,建議您採用下列最佳實務作法:
- 具體。單元測試應該僅包含一個邏輯斷言,也就是說,只檢查受測驗編碼的單一輸出。
- 全面。單元測試應模擬所有外部服務和狀態,也就是說,所有必需的行為都要測試。 單元測試能抓出邊角案例,並提供良好的測試覆蓋率。
- 明確度是關鍵。每個測試的名稱都應有意義,如此一來,當學習者看到測試清單時便能輕鬆瀏覽。
相關講座
在課程中加入推薦講座,將學習者引導至可獲得所練習技能更多資訊之處。
提示
📖 提示有助於學習者在陷入練習困境時,引導他們找出正確答案。
因為測試案例的標題已提供引導,「提示」區塊應更著重在提供更多說明或單元測試中未提供的資訊。
建立提示時,建議您採用下列最佳實務作法:
- 提示應能喚醒學習者對該概念的記憶。
- 提示應提供學習者部分答案,而非完整答案。
- 提供多個提示時應循序漸進,也就是從較小的提示開始,逐步變成更具實質意義的提示,藉此鼓勵學習者自行做出嘗試。
📝 備註:由於目前可在學習者嘗試完成練習時隨時向他們顯示提示,請僅將「提示」空間用於提供協助學習者完成練習的額外資訊,請勿提供練習的正確答案。
解答說明
📖 解答說明會進一步詳述編碼練習的正確解答。
解答說明有助於學習者驗證及/或理解自己的方法中存在哪些問題。若學習者嘗試進行您的編碼練習,但無法確定解答為何能正確解決問題,請在此處解釋。此外,對於正確解答練習但不確定原因為何的人來說,這有助於驗證其答案,進而鞏固對此概念的理解,以便未來加以應用。
建立解答說明時,建議您採用下列最佳實務作法:
- 此區塊可包含內有程式碼片段的逐步說明。
- 請一律在步驟後方加入「原因」。如此可協助學習者反思自己的成果,並瞭解後續再試一次時需要改正哪些部分。
如需深入瞭解我們對編碼練習所做的改進,請參閱這篇 Teaching Center 文章。此外,如果您對於如何使用編碼練習工具有其他問題,請參閱這篇說明中心文章。