教育部教學實踐研究計畫成果報告
Project Report for MOE Teaching Practice Research Program
計畫編號/Project Number:PEE1080342
學門分類/Division:工程類
執行期間/Funding Period:2019.08.01~2020.07.31
透過協同合作開發程式專案提升大學生程式語言課程之學習成效 (Enhance the learning outcomes of college students' programming language courses through collaborative
development of program projects)
配合課程:LabVIEW 程式語言(LabVIEW Programming Language)
計畫主持人(Principal Investigator):蕭子健 (Tzu-Chien Hsiao)
執行機構及系所(Institution/Department/Program):國立交通大學資訊工程學系
透過協同合作開發程式專案提升大學生程式語言課程之學習成效 一、報告內文
1. 研究動機與目的
「程式編寫能力與資訊能力」漸為國際教育界的焦點,在台灣十二年國教中108
年科技領域課綱將「程式設計」納入國高中必修課程[1];大學入學甄選會也從在 106 年成功地將大學程式設計先修檢測(Advanced Placement Computer Science, APCS)納入 個人申請入學第二階段篩選、檢定的項目,此舉獲得眾多校系響應[2]。各大專院校資 訊相關科系係期望透過優良的國高中教育與程式能力的篩選,招收到能力好且適性的 學生,以因應未來科技時代的需求,順利發展人工智慧與大數據等先進技術。 本校 國立交通大學身為台灣科技頂尖學校,而本系資訊工程學系從69 年成立以 來(原計算機工程系,現易名為資訊工程系)除冀望在學的資訊科系學生於眾多教師的 培養下,厚植自身程式撰寫的能力,更期望學生注重程式開發時協同合作的能力與培 養溝通的技巧,往後開發大型專案方能與合作對象或其他研發人員齊力發揮所長、相 互砥礪,更有效率解決難題,運用相同的時間產出最大的成果。 基於使同學們具有在未來與多位程式設計者共同開發大型專案之能力的考量,抑 或是進入以資訊軟體為主的跨領域研究時,教授們多會在程式課程中加入分組合作的 環節,並要求課後多人共組完成一份專案。但是團隊合作也往往是令同學們頭痛的 事,版本的整合、工作分配不均、編寫程式的能力不一使協作的過程中充滿障礙,任 課教授、課堂助教難以透過作業觀察到每一位同學的貢獻度與收穫。長時間下來,學 生將無法視同儕合作為助力,學習方法與解決問題的思維也將趨於單一,這將導致其 在未來面對難題時缺乏解決問題的策略和方法。 本計畫在「LabVIEW 程式語言」課程實施,除了基本程式設計能力外,欲透過協 同合作方式,培養團隊合作來共組完成一份專案。透過 18+周的培訓過程,我們期望 使參與課程的同學們在面對問題與追尋解決方式的路上,能和身邊的組員相互協調合 作進而找到自身在團隊中的定位,在往後更運用此次經驗,有方法、有技巧地與組員 相處合作,順利推動各項團隊協作活動。 配合課堂傳授基礎邏輯、程式設計技巧外,亦導入貼近學生興趣且適才適性的課 後專案。其中,包含兩次基本程式設計作業、一次基礎程式檢定、以及一份要求共組 完成的專案。最後要求共組完成之專案,係建構在前兩次的基本程式設計作業上,延 伸至簡易遊戲程式設計專案,讓每位同學能在合作完成專案的過程中最大地展現自己 的能力,程式編寫、團隊組織能力、美感設計、利用創意添加額外功能等考核項目將 列為專案的評分重心。透過這份程式專案,我們使參與課程的同學們在面對問題與追 尋解決方式的路上,能和身邊的組員相互協調合作進而找到自身在團隊中的定位,在 往後運用此次經驗更加有方法地與組員相處合作,順利推動各項團隊協作活動。 本計畫將以切合未來對程式開發需求的教學方式培養學生具備發現問題的敏銳 度,在分組的過程中與來自不同科系背景的組員分工合作、互相幫助下解決面臨的種 已註解 [u1]: Mein, 此處的文獻,請引述 https://www.k12ea.gov.tw/files/class_schema/%E8%AA%B2 %E7%B6%B1/13-%E7%A7%91%E6%8A%80/13-1/%E5%8D%81%E4%BA%8C%E5%B9%B4%E5%9C%8B %E6%B0%91%E5%9F%BA%E6%9C%AC%E6%95%99% E8%82%B2%E8%AA%B2%E7%A8%8B%E7%B6%B1%E 8%A6%81%E5%9C%8B%E6%B0%91%E4%B8%AD%E5 %AD%B8%E6%9A%A8%E6%99%AE%E9%80%9A%E5% 9E%8B%E9%AB%98%E7%B4%9A%E4%B8%AD%E7%A D%89%E5%AD%B8%E6%A0%A1%E2%94%80%E7%A7 %91%E6%8A%80%E9%A0%98%E5%9F%9F.pdf 最近一次引用日期 109/09/20
種問題。在學期末將分析專案完成度之數據,並請同學發表成果與反饋分組的學習過 程,以協助教師增進未來教學方式與課程設計的重心。
2. 文獻探討
主要參考Robert Kerbs 發表在 Annual Frontiers In Education Conference - Global Engineering: Knowledge Without Borders, Opportunities Without Passports [3]以及 Gómez-de-Gabriel 等人發表在 IEEE Transactions on Educations [4] 論文。修課學生為完 成任課老師要求的大型作業,必須自發性的學習與增強不足的知識或能力,產生了 「基於問題的學習」的效應,而這也是一種非常實用的教學方式。學生在分組合作的 情況下將肩負著自身必須學習的部份與責任感,同時也依賴其他成員的幫助始能完成 作業,從而培養獨立但與組員互助合作的學習模式。我們期望採用協作開發專案的教 學模式,促使學生在面對壓力與開發上的困難時,能透過組員看到不同類型的問題解 決策略或有別於以往的思考模式。 3. 研究方法 一、研究說明 「LabVIEW 程式語言」為每周 3 小時課程共 54 小時正課,亦安排 10 次共約 30 小時 的上機課後輔導。正課區分三階段,可見圖一: (1) 前期(基礎期,8 周),授課核心將放在該程式語言的各項基礎操作能力、圖像程式 語法、以對應撰寫邏輯,課堂傳授、隨堂上機練習、以及課後單一功能的練習, 提供學生們有基本的認知,以及與其他程式語言的對應關係,特別是 Block diagram 部分。其中,將有 1 個課後練習作業(HW1: calculator,1 周後繳交); (2) 中期(認證期,1 周),安排程式檢定複習,邀請同學參與 Certified LabVIEW
Associate Developer (CLAD,LabVIEW 程式語言基礎認證考試)作為期中考。該檢
定採線上測驗方式,共40 題,需 1 小時內完成 28 題(含)以上視為通過。若未通
過,則可申請補考一次!
(3) 後期(專案期,9 周),通過上述訓練,已具備基礎程式編寫能力,接續課程將重心 放在培養學生專案開發的能力上,因此設計專案內的各項功能要求須格外謹慎。 此時,課程核心將放在Front panel(人機介面,可視為 User interface)設計 2 周、 Picture control/Color map(2 周)、State machine 與 Server/Slave(2 周)、以及 Project Explorer(2 周)等。此時,安排 HW2: Clock,此一作業以具協同合作的雛形;最後 HW3: Game,為協同合力完成的專案。最後一周則安排分組操作與簡報。 本研究目的係透過同學們協作完成專案的進程中,都能適性地在團隊中找到適合自 己完成的工作,因此,最後一份專案需求,包含文案編寫、使用者需求分析、程式流程規 劃、程式編寫、介面與美感設計、額外的增添功能均被列為評分的標準。在批改作業過程 中,也將統計一些較進階的功能上,是否會因為團隊合作的幫助而有更高的完成度,最終 將比對本次專案的完成度與以往作業題目的完成度數據。
(圖一:學期課程安排) 二、研究步驟說明 (一)、研究架構 如前述研究說明,主要進行分成三階段,在同學通過第二階段考核後,即進入第 三階段的學習。修課學生透過協同合作完成專案開發,在解決問題的過程中回頭檢視 過以往學習上的盲點,進而加深印象。多種面向的專案功能要求也突顯組員間分工合 作的必要性,例如,專案功能涵蓋三部分,有 Front panel (UI)、Documentation、 Functionality (including AI implementation),因此,最後一段輔助同學進行協同合作, 是此課程是否可實踐的重點。 (二)、研究假設 具備基礎程式撰寫能力後,立即參與基礎檢定。通過後,進入協同合作練習,此 時,學生們充份程式撰寫的自信心,在相互合作過程、在解決問題過程中回頭檢視自 己的能力,進而加深印象。多種面向的專案功能要求也突顯組員間分工合作的必要性, 讓整體專案不再是一人可以獨自完成,也讓學生體會同儕間截長補短、各展長才的合 作樂趣。 此研究預先假設
程設的基礎能力學習。
完成作業
H1: Calculator
2019.09
CLAD(Certified LabVIEW Associate
Developer)程式檢定。
2019.10
完成作業
H2: Clock,此作業將成為培
養學生協同作業的開端
2019.11
學生分為兩人一組,著手進行期末專
案
Final project: Game with AI 的開發
2019.12
期末專案以上台報告形式發表,與同
儕交流成果。
(三)、研究範圍 本次計畫研究範圍將以本系開設的「LabVIEW 程式語言」課程為研究物件,此 課程為跨學院的三學分選修課程,目前已安排每學年上學期開設。 (四)、研究對象 108 年度上學期選修 LabVIEW 程式語言課程者,人數共 85 位,修課學生背景有 資訊工程學系、光電工程學系、電子工程學系、工業工程與管理學系,更有數名外籍 生。 (五)、研究方法及工具 本研究將對比本學期初的學生作業完成度(HW1:Calculator,總共有 20 項功能檢 核項目,詳見附件一;HW2:Clock,有 10 項功能檢核,詳見附件二) ;在分組合作 下完成的期末專案(HW3:Game,總共有 10 項功能檢核項目,外加一題加分題,詳 見附件三) 。而各作業分別有基礎題目和進階題目的設計 (例如,HW1 有 10 題基礎題 與10 題進階題;HW2 有 6 題基礎題與 4 題進階題;Final project 有 6 題基礎題與 4 題 進階題) ,本研究將著重分析進階題目完成數量。 (六)、實施程序 原則上HW1 與 HW2 分別有 1 周時間來完成,其中,每天晚上由助教提供駐點協 助,除可就近觀察同學的程式邏輯外,也可導引同學盡速跨越語法上的障礙。檢核時, 則依據整體完成度、難題完成度來進行評分。Final project 部分,有 6 周時間準備。實 施方式與前述相同。比較特別之處,在於最後一周需接受安排,現場實機展示,除接 受老師/助教檢核外,並由同學們之間進行同儕評選(針對遊戲設計部分)。 (七)、資料處理與分析 依據各項目完成度來進行檢核,其中,在課堂進行中,採去識別方式進行,待完 成學期評分後一個月,將資料進行去連結動作,去除各項可連結之資料,並同步銷毀 紙本評分資料。研究使用 LabVIEW 進行描述性統計分析,依照學生完成作業的成果
進行前後比對,以及自行撰寫群集分析(K-mean clustering analysis)、混合設計二因子 變異數分析(Two-way mixed-design ANOVA)。
計算HW1, HW2, Final project 的 基礎題&進階題得分情況
以K-means 進行分群分析
以三段式分法的概念討論分群趨勢
(圖二:資料分析流程圖) 4. 教學暨研究成果 原修課學生共有85 人,後因個人因素退選課程的人數有 5 人,有繳交同意書者 共69 人(包含一位退選學生),故最終可使用之資料人數為 69 人。 各項作業成績分布如下: 討論作業間基礎題&進階題得 分的相關性
經過設定不同的k 值進行 K-means 分析後,並參考(Within-cluster sum of squares, WCSS)的數值,我們認為 k 值為 5 較符合研究預設的情況:
仔細檢視分群結果後可發現,將學生的分數切割為五群較符合我們在教學現場觀察
到的實際情況,也在WCSS 上有較為合理的數據證明,因此我們著重觀察三項作業的成
績分為五群的情況:
HW1: Calculator(10 題基礎題、10 題進階題(每題各佔 5 分)
HW2: Clock(6 題基礎題、4 題進階題(每題各佔 10 分)
接著,為了驗證學生經過HW1 與 HW2 的訓練,可在 Final project 反映自身學習與
累積的實力,因此需透過2-way ANOVA 驗證是否有相關性。
分析前假設:比較學生的 HW1:Calculator 得分分布類別,與後來的 HW2: Clock 得分分布類別,所造成的 Final Project 分數是否有不同?
試問 HW1:Calculator 是否影響 Final Project 分數?
o 虛無假說→ HW1:Calculator 不會影響 Final Project 分數 o 對立假說→ HW1:Calculator 會影響 Final Project 分數 試問 HW2:Clock 是否影響 Final Project 分數?
o 虛無假說→ HW2:Clock 不會影響 Final Project 分數 o 對立假說→ HW2:Clock 會影響 Final Project 分數
透過SPSS 軟體分析後得出結果,從「受試者間效應項的檢定」顯示可得知:
Calculator 的顯著性 P 值為 0.005<0.05,達顯著水準,因此可拒絕虛無假設 「HW1: Calculator 不會影響 Final Project 分數」
Clock 的顯著性 P 值為 0.001<0.05,達顯著水準,因此可拒絕虛無假設 「HW2: Clock 不會影響 Final Project 分數」
Calculator*Clock 的顯著性 P 值為 0.042<0.05,達顯著水準,因此可拒絕虛 無假設「 HW1: Calculator 與 HW2: Clock 對 Final Project 無顯著影響」
綜合上述分析,可初步獲得結論:許多無程式基礎的大一學生,或是從未接觸過 LabVIEW 程式語言的學生,經過約 2~3 個月的程式訓練,可完成具有難度的遊戲設計專 案。在此過程中他們背負時間壓力,因此須更有效率地解決難題,產出最大的成果;同時 因為授課老師沒有限制同學設計遊戲的內容,因此學生解決問題的面向與思維並不會趨於 單一或是有統一的解答,更能驅使同學們自己遭遇問題並思考克服的策略。 在學期最後迎來修課學生們上台發表時,我們充分觀察到每組學生依照自己能力分 工完成專案的特定部分,並輪流講解細部的設計理念(像是程式編寫、畫面設計、不同電 腦間同時遊玩的串聯功能、AI 遊玩的功能實現),再再證明修課學生透過專案的考驗,順 利推動各項團隊協作活動,並呈現亮眼的結果。 但同時我們也遇到研究上的限制:願意簽署參與者同意書的學生,大多為順利找到 組員完成分組的學生,僅有一位學生是單獨一人完成專案開發,此結果讓我們無法比較分 組與未分組的學生,在期末專案的表現是否有明顯差異。 二、參考文獻 1. 教育部國民及學前教育署, “十二年國民基本教育課程綱要-國民中小學暨普通型高級 中等學校 科技領域”, 107.09. (引述自 https://www.k12ea.gov.tw/files/class_schema/課綱 /13-科技/13-1/十二年國民基本教育課程綱要國民中學暨普通型高級中等學校─科技領 域.pdf, 最近一次引述 109/09/20) 2. 大學招生委員會聯合會,http://www.jbcrc.edu.tw/
3. Robert Kerbs, “Student teamwork: A capstone course in game programming”, 37th Annual Frontiers In Education Conference - Global Engineering: Knowledge Without Borders, Opportunities Without Passports, 2007
4. Jesús M. Gómez-de-Gabriel, Anthony Mandow, Jesús Fernández-Lozano, and Alfonso J. García-Cerezo, “Using LEGO NXT Mobile Robots with LabVIEW for Undergraduate Courses on Mechatronics”, IEEE Transactions on Educations, 54(1):41 – 47, 2011.
三、附件
附件一:
Homework I-Calculator
發佈日期:
2019/09/30
繳交日期:
2019/10/14
繳交方式:上傳至
E3 (LabVIEW
原始程式碼),嚴禁屍體、複製,違者-40%;
需求描述:
參考一般計算機來畫面與功能,設計可在 LabVIEW 環境下的計算機,其功能: 1. Front Panel: 甲、 顯示元:(5%)可顯示按鍵功能啟動後所顯示的數值、運算元、括號等功能; 乙、 顯示元:(5%)可顯示目前系統時間; 丙、 顯示元:(5%)倘若可行,請顯示計算機已執行時間,以利後續計費; 丁、 控制元:(5%)可採用按鍵方式來輸入數值,並顯示在上述顯示元內; 戊、 控制元:(5%)可採用按鍵方式來輸入四則運算元(加減乘除);(5%)倘若可行,則 可顯示在上述顯示元內; 己、 控制元:(5%)按壓 “=”鍵時,則須加註顯示結果;(5%)倘若可行,則可將“=”顯示 在上述顯示元內,並且顯示計算後的結果; 庚、 控制元:(5%)清除前項輸入; 辛、 控制元:(5%)清除全數的輸入;(5%)倘若可行,在清除前,須出現確認訊息; 壬、 控制元:(5%)可停止此計算機! 癸、 其他功能:(5%)請設計運算結果儲存功能,可保留兩個;另外,若出現(5%)不合 理的輸入、或者(5%)不合理的運算表達式,請出現提示訊息,並且表述無法計 算。2. Block Diagram: 請依據上述進行設計,並加註解;(5%)delay time 至少 200 ms; 3. 加分:1) (5%)可在Front Panel 進行佈置與配色;2) (5%)Block Diagram 可增設注 解;3) (5%)可採用 “七段顯示器” 模式來設計運算結果顯示元;4) (5%)其他加分
程式功能
(參考):
0~9 數 字 + “.” 可顯示0~9 的數字和小數點 加減乘除 可進行基本四則運算 Sqrt 可開根號 ( ) 可在括號內進行運算 +/- 將顯示幕數字變成負數,再按一次則將顯示幕上的負數數字變成正數。 1/x 將數值做倒數運算後顯示。若輸入為0 時,則顯示錯誤訊息。 Backspace 清除顯示幕上的數值的最右邊1 個 = 執行計算C、CE 能歸零,顯示幕顯示數值 0;(C 這個按鍵會清除顯示幕的數值和錯誤訊 息,同時也把所有已按下的計算功能清除;CE 這個按鍵則只會清除顯 示幕的數值和錯誤訊息,不會把已按下的計算功能清除。) 錯誤訊息 會顯示Error (EX:除以 0)