MOOC: 翻轉實驗課!
相較於人文學科的學生,對於電機資訊領域的學生,除了一般的課堂授課之外,實驗課是大學生涯重要的課程。以電機系而言,在大學的課程設計中,通常會教導邏輯設計、電子實驗以及基本的程式設計。學生們將透過實驗把課堂所學的理論與公式,透過實體的電路或是程式實現出所設計的功能。
對於電機資訊領域的學生,實驗課是非常重要的訓練。一方面實驗課提供學術研究的工具,像是程式語言,作為模擬的撰寫以及理論的驗證工具,另一方面,在實驗課的進行中,學生將了解一個真實系統是如何運作的,舉例而言,在寫C語言程式時,我們需要宣告變數,並在使用完後刪除,對於作業系統而言,這就代表了記憶體的管理。同時,實驗課也訓練了系統設計(如何完成一個大型程式\電路)、錯誤更正(如何找出程式\電路中的錯誤)以及方法找尋(錯誤發生時該如何找資料修正)的能力。因此,當我們開始思考如何利用MOOC翻轉教育時,也該同時想想,如何利用MOOC翻轉實驗課!
然而,不同於一般的教室授課,實驗課要求學生們利用實驗器材,實際地完成一個又一個功能,從一開始較簡單的功能開始,由助教教導除錯的方式,並驗證所完成的功能,到了課程的最後,則會結合所有學習過的功能,完成一個完整的專題。不同於紙本考試,實驗特通常以專題的完整度與功能驗證,作為評分的標準。這樣的特色,對於一個大規模、公開、線上的課程而言,也同時意味著無法提供實體器材、軟體授權,也無法由助教提供功能驗證的困難。
困難,但不代表不需要嘗試。在下述文章內容中,將介紹兩堂課程分別是courserea平台上由Rice大學開設的“Python交互編程入門”以及edx平台上由MIT所開設的“電子與電路”課程,並介紹網路上可以取用的公開資源,幫助對於電機資訊有興趣的讀者,能夠動手做實驗,透過實作,深入了解系統。
“Python交互編程入門”由Joe Warren, Scott Rixner, John Greiner, Stephen Wong所開設,顧名思義,這門課程是介紹如何寫作一個Python語言的線上課程。
Python是一種近年來興起的高階程式語言,所謂高階程式語言,對於一個資工背景的人而言,同時意味了兩件事情:容易上手、效率低落。由於Python語言的設計以及完整的程式庫,讓程式設計師可以把數千行的C程式,在幾百行中完成,有利於大型程式的開發以及想法的驗證。因為Python的特性,越來越多大型計畫(如開源的雲端平台OpenStack)都採取Python作為開發語言,用以快速開發新的專案,至於程式執行的效率,就交給需要的人來改進吧!
不同於其他MOOC平台上的線上課程,“Python交互編程入門”提供了一個線上的開發環境。所謂的開發環境,就是把程式設計師所寫的(近似於人類邏輯的)程式,轉換成機器看得懂的(最終以位址和指令集表示的)機器語言,這中間的轉換,我們需要編譯器(compiler)的幫忙,對於一個整合編譯器與程式編輯器的介面,我們一般稱為開發環境(Integrated Development Environment),在電腦上就像是eclipse或是visual studio。
提供一個線上的開發環境,在台灣似乎有些多餘,畢竟,多數人都可以負擔一台可以安裝開發環境的電腦,然而,一個已經安裝好的開發環境可以減少進入的門檻,想像,當你有一天心血來潮,拿著平板想要練習MOOC的回家作業時,卻發現Android系統不能安裝開發環境會是多麼掃興的事情,此外,一個標準的線上開發環境,也可以避免程式集宣告錯誤,開錯檔案格式等問題,方便學生快速進入程式語言的學習。
“Python交互編程入門”是一門9周的課程。在課程中,將從最簡單的helloworld開始,介紹程式中函式(function)、變數(variables)、輸入輸出(I/O)、圖形化介面(GUI)的功能,最終的目標則是完成一個藉由閃避石頭獲取分數,稱為“RiceRocks”的遊戲。
對於電機資訊領域的學生,實驗課是非常重要的訓練。一方面實驗課提供學術研究的工具,像是程式語言,作為模擬的撰寫以及理論的驗證工具,另一方面,在實驗課的進行中,學生將了解一個真實系統是如何運作的,舉例而言,在寫C語言程式時,我們需要宣告變數,並在使用完後刪除,對於作業系統而言,這就代表了記憶體的管理。同時,實驗課也訓練了系統設計(如何完成一個大型程式\電路)、錯誤更正(如何找出程式\電路中的錯誤)以及方法找尋(錯誤發生時該如何找資料修正)的能力。因此,當我們開始思考如何利用MOOC翻轉教育時,也該同時想想,如何利用MOOC翻轉實驗課!
然而,不同於一般的教室授課,實驗課要求學生們利用實驗器材,實際地完成一個又一個功能,從一開始較簡單的功能開始,由助教教導除錯的方式,並驗證所完成的功能,到了課程的最後,則會結合所有學習過的功能,完成一個完整的專題。不同於紙本考試,實驗特通常以專題的完整度與功能驗證,作為評分的標準。這樣的特色,對於一個大規模、公開、線上的課程而言,也同時意味著無法提供實體器材、軟體授權,也無法由助教提供功能驗證的困難。
困難,但不代表不需要嘗試。在下述文章內容中,將介紹兩堂課程分別是courserea平台上由Rice大學開設的“Python交互編程入門”以及edx平台上由MIT所開設的“電子與電路”課程,並介紹網路上可以取用的公開資源,幫助對於電機資訊有興趣的讀者,能夠動手做實驗,透過實作,深入了解系統。
Python交互編程入門
Python是一種近年來興起的高階程式語言,所謂高階程式語言,對於一個資工背景的人而言,同時意味了兩件事情:容易上手、效率低落。由於Python語言的設計以及完整的程式庫,讓程式設計師可以把數千行的C程式,在幾百行中完成,有利於大型程式的開發以及想法的驗證。因為Python的特性,越來越多大型計畫(如開源的雲端平台OpenStack)都採取Python作為開發語言,用以快速開發新的專案,至於程式執行的效率,就交給需要的人來改進吧!
不同於其他MOOC平台上的線上課程,“Python交互編程入門”提供了一個線上的開發環境。所謂的開發環境,就是把程式設計師所寫的(近似於人類邏輯的)程式,轉換成機器看得懂的(最終以位址和指令集表示的)機器語言,這中間的轉換,我們需要編譯器(compiler)的幫忙,對於一個整合編譯器與程式編輯器的介面,我們一般稱為開發環境(Integrated Development Environment),在電腦上就像是eclipse或是visual studio。
提供一個線上的開發環境,在台灣似乎有些多餘,畢竟,多數人都可以負擔一台可以安裝開發環境的電腦,然而,一個已經安裝好的開發環境可以減少進入的門檻,想像,當你有一天心血來潮,拿著平板想要練習MOOC的回家作業時,卻發現Android系統不能安裝開發環境會是多麼掃興的事情,此外,一個標準的線上開發環境,也可以避免程式集宣告錯誤,開錯檔案格式等問題,方便學生快速進入程式語言的學習。
“Python交互編程入門”是一門9周的課程。在課程中,將從最簡單的helloworld開始,介紹程式中函式(function)、變數(variables)、輸入輸出(I/O)、圖形化介面(GUI)的功能,最終的目標則是完成一個藉由閃避石頭獲取分數,稱為“RiceRocks”的遊戲。
留言
張貼留言