• 沒有找到結果。

從程式設計觀念至程式設計實作之教學研究

N/A
N/A
Protected

Academic year: 2021

Share "從程式設計觀念至程式設計實作之教學研究"

Copied!
130
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授:李忠謀博士. 從程式設計觀念至程式設計實作之教學研究 Research on Learning to Program: from Concepts to Implementation. 研究生:林依潔 撰 中華民國一零六年四月.

(2) 摘 要 從程式設計觀念至程式設計實作之教學研究 林依潔. 本研究提出一個「從程式設計觀念至程式設計實作」之教學策略,試圖探討程式設 計初學者在使用視覺化程式平台學習程式設計的觀念之後,能否在進一步學習資訊科學 高階程式語言(如 C、C++、Java 等)的實作上有良好的學習成效。我們以新北市某高 中學生共 120 人為研究範圍,針對程式設計初學者研擬教學策略並以實驗的方式來進行。 本研究將學生分為四個組別:採用從程式設計觀念至程式設計實作之教學策略,並變化 其培養程式觀念時間長短的實驗組一、實驗組二以及實驗組三,與使用現行 C 語言教學 模式的控制組。於課程結束後分析學生之學習成效和對運算思維能力的影響,同時也針 對參與研究的教師、學生進行訪談與問卷實施,以深入瞭解師生的看法。 經研究結果發現,程式設計初學者在透過從程式設計觀念至程式設計實作之教學策 略的培養後,對於程式設計的觀念與學習興趣能有所提升。我們得出以下結論: (1)程 式設計初學者若在實驗組的教學策略培養之下,於程式設計的觀念測驗表現較佳;(2) 若使用足夠的時間使用視覺化程式設計,對於運算思維能力將有正向的影響; (3)學生 在實驗組教學策略下的學習興趣較高。. 關鍵字:程式設計、視覺化程式設計、程式設計教學策略. i.

(3) ABSTRACT Research on Learning to Program: from Concepts to Implementation by Lin, Yi-Chieh. This research proposed a multi-stage model for teaching and learning of computer programming in school setting. The research hypothesis was that by first learning programming concepts via visual programming tools (such as Blockly or Scratch) before learning the syntax and programming in C/C++, can enhance the learning outcome. Three slightly different instruction approaches were experiemented in this study. Four classes with 120 students studying at a New Taipei city high school participated in this study. The four classes were randomly designated as the control group and experimental group I, II or III. Data collected for analysis include midterm and final exam grades, post-experiment questionnaire, and the computational thinking pre- and post-tests. The experimental results showed that students in the experimental groups had better programming concepts than the control group. Furthermore, experimental group students improved their computational thinking skills more so than the control group. Finally, the experimental group students also exhibited higher motivation and participation in class.. Keywords: programming, visual programming language, programming instruction strategy.. ii.

(4) 謹獻給我最親愛的家人. iii.

(5) 誌 謝 漫漫長路上,因為有許多人的幫助我才能走到這裡。 首先要感謝指導教授李老師忠謀,從老師身上不只學到了如何做研究、更學到了如 何把事情做好做滿的精神。非常謝謝您耐心的教導、每週嚴格督促我們研究的進度,在 我快放棄畢業時依然不放棄我。 謝謝新店高中的凌倩老師,整整一學年的時間,總不厭其煩地協助我實驗的進行, 一再地配合我並抽空與我討論實驗的細節、給予我寶貴的建議。謝謝基隆高中的建華老 師細心地幫我執行實驗,並在每週的會議上給了我許多實質上的幫助。謝謝內湖高中的 玗貞老師,在暑假時協助我試實驗的進行,且不時與我討論研究結果。若沒有您們的幫 忙,我也不可能順利地畢業,老師們辛苦了! 謝謝在除夕前一天來幫我口試並給予鼓勵的凌倩老師和育慈老師;謝謝為了讓我畢 業,幫忙處理一大堆簽案還要在小年夜上班的香玲;謝謝在同一條船上的互相幫忙的維 琳與佳宜,我永遠不會忘記每週五一起的會議、一起找 paper、一起修課、一起做報告; 謝謝總是即時給予救援、並耐心為我解決問題的逸禮和盈君;謝謝當時的溫馨室友們, 宇珊、育君、蕙欣;謝謝晟麟、信實、子婷、奕凌學長姐的陪伴與提攜;謝謝帶給實驗 室溫暖與歡笑的高梵、晏誠;謝謝在我小年夜口試時來幫忙記錄的恩萱、雅婷;謝謝提 供我住宿還能享受美食的怡慧、小媛;謝謝在網頁上給予指導的柏先學長;謝謝竹女的 實習好夥伴們欣樺、雨倫、彥婷、宇涵、季芳、宛宜、于晴給予我鼓勵與支持,也謝謝 阿明、得聖、夢凡、小雞給予我在統計分析、撰寫論文與口試投影片上的協助;謝謝建 國中學的繪閔老師與新竹女中的玉楓老師在我迷惘時給予我溫暖的建議。研究所的生涯 因為有了你們,使我的每一分、每一秒都很美好。另外,一定要謝謝我親愛的十年好友 思淇,不僅提供我舒適的住宿環境,在我低潮時更給予我滿滿的鼓勵與關心,有妳真好! 最後,謹獻給我摯愛的家人,因為有你們的支持,我才能無後顧之憂地完成求學生 涯。謝謝你們,爸爸媽媽我愛您!也要謝謝可愛的亮亮,你的笑容總讓我的煩惱與壓力 煙消雲散。. 林依潔 謹誌 106 年 4 月 iv.

(6) 目 錄 表目錄 ................................................................................................................................................... vii 圖目錄 ..................................................................................................................................................... x 第一章 緒論 ........................................................................................................................................... 1 第一節. 研究背景 ........................................................................................................................... 1. 第二節. 研究目的與問題 ............................................................................................................... 2. 第三節. 研究範圍 ........................................................................................................................... 3. 第四節. 論文架構 ........................................................................................................................... 3. 第二章 文獻探討 ................................................................................................................................... 5 第一節. 高中生程式設計教學之背景與概況 ............................................................................... 5. 第二節. 運算思維 ........................................................................................................................... 7. 第三節. 視覺化程式設計 ............................................................................................................. 12. 第四節. 總結 ................................................................................................................................. 13. 第三章 研究方法 ................................................................................................................................. 15 第一節. 從程式設計觀念至程式設計實作之教學策略 ............................................................. 15. 第二節. 研究規畫與流程 ............................................................................................................. 24. 第四章 研究結果與分析 ..................................................................................................................... 33 第一節. 研究對象背景分析 ......................................................................................................... 33. 第二節. 程式設計初學者之學習成效分析 ................................................................................. 34. 第三節. 教學策略對於運算思維之影響分析 ............................................................................. 54. 第四節. 程式設計初學者對於教學策略的看法與比較 ............................................................. 57. 第五節. 教師對於課程實施之不同面向分析 ............................................................................. 64. 第六節. 綜合討論與分析 ............................................................................................................. 66. 第五章 結論與未來展望 ..................................................................................................................... 67 第一節. 結論 ................................................................................................................................. 67. 第二節. 未來展望 ......................................................................................................................... 68. 附錄 ....................................................................................................................................................... 69 附錄一. CTHINKING 平台使用手冊 ............................................................................................. 69. 附錄二. 第一階段測驗 ................................................................................................................. 79. 附錄三. 第二階段測驗 ................................................................................................................. 84 v.

(7) 附錄四. 第三階段測驗 ................................................................................................................. 85. 附錄五. 第四階段程式設計實作測驗 ......................................................................................... 86. 附錄六. 第四階段程式設計觀念測驗 ......................................................................................... 90. 附錄七. 課前問卷 ......................................................................................................................... 94. 附錄八. 課後問卷(實驗組二) ................................................................................................. 97. 附錄九. 課堂觀察表 ................................................................................................................... 105. 附錄十. 訪談大綱 ....................................................................................................................... 107. 附錄十一. 各組別課程進度表 ................................................................................................... 109. 參考文獻 ............................................................................................................................................. 115. vi.

(8) 表目錄 表 2-1 運算思維內涵於資訊科學領域之應用範例................................................................. 9 表 3-1 CThinking 簡易題題目說明 ........................................................................................ 19 表 3-2 CThinking 知識題題目說明 ........................................................................................ 22 表 3-3 C 語言練習題目說明 ................................................................................................... 23 表 3-4 程式設計觀念測驗命題雙向細目表........................................................................... 26 表 3-5 程式設計實作測驗命題雙向細目表 .......................................................................... 27 表 4-1 實驗各組與控制組之背景資料................................................................................... 33 表 4-2 程式設計觀念測驗之描述性統計............................................................................... 34 表 4-3 程式設計觀念測驗之變異數分析............................................................................... 34 表 4-4 程式觀念測驗之 LSD 事後比較 ................................................................................. 35 表 4-5 程式設計觀念測驗試題難度與鑑別度分析............................................................... 36 表 4-6 鑑別度的評鑑標準....................................................................................................... 36 表 4-7 程式設計觀念測驗(刪除題號 3)之描述性統計.................................................... 37 表 4-8 程式設計觀念測驗(刪除題號 3)之變異數分析.................................................... 37 表 4-9 程式觀念測驗(刪除題號 3)之 LSD 事後比較 ...................................................... 37 表 4-10 程式設計實作測驗評分標準..................................................................................... 38 表 4-11 評分者間之描述性統計量表 ..................................................................................... 39 表 4-12 評分者信度分析......................................................................................................... 39 表 4-13 程式設計實作測驗總分之描述性統計量表............................................................. 40 表 4-14 程式設計實作測驗總分之變異數分析..................................................................... 40 表 4-15 程式設計實作測驗 Q1 之描述性統計量表 .............................................................. 41 表 4-16 程式設計實作測驗 Q1 之變異數分析 ...................................................................... 41 表 4-17 程式設計實作測驗 Q2 之描述性統計量表 .............................................................. 41 表 4-18 程式設計實作測驗 Q2 之變異數分析 ...................................................................... 42 表 4-19 程式設計實作測驗 Q3 之描述性統計量表 .............................................................. 42 表 4-20 程式設計實作測驗 Q3 之變異數分析 ...................................................................... 42 表 4-21 程式設計實作測驗 Q4 之描述性統計量表 .............................................................. 43 表 4-22 程式設計實作測驗 Q4 之變異數分析 ...................................................................... 43 表 4-23 程式設計實作測驗 Q5 之描述性統計量表 .............................................................. 43 表 4-24 程式設計實作測驗 Q5 之變異數分析 ...................................................................... 44 表 4-25 程式設計實作測驗語法面向之描述性統計量表..................................................... 44 vii.

(9) 表 4-26 程式設計實作測驗語法面向之變異數分析............................................................. 45 表 4-27 程式設計實作測驗邏輯面向之描述性統計量表..................................................... 45 表 4-28 程式設計實作測驗邏輯面向之變異數分析............................................................. 45 表 4-29 程式設計實作測驗正確性面向之描述性統計量表................................................. 46 表 4-30 程式設計實作測驗正確性面向之變異數分析......................................................... 46 表 4-31 程式設計實作測驗完成度面向之描述性統計量表................................................. 46 表 4-32 程式設計實作測驗完成度面向之變異數分析......................................................... 47 表 4-33 實驗組一程式設計觀念測驗之描述性統計............................................................. 48 表 4-34 實驗組一程式設計觀念測驗之獨立樣本 t 檢定 ..................................................... 48 表 4-35 實驗組二程式設計觀念測驗之描述性統計............................................................. 48 表 4-36 實驗組二程式設計觀念測驗之獨立樣本 t 檢定 ..................................................... 49 表 4-37 實驗組三程式設計觀念測驗之描述性統計............................................................. 49 表 4-38 實驗組三程式設計觀念測驗之獨立樣本 t 檢定 ..................................................... 49 表 4-39 控制組程式設計觀念測驗之描述性統計................................................................. 50 表 4-40 控制組程式設計觀念測驗之獨立樣本 t 檢定 ......................................................... 50 表 4-41 實驗組一程式設計實作測驗之描述性統計............................................................. 51 表 4-42 實驗組一程式設計實作測驗之獨立樣本 t 檢定 ..................................................... 51 表 4-43 實驗組二程式設計實作測驗之描述性統計............................................................. 52 表 4-44 實驗組二程式設計實作測驗之獨立樣本 t 檢定 ..................................................... 52 表 4-45 實驗組三程式設計實作測驗之描述性統計............................................................. 52 表 4-46 實驗組三程式設計實作測驗之獨立樣本 t 檢定 ..................................................... 52 表 4-47 控制組程式設計實作測驗之描述性統計................................................................. 53 表 4-48 控制組程式設計實作測驗之獨立樣本 t 檢定 ......................................................... 53 表 4-49 國際運算思維測驗之描述性統計............................................................................. 54 表 4-50 國際運算思維測驗之成對樣本 t 檢定 ..................................................................... 54 表 4-51 變異數同質性考驗..................................................................................................... 55 表 4-52 國際運算思維測驗研究單因子共變數分析摘要表................................................. 56 表 4-53 國際運算思維測驗之 LSD 事後比較 ....................................................................... 56 表 4-54 實驗組一學生的學習興趣......................................................................................... 57 表 4-55 實驗組二學生的學習興趣......................................................................................... 58 表 4-56 實驗組三學生的學習興趣......................................................................................... 58 表 4-57 控制組學生的學習興趣............................................................................................. 59 表 4-58 實驗組一學生的學習感想......................................................................................... 61 viii.

(10) 表 4-59 實驗組二學生的學習感想......................................................................................... 61 表 4-60 實驗組三學生的學習感想......................................................................................... 61 表 4-61 控制組學生的學習感想............................................................................................. 61. ix.

(11) 圖目錄 圖 2-1 CSTA 提出資訊科學課程應包含的五大面向 .............................................................. 6 圖 2-2 運算思維能力、程式設計活動以及布魯姆的認知領域教育目標 三面向間之模型 .......................................................................................................................... 11 圖 3-1 從程式設計觀念至程式設計實作之分教學流程....................................................... 16 圖 3-2 code.org 操作畫面 ........................................................................................................ 17 圖 3-3「高速公路計程收費」第 3 子題畫面........................................................................ 19 圖 3-4「網路銀行妙絕招」畫面............................................................................................ 21 圖 3-5 學生問卷一覽表........................................................................................................... 28 圖 3-6 各組別之教學流程....................................................................................................... 31 圖 3-7 實驗步驟流程圖........................................................................................................... 32 圖 4-1 各組學習興趣(課後問卷第 1 題)長條圖............................................................... 59 圖 4-2 各組學習興趣(課後問卷第 3 題)長條圖............................................................... 60 圖 4-3 各組學習感想(課後問卷第 30 題)長條圖............................................................. 62 圖 4-4 各組學習感想(課後問卷第 30 題)長條圖............................................................. 63. x.

(12) 第1章. 第一章 緒論 第一節 研究背景. 在這資訊蓬勃發展的時代,培養國民的資訊科技知能已然成為世界各國教育的新趨 勢。資訊課程於各先進國家的中小學教育中普及設立,例如美國、英國、德國、荷蘭、 日本、中國大陸、香港、澳洲及以色列等等(國家教育研究院,2013),臺灣教育部目 前推動的十二年國民基本教育也擬於 107 資訊科技科新課綱中納入程式設計課程(教育 部,2014a) ,資訊教學儼然成為教育變革的新局面。國家教育研究院(2013)在科技領 域綱要內容前導研究報告草案中指出,未來的課程綱要修訂須著重於「運算思維」 (Computational thinking) 、資訊科技、實作能力以及其他關鍵能力的培養。而為因應十 二年國教課程之實施,資訊國力發展論壇(教育部,2016)建議教育部與教師應發展前 瞻性教材、多元有效之教學策略以及培育相關的師資。 根據研究指出,運算思維能力與程式設計活動有其相關性,學生透過程式設計的學 習,能夠幫助培養運算思維的內涵,例如分解、一般化等(C. C. Selby, 2012)。於 2012 年,Warner 等人認為視覺化程式設計可以培養學生的運算思維能力(Werner, Denner, Campe, & Kawamoto, 2012),且若使用視覺化程式設計教學,則能夠幫助程式設計初學 者建立「問題解決」(Problem-solving)的策略(Chao, 2016)。目前已有相當多元、以 提高學生學習動機為目的的「視覺化程式設計語言」 (Visual programming language, VPL) 平台供學生學習,例如,由 MIT 開發的 Scratch 程式語言平台(http://scartch.mit.edu/) (Resnick et al., 2009)、Greenfoot(http://www.greenfoot.org)(Kölling, 2010)、Alice (http://www.alice.org/)以及 code.org(https://code.org/)(Code.org, 2016)等。 Malan 等人於研究中提及,使用視覺化程式設計 Scratch 不僅能夠提高程式設計初 學者的學習動機,也能夠幫助熟悉程式設計的語法與架構。但在研究中同時指出,視覺 化程式設計確實能夠幫助理解程式的觀念,卻只是在玩遊戲,而非真的在寫程式(Malan & Leitner, 2007) 。那麼學生在學習視覺化程式設計後,是否能更進一步於 C/C++程式設 計時有良好的學習成效呢?目前鮮少研究提及經過視覺化程式設計的學習後,學生在 C/C++程式設計的成效為何。. 1.

(13) 因此本研究提出從程式設計觀念至程式設計實作之教學策略,實際進行實驗並探討 其教學成效以及對運算思維的影響。該教學策略以分階段的方式進行:首先讓學生熟悉 視覺化程式設計平台的基本操作,接著以貼近生活及學科的視覺化程式設計平台培養程 式設計觀念、打好學習 C/C++程式設計的基礎,並期望學生進而能夠順利銜接上 C/C++ 程式設計的階段,以培養學生問題解決與程式設計實作能力,且在未來將其能力應用於 解決真實世界中的問題。. 第二節 研究目的與問題 本研究提出「從程式設計觀念至程式設計實作」之教學策略(此教學策略為一套完 整的程式設計教學方法,包含教學流程、課程設計、教學工具、評量方式等),實際進 行實驗來探討程式設計初學者在使用視覺化程式平台學習程式設計的觀念之後,能否在 進一步學習資訊科學高階程式語言(如 C、C++、Java 等)的實作上有良好的學習成效。 我們將針對程式設計初學者研擬出程式設計之教學策略後,以是否使用該教學策略、以 及變化其培養程式觀念時間之長短將學生分為四個組別進行實驗,含實驗組一、實驗組 二、實驗組三與控制組。觀察不同組別的學生在學習程式設計觀念與實作上之過程、和 對運算思維能力的影響,同時暸解學生的學習成效與感受,並從實務性的觀點來探討此 程式設計教學策略的可行性與接受度為何。 本研究的目的為:程式設計初學者在使用視覺化程式平台學習程式設計的觀念之後, 能否在進一步學習資訊科學高階程式語言(如 C、C++、Java 等)的實作上有良好的學 習成效。 而本研究的問題為:程式設計初學者於接受本研究之教學策略後, 一、. 是否能提升其學習成效?. 二、. 對於運算思維能力是否有正向的影響?. 三、. 是否能提升其學習興趣?. 2.

(14) 第三節 研究範圍 本研究範圍界定如下: 一、本研究以程式設計初學者為研究對象,研究樣本為新北市某高中二年級理組學 生,隨機選擇 4 個班級,每班 30 人,一共 120 人。 二、程式設計教學課程內容主要為基礎觀念、流程控制和陣列。. 第四節 論文架構 本研究已在第一章闡明研究動機與目的;並將於第二章針對高中生程式設計之現況、 視覺化程式設計與運算思維相關研究進行探討;接著在第三章提出新的程式設計教學策 略,包含了相關理論依據、進行方式與內容等;在第四章中整理並分析此教學策略的結 果;最後於第五章提出本研究的結論與未來研究發展的方向。. 3.

(15) 4.

(16) 第2章. 第二章 文獻探討. 本章將介紹目前高中生程式設計教學之現況、視覺化程式設計與運算思維的相關研 究。首先,我們探討目前高中生程式設計教學之背景與概況;接著,參考學者們對於運 算思維的定義與程式設計教學相關之議題;以及分析視覺化程式設計在教學上所帶來的 幫助;最後進行總結與整理,以作為我們發展從程式設計觀念至程式設計實作之教學策 略的基礎。. 第一節 高中生程式設計教學之背景與概況 一、 先進國家資訊課程概況 因應資訊時代的來臨,資訊課程於各先進國家的中小學教育中普及設立,培養國民 的資訊科技知能已成為世界各國教育的新趨勢,例如美國、英國、德國、荷蘭、日本、 中國大陸、香港、澳洲及以色列等等(國家教育研究院,2013)。其中,美國電腦科學 教師協會(Computer Science Teachers Association, CSTA)提出的資訊科學課程應包含五 大面向 (如圖 2-1) ,分別為: 「運算思維」 (Computational thinking) 、 「合作」 (Collaboration) 、 「運算實作與程式設計」(Computing Practice and Programming)、「電腦與通訊設備」 (Computers and Communications Devices)以及「社會、全球與倫理衝擊」 (Community Global, and Ethical Impacts)(CSTA, 2011)。而英國於 2013 年公佈的課程綱要中認為學 生在電腦課程上所需要學習的目標包含: (1)理解並應用電腦科學的基本觀念,如抽象 化、邏輯、演算法以及資料表示法; (2)能使用電腦的語彙來分析問題,並具有充份撰 寫程式以解決問題的經驗; (3)能評估且應用資訊科技,包含全新的或是不熟悉的科技 來解決問題; (4)成為負責任、有能力、有自信且有創造力的資訊科技使用者(DOEE, 2013)。德國與荷蘭亦在資訊科學課程標準中指出,學生應全面理解與應用資訊科技, 而非僅止於培養資訊與通訊技術的技能(林育慈、吳正己, 2016)。Google 也於 2015 年 開發一系列的運算思維教材供教學者使用,其中定義了運算思維以及它所應包含之元素 (Google for Education, 2015)。. 5.

(17) 運算思維. 社會、全球 與倫理衝擊. 合作. 電腦. 運算實作. 與通訊設備. 與程式設計. 圖 2-1 CSTA 提出資訊科學課程應包含的五大面向 資料來源:CSTA K–12 computer science standards.. 二、 我國資訊課程概況 回顧國內高中生程式設計的學習情況,過去我國資訊教育僅在高中職的資訊科技領 域有必修二學分的課程,國中小則以資訊教育重大議題呈現於課綱中,來強調資訊教育 融入各科的學習(國家教育研究院,2013) 。於 2013 年,國家教育研究院(2013)在科 技領域綱要內容前導研究報告草案中建議,未來的課程綱要修訂須著重於運算思維、資 訊科技、實作能力以及其他關鍵能力的培養,亦規劃未來的中學生需學會「演算法」 、 「程 式設計」 、 「系統平台」 、 「資料表示、處理及分析」 、 「資訊科技應用」 、 「資訊科技與人類 社會」等 6 種數位課程(教育部,2014a,2014b)。而即將實施的十二年國民基本教育 課綱中,國、高中將新增「資訊科技」科目,各為 6、2 個學分,並在資訊科技課程中 將課程目標訂為: (1)能理解資訊系統之運作原理、應用及發展; (2)能應用運算的原 理與方法來解決問題; (3)能整合運算思維與資訊系統於創作分享中; (4)培養數位公 民素養之知能。而高中階段資訊科技的教育目標界定為: (1)學習資訊科學的觀念; (2) 強調資訊科學與科技的關聯; (3)培養邏輯思維、運算思維; (4)實踐 STEM(Science, Technology, Engineering, and Mathematics)的理念。Computing at School(2012)指出 STEM 與資訊科學有相同的特性如下:有其理論基礎與數理基礎,並涉及邏輯與推理的應用; 包含了科學實驗與測量的方法;涉及到設計、架構與測試;需要理解並應用於各種技術 當中。此外,學生能將電腦科學中的規則應用於解決 STEM 技能與知識的問題。在 STEM 的潮流中,運算思維成為了科學、科技、工程與數學之間的重要媒介(林育慈、吳正己, 2016) 。 6.

(18) 雖然過去在 98 課綱已著重於培養學生的邏輯思維與問題解決之高階能力,但卻因 泛論性的描述而使這些高階能力與資訊科學的相關性不甚明確,教師無法得到確切的教 材設計指引(林育慈、吳正己,2016)。而大部分能夠取得的教學資源,在程式設計的 練習上較為不足,也沒有幫助教學運算思維內涵並發展其技巧的練習與資源(教育部, 2016)。因此,為因應十二年國教課程之實施,資訊國力發展論壇(教育部,2016)建 議教師應發展前瞻性教材、多元有效之教學策略以及培育相關的師資,並且在推動措施 中建議應利用有趣且引導運算思維之方式以呈現教學內容、落實 STEM 之教學模式等。 在資訊化的時代,運算已與人們的日常生活密不可分,而運算思維是在利用資訊科 技有效地解決問題時,能夠定義問題並流程化地產出解答的思考歷程。於 STEM 的教育 熱潮中,運算思維已成為科學、科技、工程以及數學的重要角色。欲增強學生邏輯思維、 問題解決的能力,運算思維的培養尤其重要(林育慈、吳正己,2016)。而本研究將參 考上述的課程目標與建議,以發展從程式設計觀念至程式設計實作的教學策略之相關教 學教材。. 第二節 運算思維 一、 運算思維的定義與內涵 運算思維逐漸成為資訊科學教育之重要觀念,此由 Carnegie Mellon University (CMU) 之電腦科學學者 Wing 於 2006 年正式提出。她指出運算思維是以電腦科學的基本觀念來 解決問題、設計系統、以及瞭解人類的行為。運算思維是每個人應具備、非專屬於資訊 科學家之基本能力,它擁有以下特點(1)是種觀念,而非撰寫程式; (2)是種基本的, 而非死板的技能; (3)是關於人類解決問題的方法,而非電腦的; (4)結合了數學以及 工程思維; (5)是種構想,而非作品; (6)能適用於每個人、每個地方(Wing, 2006) 。 Wing 於 2008 年進一步認為運算思維是一種分析式的思維,包含了以數學思維來解決問 題、以工程思維來設計與評估複雜的系統、以科學思維來理解人類的思想與行為(Wing, 2008) 。Wing 並於 2011 年將運算思維定義為架構及解決問題之思考流程,將其以訊息 處理者可以有效執行的形式呈現(Wing, 2011) 。而 Aho 於 2012 年指出運算思維是架構 問題之想法與流程,且其解法可運用步驟化及演算法表示;而最重要的部分為找出制定. 7.

(19) 問題和解決方法之合適的模型(Aho, 2012) ;Syslo 定義運算思維為一種思考的模式,此 模式能夠提供推理架構與問題解決之方法(Sysło, 2015)。 Google 在 Exploring Computational Thinking 網站中認為運算思維是一系列包含許多 特性的問題解決歷程,例如:邏輯化進行排序與分析資料、循序地產出問題解決方法等, 它能適用於任何一門學科(Google for Education, 2015)。「美國電腦科學教師協會」 (Computer Science Teachers Association, CSTA)定義運算思維為使用電腦可執行之問題 解決策略,它包含了抽象化、遞迴、重複結構等觀念,以及分析與處理資料、製作虛擬 或實際作品的能力。CSTA 並明確指出資訊科學課程的五大面向為運算思維、合作學習、 運算實作與程式設計、電腦與溝通設備以及全球化與道德倫理議題(CSTA, 2011) 。CSTA 並與「美國國際教育科技協會」(The International Society for Technology in Education, ISTE)在 2011 年共同認為運算思維是在制定問題後,能利用電腦或其他工具協助來解 決問題,並有以下特性: (1)邏輯化地組織與分析資料; (2)透過「抽象化」 (Abstraction) 來表示資料; (3)透過演算法思維將問題解決策略自動化; (4)找尋、分析與執行最有 效之問題解決方案;(5)將問題解決之過程「一般化」(Generalization)以適用於各種 問題中(ISTE, 2011)。 Lu 與 Fletcher 指出運算思維的四大要點為: (1)以電腦科學之基本觀念來解決問題 與設計系統的方法; (2)以不同程度的抽象化能力有效地理解問題與發展問題解決的策 略; (3)透過演算法思維與數理觀念來發展有效率、公平且安全的解題方案; (4)瞭解 其解題方案在效能、經濟以及社會上之範圍與限制(Lu & Fletcher, 2009)。Barr 與 Stephenson 在運算思維的能力中建議應包含: (1)能使用抽象化、自動化、演算法、資 料蒐集與分析以設計解決問題之方法; (2)實行適當的設計方案; (3)測試與偵錯; (4) 模擬與系統分析; (5)執行操作與溝通,並且能自我省思; (6)運用專有名詞; (7)理 解抽象化的意義並達到不同程度的抽象化能力; (8)在原則中探索、激發創意; (9)小 組的問題與解決及(10)能運用多種的學習策略。表 2-1 為 Barr 與 Stephenson 為不同學 科所提供之運算思維應用範例,本章節僅列出與資訊科學相關之部分(Barr & Stephenson, 2011) 。在 Computing at School Working Group 中提及運算思維是進行邏輯思考、演算法 思維以及遞迴和抽象化的能力,並提出其要素為抽象化、 「模式化」 (Modeling) 、 「分解」 (Decomposition)與一般化(Computing at School Working Group, 2012) 。Grover 與 Pea 認為運算思維使我們能持有電腦科學家在面對問題時的思維模式,目前最廣為接受之運 算思維內涵為:模式一般化與抽象化(包含模式化及「模擬」(Simulations))、系統化 8.

(20) 處理資訊、符號系統及表示方法、流程控制與演算法觀念、結構化分解問題(「模組化」 (Modularizing))、重複和遞迴以及平行化思考、條件邏輯、效率與執行的限制、與除 錯和系統性偵測錯誤(Grover & Pea, 2013)。而在本國 107 資訊科技科新課綱中提出學 生應能透過具備之運算思維能力來分析問題、發展解題方式,並進行有效的決策(教育 部,2014a)。 表 2-1 運算思維內涵於資訊科學領域之應用範例 運算思維內涵. 資訊科學領域應用範例 程序化封裝經常使用到的指令。. 抽象化 使用函數;使用條件敘述、迴圈、遞迴等。 定義物件與方法。 分解 定義 main 與 functions。 資料表示. 使用資料結構,如:陣列(array)、鏈結串列(linked list)、 堆疊(stack) 、佇列(Queue) 、圖(graph) 、雜湊表(hash table)等。. 模式化與模擬. 使用動畫來呈現演算法或參數掃值(parameter sweeping)。 學習經典的演算法。. 演算法思維 針對某一個領域的問題進行演算法實作。 資料來源:Barr, V., & Stephenson, C. (2011). Bringing computational thinking to K-12: what is Involved and what is the role of the computer science education community? ACM Inroads, 2(1), 48-54.. 許多學者提出運算思維應有之內涵,其中多數認為應包括抽象化、分解、模式化與 模擬、歸納與演算法思維等(Barr & Stephenson, 2011; CSTA, 2011; Google for Education, 2015; Grover & Pea, 2013; C. Selby & Woollard, 2013; Wing, 2006) 。而 Selby 於 2013 年整 理各家文獻後,認為運算思維的內涵應為:抽象化(Abstraction) 、分解(Decomposition)、 演算法則(Algorithmic thinking) 、 「分析」 (Evaluation) 、歸納與一般化(Generalization) (C. Selby & Woollard, 2013) 。本研究將以 Selby 提出之五大運算思維內涵為主軸,並定 義符合該項目之解釋: 1.. 抽象化:能擷取問題的關鍵,並運用於適當的資料表示方法。. 9.

(21) 2.. 分解:能將複雜的問題再形成為足以解決的小問題。. 3.. 演算法則:能指出一系列問題解決的步驟。. 4.. 分析:能分析問題解決策略的效率與效能。. 5.. 歸納與一般化:能從問題解決之模式中建立模型,並套用於其他的問題上。. 二、 運算思維與程式設計教學之相關議題 美國總統歐巴馬於 2014 年曾親自宣導「一小時寫程式」(Hour of code)(Code.org, 2016) ,新加坡總理李顯龍也於 2015 年公開自己撰寫之數獨解題程式,而臺灣總統蔡英 文於 2016 年受邀出席「『電腦科學教育週:一小時玩程式』啟動活動」,表示要讓寫程 式成為全民運動,由此可見程式設計教學與運算思維培養之重要性。Selby 認為運算思 維能力與程式設計活動有其相關性,學生透過程式設計的學習能夠幫助培養運算思維的 內涵,例如分解、一般化等(C. C. Selby, 2012)。Grover 與 Pea 指出程式設計是創作運 算成果的主要方式,學生透過程式設計的學習能夠建立運算思維中的認知任務、及擔任 培養運算思維能力的橋樑。由表 2-1 提出之運算思維內涵於資訊科學領域之應用範例中, 可以看出透過程式設計課程能夠幫助學生實踐運算思維之學習,例如:在實作條件敘述、 迴圈以及遞迴時,能夠培養抽象化的能力;定義物件與方法時能夠培養分解的能力;使 用資料結構時能夠培養資料表示的能力;學習經典演算法時能夠培養演算法思維的能力 (Grover & Pea, 2013)。 Lee 等人認為藉由程式設計的學習,能夠建立學生在模式化、設計與開發等之運算 思維能力(Lee et al., 2011)。而 Computing at School 提及程式設計為資訊課程的核心, 在撰寫程式的過程中,能激發創造力、邏輯思維、精確性、問題解決,並有助於培養學 生思考的技巧,程式設計亦能將抽象化的想法具體呈現(Computing at School Working Group, 2012)。在 CSTA 的課程中,藉由程式設計的教學,例如設計解題的演算法、定 義解題指令、分析指令、描述資料的表示、理解循序與重複的結構等,能幫助國高中學 生培養運算思維之能力(CSTA, 2011)。由此可知程式設計的教學在培養運算思維能力 中是不可或缺之方法要素。 Selby 則於 2012 年提出運算思維能力、程式設計活動以及布魯姆的認知領域教育目 標三面向間之模型(C. C. Selby, 2012) ,如圖 2-2,我們將根據 Selby 提出之模型,配合 運算思維能力、程式設計活動以及布魯姆的認知領域教育目標來開發適當、能培養運算 10.

(22) 思維與問題解決能力之教材。其中運算思維能力包含:分解、抽象化、歸納與一般化、 演算法設計、模式化與模擬;程式設計活動包含:合作學習與配對工作、角色扮演與肢 體動覺、拼圖與遊戲、找出錯誤、修正錯誤與發展系統;而布魯姆的認知領域教育目標 則有:知識、理解、應用、分析、綜合以及評鑑。. 運算思維能力. 分解. 抽象化. 歸納與 一般化. 演算法 設計. 模式化 與模擬. 程式設計活動 合作學習、 配對工作. 角色扮演、 肢體動覺. 拼圖與 遊戲. 找出錯誤. 修正錯誤、 發展系統. 布魯姆的認知領域教育目標. 知識. 理解. 應用. 分析. 綜合. 評鑑. 圖 2-2 運算思維能力、程式設計活動以及布魯姆的認知領域教育目標 三面向間之模型 資料來源:Selby, C. C. (2012). Promoting computational thinking with programming. Paper presented at the Proceedings of the 7th Workshop in Primary and Secondary Computing Education.. 11.

(23) 第三節 視覺化程式設計 在 Wing 提出先培養學生運算思維能力之觀點後,學者們認為運算思維能力與程式 設計活動有其相關性,學生透過程式設計的學習,能夠幫助學生培養運算思維與問題解 決能力(Computing at School Working Group, 2012; Grover & Pea, 2013; Lee et al., 2011; C. C. Selby, 2012)。而有學者認為若以 C 語言作為初學者的第一個程式設計語言,學生將 會分心於 C 語言的細節與程式語言的除錯中,因爲 C 語言在編譯器的偵錯上有其限制, 且在撰寫 C 語言時除錯將是一大挑戰,減緩了學生程式設計觀念的學習成效(Johnson, L. F., 1995)。然而程式設計細節並非學生學習的重點,因此學者建議應採用「低門檻,高 極限」原則之學習工具,例如視覺化程式設計工具,讓學生不必藉由學習過多低階的技 巧後便能夠上手,進而著重於高階的思維能力(林育慈、吳正己,2016)。 視覺化程式設計廣泛被用於中小學,目前已有相當多元、以提高學生學習動機為目 的的視覺化程式設計語言平台供學生學習,例如,由 MIT 開發的 Scratch 程式語言平台 (http://scartch.mit.edu/)(Resnick et al., 2009)、Greenfoot(http://www.greenfoot.org) (Kölling, 2010) 、Alice(http://www.alice.org/)以及 code.org(https://code.org/) (Code.org, 2016)等。Werner 等人認為視覺化程式設計能夠幫助學生培養運算思維(Werner et al., 2012),且若使用視覺化程式語言教學,則可以幫助程式設計初學者建立問題解決的策 略。Chao 認為因為視覺化程式設計的環境提供了豐富可見的程式拼塊,能讓學生與程 式設計環境產生有意義的互動,進而提升運算思維策略以及問題解決能力;且與視覺化 程式設計環境互動較好之學生在開發有效的運算思維策略中,有著較佳的表現。藉由視 覺化程式設計中的元素,例如拖拉方式的拼塊來取代文字式的程式敘述,可以讓學生專 注於程式設計的邏輯與結構,並有效解決程式設計初學者在語法上的困難(Chao, 2016) 。 由此可見,學生能透過視覺化程式語言的撰寫來培養運算思維,且大多研究顯示均獲得 正向的學習成果(Brennan & Resnick, 2012; Chao, 2016; Werner et al., 2012)。 而 Malan 等人於研究中提及,使用視覺化程式設計 Scratch 不僅能夠提高初學者學 習動機,也能夠熟悉程式設計的語法架構。但也在研究中指出,視覺化程式設計確實能 夠幫助理解程式的觀念,卻只是在玩遊戲,而非真的在寫程式(Malan & Leitner, 2007) 。. 12.

(24) 本研究即在探討學生在使用視覺化程式設計後,是否能在進一步學習資訊科學高階程式 語言(如 C、C++、Java 等)並用以解決大型問題時,能有相同良好的學習成效。. 第四節 總結 綜合以上各學者之研究後,我們歸納以下幾點要素,用以作為研擬從程式設計觀念 至程式設計實作之教學策略的主要依據: 1.. 學生的學習目標應為: (1)學習資訊科學的觀念; (2)強調資訊科學與科技的關聯; (3)培養邏輯思維、運算思維。. 2.. 運算思維能力與程式設計活動有其相關性,學生透過程式設計的學習,能夠幫助學 生培養運算思維與問題解決能力。. 3.. 資訊教學教材應利用有趣且引導運算思維之方式來呈現教學內容。. 4.. 教導程式設計之學習工具應採用「低門檻,高極限」為原則,例如視覺化程式設計。. 5.. 有了視覺化程式語言工具將可以減輕一開始就被指令錯誤的挫折打擊,暫時先將指 令語法放一邊,等學生有了程式流程的觀念後,再來進行真實語言工具的使用。. 13.

(25) 14.

(26) 第3章. 第三章 研究方法. 本章以高中生為例,試圖改進傳統程式設計教學策略的缺點,以提升學生程式設計 之學習成效,並加以實作從程式設計觀念至程式設計實作之教學策略的理念。在第一節 中,我們先介紹「從程式設計觀念至程式設計實作」之教學策略;在第二節中,將說明 如何以實驗組與控制組的方式來驗證此從程式設計觀念至程式設計實作之教學策略。. 第一節 從程式設計觀念至程式設計實作 之教學策略 我們綜合第二章之要點,正式提出從程式設計觀念至程式設計實作之教學策略,該 教學策略之流程如圖 3-1,含有四個階段,分別為: 「第一階段:熟悉程式設計的觀念與 架構」 、 「第二階段:建立程式設計的流程與觀念」 、 「第三階段:培養程式設計的問題解 決能力」及「第四階段:以 C/C++培養問題解決的實作能力」。 學生首先透過 code.org(Code.org, 2016)來熟悉視覺化程式語言基本的動畫操作, 再透過以自行開發的 Blockly(Google for Education, 2011)視覺化程式設計平台(以後 簡稱 CThinking)讓學生藉由文字敘述生活化的題目來培養程式設計的流程與觀念,之 後同樣透過該平台將學科內容相結合,促進學生的問題解決能力,最後則使用 C/C++程 式設計來培養學生問題解決的實作能力。 而觀念(Concept)為具有主要屬性或特徵的同類事物,能經由符號、文字或比喻來對 所提出之相似項目作分類的個人知覺;而學習能培養觀念的形成,觀念的學習過程主要 是透過類化與辨別的交互作用,學習者能把對於具體事物的經驗,經抽象化而形成超越 具體對象的認識。觀念是學習知識、也是構成知識的基本單位,觀念也是形成原則的基 礎,透過觀念可以指引學生思考向度,如同網路組織般的澄清和擴張(張春興,1994)。. 一、 教學特性分析 為瞭解目前高中資訊科的教學特性,我們舉辦了多次的座談會、邀請兩位現職高中 資訊教師協助進行高中資訊科的教學特性的分析,座談會中我們綜合教師們的專業經驗 15.

(27) 來探討適合之程式設計教材。經討論之後,我們發現教師普遍認為程式設計初學者的學 習困難在於自行想出問題解決的策略以及語法的錯誤,此恰可作為程式設計教學的切入 點,即以適當之程式設計教學平台讓學生先專注於程式設計的邏輯與結構,再有效解決 程式設計初學者在語法上的困難。 而根據研究指出程式設計細節並非學生學習的重點,因此建議應採用「低門檻,高 極限」原則之學習工具,例如視覺化程式設計工具,讓學生不必藉由學習過多低階的技 巧後便能夠順利上手,進而著重於高階的思維能力(林育慈、吳正己,2016)。此部分 符合我們對程式設計教學工具的特性需求,因此我們決定開發一套視覺化程式設計教學 平台以作為本教學策略之工具,此教學策略流程與各階段教學工具分述如下。. 二、 教學流程與工具 本研究提出的教學策略含有四個階段,第一、第二、第三階段使用拼塊式程式設計 (視覺化程式語言) ,在第四階段則使用文字式程式設計(C/C++語言)其流程如下:. 第一階段. 第二階段. 第三階段. 第四階段. •熟悉程式設計 的觀念與架構. •建立程式設計 的流程與概念. •培養程式設計 的問題解決能力. •以C/C++培養問題 解決的實作能力. •簡易題 •去除動畫,文字 敘述題目. •與自然科學學科結 合之知識題(STEM) •去除動畫,文字敘 述題目. •第二、三階段之題目 •C語言之問題解決. 圖 3-1 從程式設計觀念至程式設計實作之分教學流程. 以下我們分別對各階段的教學內容與工具略作說明:. (一). 第一階段:熟悉程式設計的觀念與架構. 大部分的學生於此階段第一次接觸程式設計,因此本階段的學習目標為引發程式設 計初學者的學習興趣、熟悉視覺化程式設計的觀念與架構、培養學生的邏輯思維初探。 內容涵蓋基礎觀念、程序、條件、重複、模組化程式設計以及少部分的演算法,能使學 生打好基礎、專注於程式設計觀念與流程的養成;在另一方面也讓學生開始進行運算思 考的練習及感受完成「程式」的成就感。 16.

(28) 視覺化程式設計的環境提供了豐富可見的程式拼塊,能讓學生與程式設計環境產生 有意義的互動,進而提升運算思維策略以及問題解決能力。我們可藉由視覺化程式設計 中的元素,例如拖拉方式的拼塊來取代文字式的程式敘述,讓學生專注於程式設計的邏 輯與結構,並有效解決程式設計初學者在語法上的困難(Chao, 2016) 。在第一階段的熟 悉程式設計的觀念與架構中,我們選定 code.org 平台中速成課程所有的題目(Code.org, 2016)供實驗組一、二、三之學生練習。速成課程於 code.org 中的適合對象被界定為 10 至 18 歲,與目前高中生的年齡相符。在速成課程中含有 20 個小階段,其中有 11 個小 階段皆為影片內容、不用電腦操作的活動;另外的 9 個小階段則需要學生自行完成,每 一個小階段題目不等,最少 6 題,最多 20 題,一共有 98 個題目。 Code.org 為中文拼塊介面之視覺化程式設計平台,並且僅提供學生解決該問題時會 被用到的拼塊,此特性能夠使學生專注於需要學習到的觀念。而介面左側提供了吸引人 的動畫與圖示,能幫助學生能快速觀看執行結果(詳見圖 3-2) 。本研究以 code.org 做為 第一階段的教學教材而非 Scratch,Alice,Greenfoot 等的原因是 code.org 提供了不同類 型的題組供學生練習,內容涵蓋了基礎觀念、程序、條件、重複、模組化程式設計以及 少部分的演算法,對於程式設計初學者而言,藉由這 20 個階段的練習題組,將能夠打 好程式設計的基礎;而雖然 Scratch 擁有更多樣化的角色圖片及動畫效果,但本研究是 以學生能進一步學習高階程式語言為目的,因此在教材的發展上要能使學生專注於程式 設計觀念的養成。. 圖 3-2 code.org 操作畫面 17.

(29) (二). 第二階段:建立程式設計的流程與觀念. 學生在經過第一階段的練習,有了淺顯的邏輯思維以及程式設計觀念後,便進入第 二階段的訓練。本階段的學習目標為建立程式設計的流程與觀念,學生需嘗試利用程式 計算並回答與生活和有關的實際問題,不再依賴必須與動畫進行互動之視覺化程式設計 學習工具。因此,於此階段使用了我們自行開發之視覺化程式設計平台“CThinking”, 使學生藉由文字敘述生活化的題目來建立程式設計的流程與觀念(詳見附錄一, CThinking 平台使用手冊)。 “CThinking”字源取自於 Computational Thinking 的簡稱,並且強調 Thinking 的重 要性。開發 CThinking 平台目的是希望藉由視覺化程式設計來建立程式設計初學者之基 本觀念。CThinking 平台是以 Blockly(Google for Education, 2011)為工具發展之視覺化 程式設計平台,而 Blockly 為 Google 於 2011 年開發之視覺化程式設計編輯器,使用者 可以在網頁上使用拼塊拖拉的方式來進行程式設計。此平台依照難易程度分為「簡易題」 與「知識題」,分別進行於第二階段與第三階段。有學者指出觀念的學習過程主要是透 過類化與辨別的交互作用,學習者能把對於具體事物的經驗,經抽象化而形成超越具體 對象的認識(張春興,1994),因此在第二階段的題目貼近日常生活,第三階段題目則 與學科整合,能幫助學生在觀念上的學習。於 CThinking 中,我們去除第一階段 code.org 的遊戲動畫,改以文字敘述題目、輸出文字式的結果,教材內容循序漸進,且提供具有 真實性的題目。 其中,我們發展了 8 個程式設計題組,每個題組含有 4 至 6 個子題,一共有 40 個 子題,每個子題都需要學生練習特定的程式結構,題組內容循序漸進、為生活化的應用 問題。題組內容分別為:「健康管理小幫手」、「高速公路計程收費」、「麥當勞都是為 您?!」 、 「電力補給站」 、 「校外教學去哪裡?」 、 「慵懶疲倦遠離我」 、 「紀念小書包」以 及「裝潢夢想家」 (詳見表 3-1)。本研究挑選了「健康管理小幫手」、「高速公路計程收 費」 、 「電力補給站」 、 「慵懶疲倦遠離我」 、 「紀念小書包」來進行實驗,並使用「裝潢夢 想家」作為測驗題目。教師會先以兩個題組(電力補給站、紀念小書包)中的 Q1 至 Q3 題作為程式觀念與程式邏輯教學題,學生練習完畢後再帶領學生進行 Q4 至 Q6 題。待 學生完成此兩題組後,另外指定三個題組的題目作為學生自行練習之題目(「健康管理 小幫手」、「高速公路計程收費」、「慵懶疲倦遠離我」)。. 18.

(30) 圖 3-3 為 CThinking 簡易題中的「高速公路計程收費」第 3 子題畫面,該題總共有 六個子題(Q1,Q2,Q3,Q4,Q5 與 Q6)。. 圖 3-3「高速公路計程收費」第 3 子題畫面. 第二階段使用了題組式的方式來進行練習,一步步的帶領學生解決生活上實際會碰 到的問題。各題組敘述如下: 表 3-1 CThinking 簡易題題目說明 題組. 簡介. 題數. 程式設計項目. 穿戴裝置近幾年開始興起, 基礎觀念 智慧手錶、智慧手環等方便隨身 流程控制-循序 攜帶的特性,吸引使用者透過這 健康管理小幫手 些裝置來觀察個人健康,並與行. 5. 流程控制-條件 流程控制-重複. 動裝置連結,記錄管理個人的健 陣列 康資訊…… 高速公路電子收費系統. 基礎觀念. (ETC)已經由收費站計次收費改 高速公路計程收費 為計算里程收費,但是費率內容 除了分成大、小型車,還有免費. 19. 流程控制-循序 6. 流程控制-條件 流程控制-重複.

(31) 里程和長途折扣優惠,讓很多人. 陣列. 搞不懂計費方式…… 美味的漢堡、香噴噴的炸雞 基礎觀念 總讓人垂涎三尺,不過這相當於 流程控制-循序 熱量炸彈的油炸食物,對於身材 麥當勞都是為您?! 的保持可是極大的考驗,就讓我. 5. 流程控制-條件 流程控制-重複. 們先來暸解並認識這些熱量炸彈 陣列 吧…… 隨著資訊的便利,已是人手 基礎觀念 一智慧型手機的時代,而行動電 流程控制-循序 電力補給站. 源也成為出門在外的必備周邊之. 5. 流程控制-條件. 一。然而,到底要怎麼選擇適合 流程控制-重複 自己手機的行動電源呢?…… 高中正值讀書的苦悶,教師. 基礎觀念. 想規劃一個校外教學的活動,讓 校外教學去哪裡?. 學生偶爾可以走出校園外學習,. 流程控制-循序 4. 流程控制-條件. 也可以充充電放鬆心情。而規劃. 流程控制-重複. 行程是一件非常重要的工作……. 陣列. 學校希望於課後增加一堂健. 基礎觀念. 康知識課程,提升學生的活動力. 流程控制-循序. 及專注力,課程內容包含運動、. 流程控制-條件. 慵懶疲倦遠離我 體重控制、飲食營養均衡等相關. 5. 資訊,藉由 BMI 的計算讓同學進. 流程控制-重複 陣列. 行健康的初步認識…… 欣欣高中因逢畢業典禮,班. 基礎觀念. 聯會推出欣中紀念小書包供師生 紀念小書包 訂購,一個價格為 120 元,請幫 助班聯會設計系統協助運作……. 20. 流程控制-循序 6. 流程控制-條件 流程控制-重複.

(32) 陣列 基礎觀念 欣欣未來想成為一位室內設 流程控制-循序 計師,想先裝潢自己家來小試身 裝潢夢想家 手一番。現在就讓我們來設計一. 4. 流程控制-條件 流程控制-重複. 個簡單的裝潢系統吧…… 陣列. (三). 第三階段:培養程式設計的問題解決能力. 本階段的學習目標為培養程式設計的問題解決能力,而與「簡易題」不同的在於此 階段去除了題組式的鷹架,題目間相互獨立,且皆為自然科學學科會使用到運算之題目, 學生須有能力解決完整的題目。 其中,我們發展了 8 個與 STEM 學科結合的程式設計問題,題目內容皆與 STEM 相關,分別為「生物 DNA 知多少」、「計數 DNA 核苷酸」、「認識碳水化合物」、「網路 銀行妙絕招」 、 「數位影像計算器」 、 「資料傳輸有問題?!」 、 「銀行外匯來比較」以及「費 先生與他的兔子們」(詳見表 3-2),每個題目都需要學生綜合過去所學的程式觀念。本 研究挑選了「數位影像計算器」、「網路銀行妙絕招」、「計數 DNA 核苷酸」、「資料傳輸 有問題?!」進行實驗,並使用「生物 DNA 知多少」作為測驗題目。圖 3-4 為 CThinking 知識題中的「網路銀行妙絕招」。. 圖 3-4「網路銀行妙絕招」畫面 21.

(33) 各題目敘述如下: 表 3-2 CThinking 知識題題目說明 題目. 簡介. 程式設計項目 基礎觀念. 生物 DNA 知多少. 結合生物(Science)的內容,請學. 流程控制-循序. 生模擬出生物在製造蛋白質時,DNA. 流程控制-條件. 轉錄成 RNA 的過程。. 流程控制-重複 陣列 基礎觀念. 計數 DNA 核苷酸. 結合生物(Science)的內容,請學. 流程控制-循序. 生算出 DNA 中各個核苷酸的數量,並. 流程控制-條件. 判斷是否為真實存在之 DNA。. 流程控制-重複 陣列 基礎觀念. 結合生物(Science)的內容,請學 流程控制-循序 認識碳水化合物. 生輸入碳水化合物的原子量後,能輸出 流程控制-條件 該碳水化合物的化學式。 流程控制-重複 基礎觀念 流程控制-循序 結合科技(Technology)的內容,. 網路銀行妙絕招. 流程控制-條件 請學生模擬出網路銀行中的動態鍵盤。 流程控制-重複 陣列 基礎觀念. 數位影像計算器. 結合科技(Technology)的內容,. 流程控制-循序. 請學生根據數位影像的類型計算該影. 流程控制-條件. 像佔有多少儲存空間。. 流程控制-重複 陣列. 22.

(34) 基礎觀念. 資料傳輸有問題?!. 結合工程(Engineering)的內容,. 流程控制-循序. 請學生根據輸入的傳輸資料判斷 parity. 流程控制-條件. bit 為何。. 流程控制-重複 陣列 基礎觀念. 銀行外匯來比較. 結合工程(Engineering)的內容,. 流程控制-循序. 請學生在各家銀行中找出最適合兌換. 流程控制-條件. 外幣的前五家銀行。. 流程控制-重複 陣列 基礎觀念. 費先生和他的兔子們. 結合數學(Mathematics)的內容,. 流程控制-循序. 讓學生藉由程式題目來理解費式數列. 流程控制-條件. 的觀念。. 流程控制-重複 陣列. (四). 第四階段:以 C/C++培養問題解決的實作能力. 此階段為本研究教學策略之最終階段,為進行 C/C++程式語言學習以培養學生問題 解決的實作能力。由於前三階段已有程式設計邏輯的訓練,因此於此階段以 C/C++語法 及程式設計實作為學習核心。 各練習題目敘述如表 3-3: 表 3-3 C 語言練習題目說明 程式設計項目 C 語言導論. 題目(*者可視教師教學情形調整) 程式設計簡介、程式設計工具. 基礎觀念: 宣告變數、變數資料型態 變數與常數 詢問年齡、簡易加減法 輸入與輸出 23.

(35) 運算式 圓面積與圓周長、計算房間坪數、攝氏華氏轉換 流程控制-循序 *梯形、加減乘除 直角三角形、收入與支出、奇偶數獎學金、猜拳、學號敘 流程控制-選擇. 述、成績等第 *點餐系統. 流程控制-重複. 計算分數、迴圈印出、九九乘法表. (for 迴圈、. *數的累加、細胞分裂、猜數字、加法運算、終極密碼. while 迴圈). *計算機、數的乘積 成績陣列、最高與最低、最大值、陣列中尋找. 一維陣列 *得分排名. 第二節 研究規畫與流程 一、 研究設計 本研究使用「準實驗研究法」 (Quasi Experiment) ,即研究樣本是依照現有的班級進 行,而未被隨機分配。準實驗研究法被運用於探討研究中的教學與傳統教學在教學成效 上的差異(周新富,2015)。 本研究將學生分為四個組別(詳見圖 3-6) :採用從程式設計觀念至程式設計實作之 教學策略,並變化其培養程式觀念時間長短的實驗組一、實驗組二以及實驗組三,與使 用現行 C 語言教學模式的控制組。其中,實驗組一的學生在第一階段使用視覺化程式設 計培養程式觀念,在第二、第三與第四階段使用 C 語言教學來建立程式設計的實作能力; 實驗組二的學生在第一、第二以及第三階段皆使用視覺化程式設計培養程式觀念後,於 第四階段進入 C 語言的教學以建立程式設計的實作能力;實驗組三的學生則於第一、第 二以及第三階段以視覺化、C 語言交替使用以培養程式設計的觀念與實作能力後,同樣 於第四階段進入 C 語言的教學來建立程式設計的實作能力。希望藉由此研究規畫來對各 組別的學習成效進行深入分析,以評估該教學策略的可行性為何。. 24.

(36) 為瞭解學生的學習成效,於課程結束後進行 C 語言之觀念測驗與實作測驗;為探討 該教學策略對於學生運算思維的影響,於課程開始前與課程結束後進行「國際運算思維 測驗」 (International Bebras Contest) (Bebras, 2014) ;而為理解從程式設計觀念至程式設 計實作之教學策略是否能夠提升學生的學習興趣、以及對於該組教學策略的看法為何, 本研究參考以國內學者吳靜吉、程炳林(1992)修訂之「激勵的學習策略量表」 (Motivated Strategies for Learning Questionnaire, MSLQ)來瞭解學生學習興趣的變化,於課程結束 後要求學生填寫其學習歷程、學習內容、學習態度與感想。並且,請教師於每次課程結 束後填寫課堂觀察表,其內容包含:學生理解情形、工具操作情形、學生學習態度與學 生表現是否符合預期成效等內容,以瞭解學生的學習狀況為何。 於課程結束後,將針對參與研究的教師與學生進行訪談,以深入瞭解師生的看法為 何。本研究於各組隨機挑選 4 位學生進行「半結構式訪談」 (Semi-Structured Interview) , 半結構式訪談讓研究者利用較為寬廣的研究問題作為訪談根據,訪談指引於訪談開始前 被設計出來,以作為訪談時的架構。最主要的訪談內容與研究問題相符即可,雖然因討 論方式或問題的形式而採取較為彈性的進行方式,使得研究的可比較性降低,但優點是 可呈現受訪者認知感受上較真實的面貌(林金定、嚴嘉楓、陳美花,2005)。. 二、 研究對象 本研究以高中生為研究對象,研究樣本為新北市某高中二年級理組學生,隨機選擇 4 個班級,每班 30 人,一共 120 人。4 個班級隨機安排為實驗組一、實驗組二、實驗組 三以及控制組。. 三、 研究工具 本研究運用觀察、問卷、訪談與文件分析等方式,配合錄音之轉譯資料,作為研究 的基本資訊,以瞭解學生於不同教學策略下各階段的學習情形與感想。此外,研究者亦 透過教師的課堂觀察表以及與教師的共同討論中,以不同的觀點來呈現出多元與豐富的 資料。. (一). 程式設計測驗. 本研究於各組別、各個階段結束後皆進行階段性的測驗,並於課程最後進行 C 語言 之程式觀念測驗以及程式實作測驗,旨在分析學生於該組教學策略培養下的學習成效。. 25.

(37) 而各組別的測驗方式與內容會依據學生於該階段學習工具的不同而有所變化(詳見附錄 二、三、四、五、六)。 1.. 程式設計觀念測驗(詳見附錄六,第四階段程式設計觀念測驗) 我們使用了具有信度、效度之「大學程式設計先修檢測」內的題目,然因「大學程. 式設計先修檢測」的題目是為已具有程式設計能力的學生而設計,而本研究的研究對象 僅學習了一學期的程式設計,因此,我們由當中的 25 題中挑選了 5 題於課程內容中有 涵蓋之題目,並另外自行設計 4 題基本觀念的相關題目,將其對應至布魯姆的教育目標 分類法(Thompson, E., 2008),設計「雙向細目表」(two-way specification table)(張春 興,1994)如表 3-4,經由授課教師檢視給予指導後,針對測驗內容的適切性以及難易 度加以修正,以求測驗之內容效度。 表 3-4 程式設計觀念測驗命題雙向細目表 教學目標 教學內容 1.. 知識. 理解. 應用. 分析. 評估. 創造. 合計題數. 基礎觀念: 變數與常數. 1. 0. 1. 0. 1. 1. 2. 2. 4. 1. 2. 3. 輸入與輸出 運算式 2.. 流程控制-選擇. 3.. 流程控制-重複 (for 迴圈、 while 迴圈). 4.. 一維陣列 合計題數. 2.. 0. 4. 0. 5. 0. 0. 9. 程式設計實作測驗(詳見附錄五,第四階段程式設計實作測驗) 在程式設計實作測驗中,我們使用了自行發展之 CThinking 簡易題中的題組題目「麥. 當勞都是為您?!」,題目中涵蓋了學生在一學期當中所練習到之程式設計的觀念與實. 26.

(38) 作,經由授課教師檢視後給予指導,也針對測驗內容的適切性以及難易度加以修正,以 求測驗之內容效度。此測驗題目將對應至布魯姆的教育目標分類法(Thompson, E., 2008), 設計雙向細目表(張春興,1994),如表 3-5。 表 3-5 程式設計實作測驗命題雙向細目表 教學目標 教學內容. 知識. 理解. 應用. 分析. 評估. 創造. 合計題數. 基礎觀念:. 1.. 變數與常數. 2. 2. 1. 1. 1. 1. 1. 1. 輸入與輸出 運算式 2.. 流程控制-選擇. 3.. 流程控制-重複 (for 迴圈、 while 迴圈) 一維陣列. 4.. 合計題數. (二). 0. 0. 5. 0. 0. 0. 5. 國際運算思維測驗. 旨在分析學生於該組的教學策略培養下對於運算思維的影響,採前測與後測進行探 討,前測於實驗開始前進行,而後測於實驗結束後實施,前、後測的題目內容相同,但 題目順序不同。前測與後測皆採用國際運算思維測驗中 2014 年的高年級組題目(Bebras, 2014) ,此測驗幫助瞭解 8 至 18 歲學生的運算思維能力,目的在理解學生是否具備學習 資訊科學的性向,並激發學生對於資訊科學的興趣。測驗題目皆為情境式的任務,以淺 顯易懂的方式呈現,讓受試者能夠利用自身既有的知識來完成題目。. (三). 學生問卷. 包含學生之課前問卷與課後問卷,課前問卷於實驗開始前進行,而課後問卷於實驗 結束後實施,詳見圖 3-5。 27.

(39) 1.. 課前問卷(詳見附錄七,課前問卷) 旨在暸解參與學生之背景資料,如國中資訊課程的內容、程式設計的學習經驗,及. 採用國內學者吳靜吉、程炳林(吳靜吉、程炳林,1992)修訂之激勵的學習策略量表中, 有關於自我效能、內在價值與認知策略使用的題目來探究學生的學習興趣。此量表使用 李克特式的七點量表,七點由「1」至「7」表示「非常不同意」至「非常同意」。並且 於問卷中記錄學生個人對於資訊課程的學習興趣。 2.. 課後問卷(詳見附錄八,課後問卷) 旨在瞭解參與學生的學習歷程,如解題方式為何,當遇到困難時採取的方式為何,. 和對於學習內容的理解程度等,也同樣採用了課前問卷有關激勵的學習策略量表的題目, 以探究學生課前與課後的學習興趣變化。並於問卷最後記錄了學生於各階段結束後和實 驗結束後的心得感想。 自行完成 解題方式. 請教同學 請教老師. 學習歷程 自行完成. 問卷. 學習內容. 遇到困難時. 請教同學. 理解內容. 請教老師 課前. 學習動機 課後 學習態度. 各階段想法 感想 總結 圖 3-5 學生問卷一覽表. (四). 學生訪談. 於實驗結束之後,研究者對每組各 4 位,一共 16 位學生進行訪談。訪談大綱分為 三個部分:學生背景相關資料、學生對於該組別教學策略的感想為何、學生對於自己學 習興趣的看法。上述各項說明如下(詳見附錄十,訪談大綱):. 28.

(40) 1.. 學生背景相關資料:旨在瞭解學生的資訊科技相關背景,包括個人的程式設計經驗 以及數學能力等。. 2.. 學生對於該組教學策略的感想:旨在瞭解於不同的教學策略下的學生對於該模式的 想法,包括學習的心得感想、程式設計的學習歷程以及對各階段教材與評量的看 法。. 3.. 學生對於自己的學習興趣看法:旨在瞭解促使學生學習的因素為何,以及對於程式 設計學習興趣的改變。. (五). 課堂觀察表. 課堂觀察表由教師的角度來瞭解學生在該組別教學策略下的學習歷程,為一七點量 表,於每次課堂結束後填寫。內容包含當天班級的出缺席狀況、學生觀念理解的情形、 學生工具操作的情形、學生的學習態度與學生表現是否符合預期的成效,以供日後探究 教師於教學中的實際情況(詳見附錄九,課堂觀察表)。. (六). 教師訪談. 在實驗過程中與實驗結束後,研究者皆密切與教師進行討論與訪談,並詳實記錄其 內容,以瞭解教師對於各組別教學策略的看法與建議為何。. 四、 實驗流程 本研究之實驗步驟流程如圖 3-6 所示,實驗時間為完整一學期,共實施 17 週,每 週上 2 堂課,每堂課為 50 分鐘。實驗可被分為三大步驟,分別為實驗前、實驗中以及 實驗後。. (一). 實驗前. 所有實驗參與學生於實驗前填寫課前問卷、國際運算思維測驗的前測。. (二). 實驗中. 本研究將學生分為四個組別:採用從程式設計觀念至程式設計實作之教學策略,並 變化其培養程式觀念時間長短的實驗組一、實驗組二以及實驗組三,與使用現行 C 語言 教學模式的控制組,如圖 3-6(詳見附錄十一,各組別課程進度表)。. 29.

(41) 1.. 實驗組一 實驗組一的學生在第一階段使用視覺化程式設計培養程式觀念,在第二、第三與第. 四階段使用 C 語言教學來建立程式設計的實作能力。 2.. 實驗組二 實驗組二的學生在第一、第二以及第三階段皆使用視覺化程式設計培養觀念後,於. 第四階段進入 C 語言的教學以建立程式設計的實作能力。 3.. 實驗組三 實驗組三的學生則於第一、第二以及第三階段以視覺化、C 語言交替使用以培養程. 式設計的觀念與實作能力後,同樣於第四階段進入 C 語言的教學來建立程式設計的實作 能力。 4.. 控制組 控制組採用現行 C 語言之教學模式,整學期課程皆以 C 語言教學程式設計。. 30.

(42) 各組別之教學策略流程如下:. 控. 現行C語言教學模式. 制. •35小時. 組 第一階段. 第三階段. 第二階段. 第四階段. 實. 組. 熟悉程式 設計的觀 念與架構. 一. •8小時. 驗. 實. 組. 熟悉程式設 計的觀念與 架構. 二. •6小時. 實. 熟悉程式設 計的觀念與 架構. 驗. 驗 組. 現行C語言教學模式 •27小時. 建立程式設計 的流程與觀念 •6小時. 建立程式設計 的流程與觀念 •11小時. •8小時. 培養程式設 計的問題解 決能力. 以C/C++培養 問題解決的 實作能力. •4小時. •19小時. 培養程式設 計的問題解 決能力. 以C/C++培養 問題解決的 實作能力. •7小時. •9小時. 三 圖 3-6 各組別之教學流程. (三). 實驗後. 所有實驗參與學生於實驗後填課後問卷、國際運算思維測驗的後測,並由研究者統 計實驗組學生在各階段學習成效、學習興趣是否有相對提升,以及對於運算思維之影響 為何。 研究者也與每一組各 4 位,一共 16 位學生進行訪談,訪談內容為學生背景相關資 料、學生對於該組教學模式的感想為何、學生對於自己學習興趣的看法。訪談結束後研 究者將彙整程式設計測驗、課前問卷、課後問卷、國際運算思維測驗的前測與後測、訪 談紀錄以及教師的課堂觀察表和討論進行結果之分析。. 31.

參考文獻

相關文件

微算機原理與應用 第6

應用閉合電路原理解決生活問題 (常識) 應用設計循環進行設計及改良作品 (常識) 以小數加法及乘法計算成本 (數學).

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

協作 溝通 創造 批判性思考 運用資訊科技 運算 解決問題 自我管治 研習. 中一

由於本計畫之主要目的在於依據 ITeS 傳遞模式建構 IPTV 之服務品質評估量表,並藉由決

(計畫名稱/Title of the Project) 提升學習動機與解決實務問題能力於實用課程之研究- 以交通工程課程為例/A Study on the Promotion of Learning Motivation and Practical

目前國內並無完整之建築避難演練模式可供建築、消防從業人員參

本研究旨在使用 TI-Nspire CAS 計算機之輔助教學模式,融入基礎 統計學的應用,及研究如何使用 TI-Nspire CAS