[MOOCs] 翻轉實驗課!
[註: 本篇文章原載於台大 MOOC 網站, 由於網站已無法連結, 故在此重新發文備份]
相較於人文學科的學生,對於電機資訊領域的學生,除了一般的課堂授課之外,實驗課是大學生涯重要的課程。以電機系而言,在大學的課程設計中,通常會教導邏輯設計、電子實驗以及基本的程式設計。學生們將透過實驗把課堂所學的理論與公式,透過實體的電路或是程式實現出所設計的功能。
對於電機資訊領域的學生,實驗課是非常重要的訓練。一方面實驗課提供學術研究的工具,像是程式語言,作為模擬的撰寫以及理論的驗證工具,另一方面,在實驗課的進行中,學生將了解一個真實系統是如何運作的,舉例而言,在寫C語言程式時,我們需要宣告變數,並在使用完後刪除,對於作業系統而言,這就代表了記憶體的管理。同時,實驗課也訓練了系統設計(如何完成一個大型程式\電路)、錯誤更正(如何找出程式\電路中的錯誤)以及方法找尋(錯誤發生時該如何找資料修正)的能力。因此,當我們開始思考如何利用MOOC翻轉教育時,也該同時想想,如何利用MOOC翻轉實驗課!
然而,不同於一般的教室授課,實驗課要求學生們利用實驗器材,實際地完成一個又一個功能,從一開始較簡單的功能開始,由助教教導除錯的方式,並驗證所完成的功能,到了課程的最後,則會結合所有學習過的功能,完成一個完整的專題。不同於紙本考試,實驗特通常以專題的完整度與功能驗證,作為評分的標準。這樣的特色,對於一個大規模、公開、線上的課程而言,也同時意味著無法提供實體器材、軟體授權,也無法由助教提供功能驗證的困難。
困難,但不代表不需要嘗試。在下述文章內容中,將介紹兩堂課程分別是courserea平台上由Rice大學開設的“Python交互編程入門”以及edx平台上由MIT所開設的“電子與電路”課程,並介紹網路上可以取用的公開資源,幫助對於電機資訊有興趣的讀者,能夠動手做實驗,透過實作,深入了解系統。
Python交互編程入門
“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交互編程入門”由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”的遊戲。
在課程中,所有的程式都可以透網頁瀏覽器,操作一個稱為codeskulptor的程式開發介面完成(http://www.codeskulptor.org/)。從一開始的helloworld開始,到最後“RiceRocks”這一個看起來十分酷炫的遊戲專題,很難相信的,竟然只需要一個網路介面的開發環境。然而,“Python交互編程入門”做到了,根據課程的介紹,每年有數以萬計的學生完成“RiceRocks”這個專題。如何?是不是也想註冊課程,挑戰看看呢?
電子與電路
“電子與電路”是在edx平台上的第一個MOOC課程,由Anant Agarwal主講。它的設立,也多少反映了edx對於MOOC的想像。Anant Agarwal的團隊,不希望只把MOOC平台作為一種舊有課程的多人線上版,他們花了許多時間,為了這門課程設計一個專屬的實驗平台,同時,也去分析由MOOC產生的大量資料,嘗試找出MOOC學習者的特性。
“電子與電路”這門課包含了許多層面,在台灣的課程設計中,通常會仔細分為電路學、電子學兩部分,簡單來說,電路學就包含了電阻、電容與電感,這些只有兩隻接腳的電子元件,而電子學則加上了電晶體與CMOS元件,這些有三隻腳位的元件。請不要小看這多出來的腳位,這可是推動科技發展的主力喔!當然,也是大學生們熬夜苦讀的一個主要原因。
對應於電子學與電路學的實驗課,我們通常稱為電子實驗。一般實驗課的做法,會先教導大家認識電子元件,並從一些簡單的電路開始,利用訊號產生器、電源供應器與三用電表來進行線路的實作與驗證。要在一般環境中找到這些器具,當然不是一件簡單的事情,尤其是訊號產生器,很難找到便宜、便利的替代品,因此,我們會先用模擬軟體(PSPICE)模擬所要完成的線路圖,確認輸出和輸入和所設計的一致後,再開始進行接線與量測。如果讀者對於這一套軟體有興趣,可以下載免費的學生版,來動手實作並驗證一下,高中物理電學所教導的克希荷夫定律(http://www.orcad.com/resources/orcad-downloads)。
“電子與電路”這門課程提供了PSPICE的線上版,並為了這個稱為Circuit Sandbox的工具設計了一整套的教材。Circuit Sandbox的設計比起PSPICE直觀,在右側那一排符號代表的是可用的元件,你可以用這些原件來完成你想要的電路,其中最後兩個元件分別代表電壓計與電流計,可以幫助驗證所設計的電路,輸出與輸入是否相符合。
在這篇文章中,介紹了兩種線上的實驗課程,當然,還有許多課程是藉由軟體的下載以及講解,提供MOOC的實驗課。希望未來,這樣子的線上實驗課程能夠更多元,普及到各種領域,這樣應該能夠培養更多動口又動手的學生,傳達出只有動手去做才能獲取的知識。
留言
張貼留言