• 沒有找到結果。

實況程式設計影片輔助程式設計學習

N/A
N/A
Protected

Academic year: 2021

Share "實況程式設計影片輔助程式設計學習"

Copied!
189
0
0

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

全文

(1)國立臺灣師範大學資訊教育研究所 碩士論文. 指導教授:林育慈 博士. 實況程式設計影片輔助程式設計學習 Teaching by Demonstration: Programming Instruction by Using Live-Coding Videos. 研究生:譚聖融 撰 中華民國 106 年 7 月.

(2) 實況程式設計影片輔助程式設計學習 譚聖融 摘要 程式設計能力須同時應用陳述型知識(了解程式設計相關概念與技能的知識) 與程序型知識(利用程式設計概念與技能以實作程式碼的知識) ,但傳統教學大多 採用講授式,偏重陳述型知識的講授,較缺乏建立程序型知識的機會,因此無法 培養完整的程式設計能力。本研究期望以實況程式設計影片來輔助學生學習程式 設計,透過實況程式設計影片中所呈現從無到有的完整解題過程,以展示程式設 計動態、非線性的歷程,藉由觀看實況程式設計影片並進行評註,以於陳述型知 識(包含陳述語法型、陳述概念型知識)之外,能增進學生程序型知識(包含程 序語法型、程序概念型知識)。 本研究建置一個實況程式設計影片輔助程式設計學習平台,提供三種程式設 計教學影片: (1)教師講授影片—主要呈現教師針對課程主題之語法及概念知識 進行講授教學(內含陳述語法型、陳述概念型知識) 。 (2)解題邏輯影片—是第一 種實況程式設計影片,主要呈現專業程式設計師解題時的思考歷程(內含程序概 念型知識) 。 (3)程式編碼影片—是第二種實況程式設計影片,主要呈現專業程式 設計師實際從無到有的程式編碼歷程(內含程序語法型、程序概念型知識) 。平台 實況程式設計影片中亦提供評註功能供學生於觀看影片時進行評註以深化學習。 本次實驗參與者為 40 位高一下學期的資訊班學生,學習者透過實況程式設 計影片學習平台輔助程式設計學習,研究方法為蒐集平台上評註與觀看學習行為 紀錄、程式設計學習成就評量、程式設計學習態度問卷等資料進行相依 t 檢定、 迴歸分析、群集分析、單因子變異數分析與相關分析,從實驗結果發現: 一、在實況程式設計影片輔助程式設計學習平台輔助程式設計學習有助於提升 程式設計學習成就 1. 學習者觀看實況程式設計影片撰寫評註時,會使用舊有的知識(基礎程式 設計課程所學知識)來比擬新學到的知識(本學期所學之進階程式設計課程所學 知識)並進行了反思歷程才有能力留下陳述型知識的評註內容來習得陳述型知識, 進而提升程式設計理解學習成就。. i.

(3) 2. 程式設計實作成就較佳的學習者,會透過花時間及反覆觀看程式編碼影 片。學習者可透過觀看實況程式設計影片中語法意涵、解題邏輯及程式執行與編 碼的片段,以及透過比較自己與專業程式設計師的編碼方式來習得程序型知識, 進而提升程式設計實作學習成就。 二、不同程式設計進步幅度的學習者在實況程式設計影片輔助程式設計學習平 台之程式設計學習行為有所不同 1. 程式設計理解學習成就越佳的學習者在程式設計理解先備知識評量成績 越差,其在觀看實況程式設計影片撰寫評註時,會使用舊有的知識(基礎程式設 計課程所學知識)來比擬新學到的知識(本學期所學之進階程式設計課程所學知 識)並進行了反思歷程才有能力留下陳述型知識的評註內容,因此培養了陳述型 知識。透過撰寫陳述型評註可以讓學習者更了解程式設計相關概念與技能的知識, 進而提升學習者的程式設計理解進步幅度。 2. 程式設計實作學習成就越佳的學習者在程式設計理解先備知識評量與程 式設計實作先備知識評量成績越差,透過花時間及反覆觀看解題邏輯影片與程式 編碼影片,學習者可透過觀看實況程式設計影片中語法意涵、解題邏輯及程式執 行與編碼的片段,以及透過比較自己與專業程式設計師的編碼方式來習得程序型 知識,透過花時間反覆觀看程式設計解題及程式設計影片可讓學習者更了如何應 用程式設計概念與技能以實作的知識,進而提升程式設計實作進步幅度。 三、學習者對於程式設計學習態度自我效能面向越高,越少觀看學習實況程式 設計影片,導致程式設計實作進步幅度較小;當學習者越肯定陳述型知識的重 要性,越會反覆觀看教師講授影片(內含陳述型知識),並透過撰寫陳述語法型 評註以進行深度思考,當學習者觀看教師講授影片中的語法意涵及解題邏輯片 段的同時,也使得學習者了解及明白如何應用程式設計相關概念與技能以實作 的知識,因此在程式設計實作進步幅度較佳。 藉由觀看實況程式設計影片輔助程式設計學習,學習者可於觀看實況程式 設計影片後透過撰寫評註內容來與自身經驗進行反思,使得學習者更了解程式 設計相關概念與技能的知識,進而提升程式設計理解能力;透過反覆觀看實況 程式設計影片所呈現的程式設計解題程序及解題歷程,使得學習者更清楚如何 利用程式設計概念與技能以實作程式碼的知識,進而提升程式設計實作能力。. ii.

(4) 【關鍵字】 程式設計教學、實況程式設計、陳述型知識、程序型知識. iii.

(5) Teaching by demonstration: Programming instruction by using live-coding videos Sheng-Rong Tan Abstract The procedure of programming involves both declarative and procedural knowledge. However, traditional instruction is based on lectures, making emphasis on the declarative knowledge, which lacks opportunities to establish procedural knowledge, thereby failing to cultivate the programming implementation skills. This study probes into the effectiveness of programming instruction by using live-coding videos and to understand how the proposed live-coding-based instruction and learning behavior of students on the live-coding programming learning platform affect students’ programming performance. The live-coding videos demonstrate the dynamic and nonlinear programming procedure and students can make annotations on live-coding videos to facilitate their procedural knowledge(including procedural-syntactic and proceduralconceptual knowledge)in addition to conceptual knowledge. The study builds a live-coding-video learning platform, wherein three types of instructional videos are available: 1. Teacher’s lecture video- It presents teacher’s lecture on the syntax and concepts within the theme of course, including declarative-syntactic and declarative-conceptual knowledge. 2. Algorithmic logic video- It is the first type of live-coding video, which presents a professional programmer’s logic and algorithmic thinking process of problem solving, including the procedural-conceptural knowledge. 3. Coding video- It is the second type of live-coding video, which presents a professional programmer’s coding process from scratch, including procedural-syntactic and procedural-conceptual knowledge. Students were asked to watch the videos to review the teacher’s lecture or observe the dynamic programming procedures from scratch in addition to annotating with their reflection and discussion with peers on the videos. The participants in this experiment were forty high school students and the experiment was conducted in the Information Technology Class. These students employed the live-coding learning platform to facilitate their programming learning. The learning behavior history, and the resutls of programming achievement test and programming learning attitude questionnaire were collected and analyzed by the t-test,. iv.

(6) regression analysis, one-way anova, k-means, and Pearson Product-Moment Correlation. The research findings include: 1. Students were enable to have an in-depth reflection by annotating their thoughts on algorithmic logic and coding videos, thereby their declarative knowledge was improved. 2. Students who had spent more time on watching live-coding videos had higher programming implementation achievement. 3. Students who have higher self-efficacy were more reluctant to watch live-coding videos, finally resulting in poorer performance in the program implementation test. It should be noted that students who had made greater progress in programming achievement were scored lower in the pretest. However, with a semester of live-coding programming learning, they had developed their own declarative knowledge and procedural knowledge by watching live-coding videos and indeep annotation, and thereby their program implementation skills were improved. We have studied the effectiveness of programming instruction by using live-coding videos. The students learning declarative knowledge(teacher’s lectures with declarativesyntactic and declarative-conceptual knowledge) and procedural knowledge (problemsolving logic and program coding videos with procedural-syntactic and proceduralconceptual knowledge) by observational learning on the live-coding videos learning platform, further with annotations (students prefer to leave declarative annotation) for reflection process students were guided to establish declarative knowledge and procedural knowledge. Since programming experts are proficient in conducting the nonlinear programming process based on their programming strategies, their live-coding videos can provide students with exemplar programming procedures and strategies of programming steps from scratch and thereby enhance implementation skills. Such interactive process provides students with opportunities of observing and thinking how the programs were built more deeply. The experiment results show that the use of livecoding videos in programming instruction can provide students with reference and examples on dynamic and non-linear programming process, which can effectively improve students’ program implementation skills.. Keywords:live-coding, programming instruction, declarative knowledge, procedural knowledge. v.

(7) 誌謝 歲月如梭,兩年的光陰轉瞬即逝,這一路上要感謝的人太多,帶著一顆感念 的心來謝謝這段時間所發生的一切。 首先,最最感激的是育慈教授,從教授的身上看見了溫暖堅定的力量,以及 努力不懈的精神。在 TELiC Lab 的日子裡,完成了許多預料之外的任務,根本沒 想過有機會至加拿大的研討會報告,根本沒想過有機會看見一群資訊專家們在下 班之餘還願意花費許多心力為了教育而努力著,根本沒想過有機會參與辦理全台 三維列印工作坊的事宜…等,這一切都要感謝育慈教授的鼓勵與全力指導,能讓 我有機會看見從未見過的風景,遇見許多優秀的人們,並看見世界的遼闊。此外 也非常謝謝吳副校長正己教授,每每出現時總展現溫文儒雅的氣質,在言談中以 幽默風趣的語調與大家拉近距離並令人感到親近。也感謝凌倩老師在百忙之中, 特地一早來到師大擔任口委,並且針對研究給予寶貴的建議。以及感恩願意讓我 進行實驗的玗貞主任,於過程中收到許多協助及鼓勵,萬分感謝您的和善與幫助。 接著要謝謝岱融學長帶來新的轉捩點,沒有你就沒有考上資教所的我。也謝 謝 TELiC Lab 的所有夥伴,謝謝聖哲學長幫忙管理伺服器並協助解決問題。謝謝 由於提前參與 Lab meeting 才認識的傑安學長為我留下適合設備。謝謝粲絜、書 毓、文揚使得實驗室熱鬧非凡。謝謝同期的名璨,共同度過了兩年的日子,讓我 們走完最後一哩路。謝謝湘庭的全力相挺,如果沒有妳怎麼辦。謝謝思如的聊天 及各種陪伴,有種心靈的富足。謝謝曉瑀透過幾次的熬夜來給予鼓勵,友誼萬歲。 謝謝薇燁的叮嚀,為了健康會繼續努力。謝謝婉玥和子婷總是清新的互相問候。 謝謝子庭、皓心、郁茹、瑀晴、紹瑄,每次的月例聚會總是特別開心。以及特別 感謝嘉玲與魏先生的協助與支持,讓我在所務上能順利完成任務。還有好多想感 謝的人,因為有了這些連結才能造就現在的我。 最後,感激我的家人無條件給予了滿滿的愛與支持,讓我能無後顧之憂的繼 續堅持並努力著,謝謝媽媽大人總是從工作中擠出時間協助我,謝謝爸爸大人總 是默默地給予支持,讓我感到無限的愛,謝謝老弟很鬧卻在晚上開車來載我。謝 謝阿姨們總是關切著我的健康,謝謝阿嬤與奶奶的支持,相伴的時刻總是無限溫 馨。也將這份感謝的心意送給天上的阿公與爺爺,有了您們的努力才有現在的我 們。謝謝親愛的家人,我們還要互相扶持好幾輩子。 vi.

(8) 來到資教所的每個時刻都彌足珍貴,也相信這將影響著我的一生。真的好喜 歡好喜歡這兩年美好的日子,能來到資教所實在是太令人印象深刻,既能完成了 不可能的任務也開拓了視野,更能遇見了優秀仍努力的人們,也發覺了自己的不 足與渺小,以及還有許多進步空間。謝謝所有出現在生命中的人、事、物,透過 彼此交會的時光淺移默化的改變著我,覺得自己無比幸運且備受寵愛。. 譚聖融. 謹誌. 中華民國一○六年七月. vii.

(9) 目錄 摘要………………………………………..…………………………..……..…….…i 目錄…………………………………………………..………………….…..…......viii 附表目錄…………………………………….……………………..…..…………….x 附圖目錄…………………………………………………………………….…..…xiv 第一章. 緒論 ........................................................................................................... 1. 第一節 研究背景與動機 ....................................................................................... 1 第二節 研究目的 ................................................................................................... 3 第三節 名詞釋義 ................................................................................................... 4 第二章. 文獻探討 ................................................................................................. 10. 第一節 程式設計知識類型 ................................................................................. 10 第二節 程式設計學習 ......................................................................................... 14 第三節 程式設計教學策略 ................................................................................. 16 第四節 實況程式設計輔助學習 ......................................................................... 18 第五節 影片式教學 ............................................................................................. 21 第六節 同儕互評 ................................................................................................. 23 第三章. 研究方法 ................................................................................................. 25. 第一節 研究設計與架構 ..................................................................................... 25 第二節 研究對象 ................................................................................................. 26 第三節 研究程序 ................................................................................................. 27 第四節 研究工具 ................................................................................................. 32 第五節 實況程式設計影片輔助程式設計學習平台 ......................................... 42 第六節 資料蒐集 ................................................................................................. 53 第四章. 研究結果與討論 ..................................................................................... 57. viii.

(10) 第一節 程式設計學習行為概況 ......................................................................... 57 第二節 程式設計學習成就分析 ......................................................................... 61 第三節 程式設計學習行為與程式設計學習成就分析 ..................................... 63 第四節 程式設計進步幅度與學習行為分析 ..................................................... 86 第五節 學習行為類別分析 ............................................................................... 108 第六節 程式設計學習態度分析 ....................................................................... 113 第七節 綜合討論 ............................................................................................... 129 第五章. 結論與建議 ........................................................................................... 140. 第一節 結論 ....................................................................................................... 140 第二節 建議 ....................................................................................................... 143 參考文獻… .............................................................................................................. 144 附錄一 程式設計理解先備知識評量 .................................................................... 153 附錄二 程式設計理解學習成就 ............................................................................ 158 附錄三 程式設計學習態度學前評量 .................................................................... 163 附錄四 程式設計學習態度學後評量 .................................................................... 167. ix.

(11) 表目錄 表 1-1 程式設計知識類型編碼表 ................................................................................. 7 表 2-1 實況程式設計優劣分析表 ............................................................................... 19 表 3-1 程式設計先備知識與程式學習成就參與人數 ............................................... 26 表 3-2 每週教學主題暨課程內容 ............................................................................... 28 表 3-3 程式設計學習態度面向表 ............................................................................... 37 表 3-4 實況程式設計影片學習平台使用態度 ........................................................... 38 表 3-5 訪談問題 ........................................................................................................... 39 表 3-6 程式設計知識編碼表 ....................................................................................... 41 表 4-1 程式設計學習行為概況描述性統計摘要表 ................................................... 58 表 4-2 平台上學生所註記的各類評註範例 ............................................................... 59 表 4-3 三種實況程式設計影片中分別包含的評註則數 ........................................... 59 表 4-4 程式設計理解與程式設計實作的先備知識與學習成就評量之相依 t 檢定摘 要表............................................................................................................................... 61 表 4-5 程式設計理解先備知識與影片觀看中教師講授影片觀看頻率(次)迴歸分 析摘要表....................................................................................................................... 65 表 4-6 程式設計理解先備知識與影片觀看中解題邏輯影片觀看頻率(次)迴歸分 析摘要表....................................................................................................................... 65 表 4-7 程式設計理解先備知識與影片觀看中程式編碼影片觀看頻率(次)迴歸分 析摘要表....................................................................................................................... 65 表 4-8 程式設計理解先備知識與影片觀看中總觀看頻率(次)迴歸分析摘要表 65 表 4-9 程式設計理解先備知識與影片觀看中教師講授影片觀看時間(秒)迴歸分 析摘要表....................................................................................................................... 66 表 4-10 程式設計理解先備知識與影片觀看中解題邏輯影片觀看時間(秒)迴歸分 析摘要表....................................................................................................................... 66 表 4-11 程式設計理解先備知識與影片觀看中程式編碼影片觀看時間(秒)迴歸分 析摘要表....................................................................................................................... 66 表 4-12 程式設計理解先備知識與影片觀看中總觀看時間(秒)迴歸分析摘要表 ....................................................................................................................................... 66 x.

(12) 表 4-13 程式設計理解先備知識與影片評註中反思評註(則)迴歸分析摘要表 . 66 表 4-14 程式設計理解先備知識與影片評註中反應評註(則)迴歸分析摘要表 . 66 表 4-15 程式設計理解先備知識與影片評註中陳述語法型評註(則)迴歸分析摘要 表................................................................................................................................... 67 表 4-16 程式設計理解先備知識與影片評註中陳述概念型評註(則)迴歸分析摘要 表................................................................................................................................... 67 表 4-17 程式設計理解先備知識與影片評註中程序語法型評註(則)迴歸分析摘要 表................................................................................................................................... 67 表 4-18 程式設計理解先備知識與影片評註中程序概念型評註(則)迴歸分析摘要 表................................................................................................................................... 67 表 4-19 程式設計理解先備知識與影片評註中總評註則數(則)迴歸分析摘要表 ....................................................................................................................................... 67 表 4-20 程式設計實作先備知識與影片觀看中教師講授影片觀看頻率(次)迴歸分 析摘要表....................................................................................................................... 69 表 4-21 程式設計實作先備知識與影片觀看中解題邏輯影片觀看頻率(次)迴歸分 析摘要表....................................................................................................................... 69 表 4-22 程式設計實作先備知識與影片觀看中程式編碼影片觀看頻率(次)迴歸分 析摘要表....................................................................................................................... 69 表 4-23 程式設計實作先備知識與影片觀看中總觀看頻率(次)迴歸分析摘要表 ....................................................................................................................................... 69 表 4-24 程式設計實作先備知識與影片觀看中教師講授影片觀看時間(秒)迴歸分 析摘要表....................................................................................................................... 69 表 4-25 程式設計實作先備知識與影片觀看中解題邏輯影片觀看時間(秒)迴歸分 析摘要表....................................................................................................................... 70 表 4-26 程式設計實作先備知識與影片觀看中程式編碼影片觀看時間(秒)迴歸分 析摘要表....................................................................................................................... 70 表 4-27 程式設計實作先備知識與影片觀看中的總觀看時間(秒)迴歸分析摘要表 ....................................................................................................................................... 70 表 4-28 程式設計實作先備知識與影片評註中反思評註(則)迴歸分析摘要表 . 70. xi.

(13) 表 4-29 程式設計實作先備知識與影片評註中反應評註(則)迴歸分析摘要表 . 70 表 4-30 程式設計實作先備知識與影片評註中陳述語法型評註(則)迴歸分析摘要 表................................................................................................................................... 71 表 4-31 程式設計實作先備知識與影片評註中陳述概念型評註(則)迴歸分析摘要 表................................................................................................................................... 71 表 4-32 程式設計實作先備知識與影片評註中程序語法型評註(則)迴歸分析摘要 表................................................................................................................................... 71 表 4-33 程式設計實作先備知識與影片評註中程序概念型評註(則)迴歸分析摘要 表................................................................................................................................... 71 表 4-34 程式設計實作先備知識與影片評註中總評註則數(則)迴歸分析摘要表 ....................................................................................................................................... 71 表 4-35 程式設計理解先備知識與程式設計理解學習成就迴歸分析摘要表 ......... 72 表 4-36 程式設計實作先備知識與程式設計實作學習成就迴歸分析摘要表 ......... 73 表 4-37 程式設計學習行為對程式設計理解進步幅度迴歸分析摘要表 ................. 76 表 4-38 程式設計學習行為對程式設計實作進步幅度迴歸分析摘要表 ................. 79 表 4-39 程式設計理解進步幅度高、低成就組在程式設計學習行為之變異數分析摘 要表............................................................................................................................... 91 表 4-40 程式設計實作進步幅度高、低成就組在程式設計學習行為之變異數分析 摘要表........................................................................................................................... 99 表 4-42 程式設計學習行為類別與程式設計學習成就群集分析摘要表 ............... 109 表 4-42 程式設計學習行為與程式設計學習態度之相關情形摘要表 ................... 114 表 4-44 程式設計學習態度與程式設計進步幅度之相關分析摘要表 ................... 120 表 4-45 程式設計先備知識與程式設計進步幅度之相關分析摘要表 ................... 122 表 4-46 節錄自我效能面向較高者的程式設計態度評量回答內容 ....................... 125 表 4-47 節錄陳述型知識面向較高者的程式設計態度評量回答內容 ................... 126 表 4-48 綜合討論學習者分類表 ............................................................................... 129 表 4-49 語法意涵案例一之一 ................................................................................... 130 表 4-50 語法意涵案例一之二 ................................................................................... 130 表 4-51 語法意涵案例一之三 ................................................................................... 130. xii.

(14) 表 4-52 語法意涵案例二之一 ................................................................................... 131 表 4-53 語法意涵案例二之二 ................................................................................... 131 表 4-54 語法意涵案例三之一 ................................................................................... 132 表 4-55 語法意涵案例三之二 ................................................................................... 132 表 4-56 語法意涵案例三之三 ................................................................................... 133 表 4-57 解題邏輯案例一之一 ................................................................................... 133 表 4-58 解題邏輯案例一之二 ................................................................................... 134 表 4-59 解題邏輯案例一之三 ................................................................................... 134 表 4-60 解題邏輯案例二之二 ................................................................................... 135 表 4-61 解題邏輯案例二之三 ................................................................................... 135 表 4-62 解題邏輯案例三之一 ................................................................................... 136 表 4-63 解題邏輯案例三之二 ................................................................................... 136 表 4-64 解題邏輯案例三之三 ................................................................................... 137 表 4-65 程式執行與編譯案例一之一 ....................................................................... 137 表 4-66 程式執行與編譯案例一之二 ....................................................................... 138 表 4-67 程式執行與編譯案例二之一 ....................................................................... 138 表 4-68 程式執行與編譯案例二之二 ....................................................................... 139 表 4-69 程式執行與編譯案例三之一 ....................................................................... 139. xiii.

(15) 圖目錄 圖 1-1 實況程式設計影片輔助程式設計學習平台示意圖 ......................................... 4 圖 1-2 實況程式設計示意圖(HTTPS://WWW.LIVECODING.TV/) ................................ 5 圖 2-1 BLOOM 新版教育目標分類 ............................................................................... 10 圖 3-1 研究架構 ........................................................................................................... 25 圖 3-2 研究流程圖 ....................................................................................................... 27 圖 3-3 課堂活動流程 ................................................................................................... 31 圖 3-4 程式設計實作先備知識評量示意圖 ............................................................... 34 圖 3-5 程式設計實作學習成就評量示意圖 ............................................................... 35 圖 3-6 實況程式設計影片學習平台登入介面 ........................................................... 42 圖 3-7 課程章節示意圖 ............................................................................................... 43 圖 3-8 影片評註示意圖 ............................................................................................... 44 圖 3-9 各類評註示意圖 ............................................................................................... 45 圖 3-10 評註分布示意圖 ............................................................................................. 45 圖 3-11 隨堂評量示意圖 ............................................................................................. 46 圖 3-12 送出答案示意圖 ............................................................................................. 46 圖 3-13 已完成作答示意圖 ......................................................................................... 47 圖 3-14 再次作答示意圖 ............................................................................................. 47 圖 3-15 課程講義 ......................................................................................................... 48 圖 3-16 個人學習紀錄示意圖 ..................................................................................... 49 圖 3-17 個人影片評註示意圖 ..................................................................................... 49 圖 3-18 個人隨堂評量示意圖 ..................................................................................... 50 圖 3-19 全班評註示意圖 ............................................................................................. 50 圖 3-20 瀏覽該學習者評註內容示意圖 ..................................................................... 51 圖 3-21 搜尋特定評註內容示意圖 ............................................................................. 51 圖 3-22 課程說明 ......................................................................................................... 52 圖 4-1 程式設計理解學習成就迴歸分析流程圖 ....................................................... 63 圖 4-2 程式設計實作學習成就迴歸分析流程圖 ....................................................... 63 圖 4-3 程式設計學習行為對程式設計理解學習成就迴歸分析路徑圖 ................... 82 xiv.

(16) 圖 4-4 程式設計理解學習成就較佳者之陳述型評註內容 ....................................... 82 圖 4-5 程式設計學習行為對程式設計實作學習成就迴歸分析路徑圖 ................... 85 圖 4-6 程式設計實作學習成就較佳者之程式編碼影片觀看頻率及觀看時間紀錄 85 圖 4-7 節錄程式設計理解進步幅度較差的學習者之陳述型評註內容 ................. 104 圖 4-8 節錄程式設計理解進步幅度較差的學習者之陳述型評註內容 ................. 104 圖 4-9 程式設計實作進步幅度較差者之解題邏輯影片及程式編碼影片觀看時間紀 錄................................................................................................................................. 107 圖 4-10 程式設計實作進步幅度較佳者之解題邏輯影片及程式編碼影片觀看時間 紀錄............................................................................................................................. 107 圖 4-11 學習者群集特性樹狀圖 ............................................................................... 108 圖 4-12 程式設計學習態度概況分析圖 ................................................................... 113 圖 4-13 節錄陳述型知識面向較高者之評註內容 ................................................... 127. xv.

(17) 第一章 緒論 本章共分為三節,第一節說明本研究之背景以及為何使用實況程式設計影片 輔助程式設計學習成動機;第二節為提出具體的研究目的,探討研究的內容;第 三節就研究中所提及的重要名詞作簡要釋義。. 第一節. 研究背景與動機. 程式設計能力須同時具備陳述型知識與程序型知識(McGill & Volet, 1997; Esteves, Fonseca, Morgado & Martins, 2009) 。傳統教學教師大多採取講授式教學, 即使展示程式碼也是示範事先規劃好、靜態的程式碼,因此使得學習者偏重理解 程式設計知識(陳述型知識) ,並且無法體會程式設計編碼的真實情況,也不知該 如何進行實作(程序型知識) ,導致無法培養完整的程式設計能力(Pea, 1984; Mayer, 1989; Rubin, 2013)。絕大多數學習者認為程式設計是困難的,因為學習者接收到 的學習方法以及所使用的工具皆採用傳統教學的方式,雖然有些人能理解程式設 計的陳述型知識但他們不知該如何使用這些陳述型知識才能編寫出正確的程式 碼,若想要學好程式設計,概念及解題策略為重要關鍵(Esteves, Fonseca, Morgado & Martins, 2009) 。學習程式設計需經過撰寫及除錯的複雜歷程,這對許多學習者 都相當具有挑戰性(Cauley, 1986)。此外傳統程式設計的教學通常著重於程式設 計的語法和指令,但是對程式設計新手而言,程式語言結構並不會對初學者學習 程式設計造成重大障礙,對於初學者來說真正的問題在於到底該如何把這些陳述 型知識組合成一個完整又正確的程式碼(Soloway, 1986) 。所以我們發現多數學習 者其實是缺乏了程序型知識以至於無法培養完整的程式設計能力。 而實況程式設計具有具有互動的、開放的、動態的、從無到有的編輯與思考 歷程,也是一種新穎、即時且即興的技術,他夠過和觀眾的互動來讓更多人了解 實況程式設計如何與藝術進行連結(Magnusson, 2013) 。我們從實況程式設計融入 教學中發現,由於它能呈現真實的程式設計解題程序及程式設計解題歷程,學習 者可透過觀看來習得程式設計的技巧,使得學習者增進程式設計學習成就(Rubin, 1.

(18) 2013) 。從研究中發現實況程式設計優勢在於: (1)對學生而言能因生動有效學習, 不再只是單一的從紙本上習得知識; (2)學生可上網搜尋相關資料以及從影片中 模仿專家,建立自身編譯程式的歷程; (3)將虛擬和現實連結,能藉由在日常生 活能使用到的題目或是和未來就業相關的題目進行編碼,這將大大提升學生學習 動機(Brown, 2015)。但現場教師授課時間不足無法呈現較冗長的程式設計思考 以及除錯歷程,即使老師真的花時間展示了整個程式設計來來回回的思考過程, 學生不一定能有效吸收,如果不能重複觀看解題思考過程,對學生來說也是種負 擔。 由於將實況程式設計應用於課程中太不切實際,因此我們把實況程式設計與 影片作結合,因為影片可紀錄整個程式設計的思考歷程,也能讓學習者一再的重 播以學習程式設計的動作。透過影片輔助學習比課堂單純授課的學習成就好,由 於每位學習者於課堂中學習進度不同,而影片能明確且呈現出變化的過程,若能 讓學生自我控制學習進度,學習時遇到問題時可再次播放影片重新複習該堂課程 內容(Kay & Kletskin, 2012a) 。為了讓學習者能進一步的將影片中觀看到的程式 設計知識進行深入思考,我們要求學生於實況程式設計影片中加上評註,因從研 究中發現評註有助於學習者的記憶與思考,在觀看影片的過程中有留下評註可加 深學習印象並幫助知識的吸收與記憶(Kiewra, 1989)。因此希望能藉由實況程式 設計影片來解決學習者程序型知識不足的程式設計學習困難,故實驗中將由業界 專家採預先錄好之實況程式設計影片來呈現的教學內容,搭配評註促使學生於學 習程式設計過程中進行深度思考以促進程式設計學習成效。 本研究期望能透過實況程式設計影片輔助程式設計學習,將聚焦於學習者透 過觀看實況程式設計影片搭配評註的方式來輔助程式設計學習,最後經由研究分 析與討論來瞭解此研究方式是否能有效的輔助程式設計學習,並於最後提出相關 建議。. 2.

(19) 第二節. 研究目的. 一、探究實況程式設計影片輔助程式設計學習平台對程式設計學習成就之影 響。 1.. 對於學習者學習程式設計程式設計理解學習成就之影響。. 2.. 對於學習者學習程式設計程式設計實作學習成就之影響。. 二、探究不同程式設計進步幅度高低的學習者在實況程式設計影片輔助程式設 計學習平台中是否具備不同的程式設計學習行為。 1.. 不同程式設計理解進步幅度學習者的程式設計學習行為。. 2.. 不同程式設計實作進步幅度學習者的程式設計學習行為。. 三、探究實況程式設計影片輔助程式設計學習平台對學習者程式設計學習態度 之影響。. 3.

(20) 第三節. 名詞釋義. 本研究希望以實況程式設計影片建立起學習者的程式設計陳述型知識與程 序型知識,期望增進其程式設計能力。研究過程中將探討程式設計理解與程式 設計實作評量,以及程式設計學習如何以適當的方式促進學生於學習過程中進 行深度思考,最後將蒐集到的資料進行量化與質性分析,故本節會先以本論文 中所提及的名詞加以定義與討論。. 一、實況程式設計影片輔助程式設計學習平台 本研究使用之實況程式設計影片輔助程式設計學習平台(Live-coding videos programming learning platfrom)為自行開發之學習平台,如圖 1-1。而平台開發條 件為:提供簡單的連結、實用的互動、預習功能,濃縮的訊息讓任務清楚簡單(van der Meij & van der Meij, 2015) 。因此本研究將以上條件加入實況程式設計影片輔 助程式設計學習平台,其具備:實況程式設計影片、評註、線上評量、學習行為 紀錄、公告等功能。. 圖 1-1 實況程式設計影片輔助程式設計學習平台示意圖. 4.

(21) 二、實況程式設計影片 實況程式設計是一個平台,可讓程式設計師於該平台中展示自己從無到有 的編碼過程,程式設計師會開一個想表演的主題,通常程式設計主題會與實際 情境結合或呈現些特別的案例,如圖 1-2。在視窗中左下角的程式設計師會一邊 依照該主題進行從無到有的程式設計編碼歷程一邊進行講解,也會透過左上角 的視窗即時的和學習者進行互動,好讓他們能理解這些程式碼的意義,因此實 況程式設計能夠呈現真實情境中的程式設計解題程序和解題歷程。由於授課時 間不足無法呈現較冗長的程式設計思考以及除錯歷程且不能重複播放對學生來 說也是負擔,故本研究將實況程式設計與影片作結合,因為影片能將思考歷程 記錄下來也能讓學習者重複觀看內容已進行學習。 本研究之實況程式設計影片為專業程式設計師將實況程式設計之特色(從 無到有、動態的、非線性的編碼歷程搭配程式設計編碼說明)融入程式設計的 解題程序以及解題歷程錄製而成,期望學習者透過實況程式設計影片有效的輔 助程式設計學習。. 圖 1-2 實況程式設計示意圖(https://www.livecoding.tv/). 5.

(22) 三、程式設計學習行為 本研究之程式設計學習行為指的是學習者於實況程式設計影片輔助程式設 計學習平台中所進行的學習行為,此學習行為包含了影片觀看及影片評註兩大 類:. 1.. 影片觀看. 所謂觀察學習(Observational learning),指的是個體從旁觀者的身分(本身 不必實際參與活動)觀察他人行為表現即可獲得學習(Bandura, 1986)。透過觀 察學習(Observational learning)中的保持階段能將整個操作流程記憶在腦海 中,並可提升實作成功的比例(Yi & Davis, 2003)。 本研究之影片觀看為學生藉由實況程式設計影片學習平台中的實況程式設 計影片,觀看程式設計的解題程序及程式設計的解題歷,以提升程式設計能力 的學習。影片觀看的內容包含:教師講授影片觀看頻率(次)、解題邏輯影片觀 看頻率(次)、程式編碼影片觀看頻率(次)、教師講授影片觀看時間(秒)、解 題邏輯影片觀看時間(秒)、程式編碼影片觀看時間(秒)。. 2.. 影片評註. 所謂影片評註(Annotation),指的是將所撰寫的評論內容標註在特定影片 上的動作。一般文獻中的註記(review)是觀看後將心得留下來,但在研究中的 評註(Annotation)行為所代表的是於該影片中特定的某一段落中所撰寫的評論 內容。 本研究之影片評註為學習者透過觀看實況程式設計影片過程中,將自身產 生之反思或將重點記錄下來以及藉由同儕的評註內容讓自己進行深度思考。影 片評註的內容包含:反思型評註、反應型評註、陳述語法型評註(則)、陳述概 念型評註(則)、程序語法型評註(則)、程序概念型評註(則)。. 6.

(23) 四、程式設計能力 程式設計能力須同時具備陳述型知識與程序型知識(McGill & Volet, 1997; Esteves, Fonseca, Morgado & Martins, 2009)。本研究依據 McGill & Volet (1997)的文獻將程式設計能力定義為可同時應用陳述型知識(即是程式設計 理解能力,此為了解程式設計相關概念與技能的知識)與程序型知識(即是程 式設計實作能力,此為能利用程式設計概念與技能以實作程式碼的知識)兩 類,如表 1-1:. 表 1-1 程式設計知識類型編碼表. 語法 知識. 概念 知識. 1.. 陳述型知識. 程序型知識. 陳述語法型知識. 程序語法型知識. 理解基礎語法. 當要撰寫程式時有 應用語法規則能力. 陳述概念型知識. 程序概念型知識. 理解且能解釋程式碼中. 有能力針對程式語言的問題. 所有語意及函數之意義. 來設計解法. 陳述型知識(Declarative knowledge). 為了瞭解學習者在程式設計學習過程中習得何種知識,本研究之陳述型知 識包含陳述語法型知識與陳述概念型知識:陳述語法型知識為學習者能理解基 礎語法;陳述概念型知識為學習者能理解且能解式程式碼中所有語意及函數之 意義。. 2.. 程序型知識(Procedural knowledge). 為了瞭解學習者在程式設計學習過程中習得何種知識,本研究之程序型知 識包含程序語法型知識與程序概念型知識:程序語法型知識為當學習者需要撰 寫程式時有應用語法規則的能力;程序概念型知識為學習者有能力針對程式語 言的問題來設計解決方法。 7.

(24) 五、程式設計先備知識 程式設計先備知識乃是學習者在學習程式設計之前即已具備的知識。因此 為了瞭解學習者的程式設計先備知識程度,故本研究將程式設計先備知識評量 分為兩種,主要評估學習者在學習進階程式設計課程前所具備之程式設計知 識,評量內容為基礎程式設計內容:. 1.. 程式設計理解先備知識評量. 主要評量學習者在進行課程前,對於程式設計陳述型知識的語法與概念的 理解應用,是否了解程式設計相關概念與技能的知識,採取筆試的方式進行評 測。. 2.. 程式設計實作先備知識評量. 主要評量學習者在進行課程前,對於程式設計程序型知識的語法與概念的 理解應用,是否能使用程式設計概念與技能以實作程式碼的知識,採取上機的 方式進行評測。. 六、程式設計學習成就 程式設計學習成就乃是學習者藉由實況程式設計影片輔助程式設計學習後 所具備的程式設計知識。因此為了瞭解學習者在程式設計學習成就的程度,故 本研究將程式設計學習成就評量分為兩種,主要評估學習者透過實況程式設計 影片輔助程式設計學習後所具備之程式設計知識,評量內容為包含部份程式設 計先備知識評量試題及本學期所學之進階程式設計內容:. 1.. 程式設計理解學習成就評量. 主要評量學習者經過實況程式設計影片輔助程式設計學習後,對於程式設 計陳述型知識的語法與概念的理解應用,是否了解程式設計相關概念與技能的 知識,採取筆試的方式進行評測。. 2.. 程式設計實作學習成就評量. 8.

(25) 主要評量學習者經過實況程式設計影片輔助程式設計學習後,對於程式設 計程序型知識的語法與概念的理解應用,是否能使用程式設計概念與技能以實 作程式碼的知識,採取上機的方式進行評測。. 七、程式設計進步幅度 程式設計進步幅度乃是學習者藉由實況程式設計影片輔助程式設計學習後 所變動的程式設計知識。因此為了瞭解學習者在程式設計進步幅度的程度,故 本研究將程式設計進步幅度分為兩種,主要評估學習者透過實況程式設計影片 輔助程式設計學習後所增、減之幅度:. 1.. 程式設計理解進步幅度. 程式設計理解進步幅度為學習者從程式設計理解學習成就評量成績到程式 設計理解先備知識評量成績的變化。. 2.. 程式設計實作進步幅度. 程式設計實作進步幅度為學習者從程式設計實作學習成就評量成績到程式 設計實作先備知識評量成績的變化。. 八、程式設計學習態度 程式設計學習態度乃是探究學習者在程式設計學習時所抱持的態度。因此為 瞭解學習者的程式設計學習態度,故本研究將探究程式設計學習態度四面向, 包含動機面向、程序型知識面向、陳述型知識面向及自我效能面向。將採取線 上問卷的方式評量學習者對程式設計學習之態度及感受。. 九、實況程式設計影片分類 實況程式設計影片分類乃是將實況程式設計影片內容進行分類,以探究學習 者觀看程式設計影片時都看何種內容。故本研究一本學期所學之範圍:副程式 基礎練習、Array 練習、結構練習、泡沫排序法及選擇排序法之影片內容,將其 分為三類:語法意涵、解題邏輯及程式執行與編譯。. 9.

(26) 第二章. 文獻探討. 本章將針對研究主題相關之理論及概念,進行文獻整理與探討。共分為七節, 第一節為程式設計知識類型,說明程式設計能力所需的知識類型有哪些;第二節 為程式設計學習,說明程式設計學習目前狀況及程式設計困難之處;第三節為程 式設計教學策略,將探討那些程式設計教學策略有助於程式設計學習;第四節為 實況程式設計輔助程式設計學習,說明實況程式設計如何融入課程以輔助學習者 學習程式設計;第五節為影片式教學,說明採取影片式教學對學習者產生的效益; 第六節為同儕互評,說明評註的作用與成效,接著說明在學習過程中所產生的反 思對學習者帶來的影響。. 第一節. 程式設計知識類型. Bloom 新版教育目標分類將知識面向(Knowledge Dimension)分為四類 (Krathwohl, 2002),如圖 2-1: 1.. 事實知識:為學生必須熟悉基本術語或解決問題的基本要素。. 2.. 陳述知識:為將基本知識之間相互關聯使他們共同發揮作用(分類、 描述、理論)。. 3.. 程序知識:為知道如何做某件事,具有特定步驟以及決定如何應用不 同程序的準則。. 4.. 後設知識:為對一般知識的認知及對自身知識的認知。. 後設認知 程序知識 陳述知識 事實知識. 圖 2-1 Bloom 新版教育目標分類. 10.

(27) 而心理學家認為一般長期記憶中儲存的知識有(張春興,2010): 1.. 陳述型知識(declarative knowledge): 是種用語言表達出舊有的經驗或對事物的認知之知識,屬於知的知識。. 2.. 程序型知識(procedural knowledge): 是種能將陳述性知識實踐的知識,屬於既知道也能執行的知識。. 而程式設計學習過程中抽象概念的理解(陳述型知識)及解題策略(程序型 知識)對於解決程式設計問題是很重要的(McGill & Volet, 1997; Esteves, Fonseca, Morgado & Martins, 2009)。從數學的角度來看,在思考、選擇或發想出新的策略 時會應用到程序型知識,而陳述型知識會直接或間接影響著程序型知識的發展 (Rittle-Johnson et al., 2001; Star, 2005)。學習數學的過程中發現,陳述型知識與 程序型知識彼此是雙向且迭代的、並彼此互相輔助的(Rittle-Johnson & Schneider, 2014) 。而學習程式設計時有以下兩個重點: (1)拆解題目設計解法-學習者必須 先看懂程式設計題目後,再依照題目中的規範設計出相應的解法來解決程式設計 的問題以產出符合要求的答案。 (2)將解法轉換為程式碼-接著學習者必須將所 想到的解法轉換為程式語言中的程式碼,才能夠有效的使用程式設計編譯出符合 要求的答案(Costelloe, 2004)。 故本研究將程式設計能力定義為可同時應用陳述型知識(了解程式設計相關 概念與技能的知識)與程序型知識(利用程式設計概念與技能以實作程式碼的知 識)兩類: 一、. 陳述型知識(Declarative knowledge): 1.. 定義及特質. 陳述型知識可以是明確的或隱喻的,因此不一定要使用以言詞表達出來 (Goldin-Meadow, Alibali & Church, 1993)。然而知識中的概念通常被稱為陳述型 知識且不會只針對特定問題而定(Byrnes & Wasik, 1991; Canobi, 2009; RittleJohnson, Siegler & Alibali, 2001) 。陳述型知識也式一種抽象的思想語言,源自於 抽象的符號系統,可透過不同的符號組合成有意義的內容(Fodor, 1987)。 而陳述型知識包含了(Krathwohl, 2002): (1) 分類與類別的知識-此為能知道並區別不同的事物的類別,並將其進行區 別及排列的知識。. 11.

(28) (2) 原理與通則的知識-透過現象所抽取其概要,將其應用於描述、預測、解 釋或行為的方向。 (3) 理論、模型、結構的知識-對複雜的現象及觀點提出系統性的觀點,將其 以理論、模型的方式呈現。 教學策略. 2.. 學習者對知識的理解會隨著經驗的增加而變多,但無法自行對計算機的概念 進行系統性的理解,因此教師須積極且運用合適的解釋和隱喻進行教學 (Hammond & Rogers, 2007) 。程式設計之陳述型知識可透過相應的概念以表徵其 意義、使用其他領域相似的東西來類比、用舊有的知識來比擬新知(Murray, Schultz, Brown, & Clement, 1990)。 從數學的科目來看,陳述型知識綜合了自己本身對數學的思想和自身對數學 的瞭解程度(Kilpatrick, 2001) 。當學習者有了對於陳述型知識的理解才能使得程 序型知識發揮出最大效益(Long, 2005) 。在學習國小數學時若要發展出較好的程 序型知識及策略能力,很顯然的都與陳述型知識密不可分(Verschaffel et al., 2009) 。 從化學的科目來看,陳述型知識包含許多公式、規則、原則和問題解決,學 生須掌握陳述型知識並有能力回憶和選擇適當的方案來解化學問題(Lee, Woh-Un, Ngoh-Khang & Lian-Sai, 2001) 。在學習化學時,對於陳述型知識的理解和程序型 知識的問題解決能力都是非常重要的,為了正確的解決問題,學生需要應用相關 陳述型知識和如何操作的程序型知識以解決問題 (Cracolice, Deming & Ehlert, 2008)。. 二、. 程序型知識(Procedural knowledge): 1.. 定義及特質. 程序型知識由解決特定問題的程序中所發展,它有別於其他知識,因為程序 型知識具備了非常明確的順序性(Hiebert & LeFevre, 1986)。程序型知識也是一 個為了達到目標進行一系列特定步驟來解決問題的能力,並包含將已知的程序型 知識應用新問題的能力(Canobi, 2009; Rittle-Johnson et al., 2001; Baroody, Feil, & Johnson, 2007) 。而程序型任務通常定義為單一對象或特定情境中須以特定順序步 驟來完成任務,其特性為讓學習者學會如何逐步且有順序性的習得技能以達到目 標(Ellis, Whitehill, & Irick, 1996)。 12.

(29) 而程序型知識包含了(Krathwohl, 2002): (1) 特定學科之技能與演算的知識-為有特定順序性步驟且最終會有結果的知 識。 (2) 特定學科之技術與方法的知識-為對結果有一定共識或學科規範的知識。 (3) 決定運用和規則的知識-知道何時該使用何程序的知識。 2.. 教學策略. 先備知識會影響程序型知識,程序型知識也包含了使用多種方法和何時該 應用這些知識來解決問題,並於解題時知道該用何種策略與如何將陳述型知識加 以應用來解決程式設計的問題(Star, 2005) 。而它也是許多活動能夠完整學習的重 要部分(Rodriguez, 2002) 。這更是學習數學必須擁有的重要知識(Star & Stylianides, 2013)。從研究中發現若經由體驗學生會更有效的去了解整個操作過程及步驟進 而增強程序型知識(Rose, 2004)。. 程序型知識的教學策略有以下三項: (1) 比較 若在先備知識評量之前即知道其中一種解題方法的學習者,可經由自身舊有 的經驗與題目相互比較、對照中來獲得較佳的程序型知識(Rittle-Johnson & Star, 2007; Rittle-Johnson, Star, & Durkin, 2009) 或陳述型知識(Rittle-Johnson & Star, 2009)。 (2) 自我解釋 小學生在學習數學時若有進行自我解釋(對自己解是這裡為什麼對?這裡為 什麼錯?這堆數字的意義式什麼?),將有助於學習程序型知識(Rittle-Johnson, 2006)。 (3) 探索 進行教學前若學生先自行解決不熟悉的問題比授課後才解決問題的學生能獲得 較多的陳述型知識與程序型知識(DeCaro & Rittle-Johnson, 2011) 。學習者經由體 驗便更有效的去理解整個操作過程及步驟(Rose, 2004)。. 13.

(30) 第二節 一、. 程式設計學習. 程式設計學習目前狀況 程式設計學習在學校的課程是一個熱門的話題:有一派教育者認為編寫程式. 只是一項工作技能,程式教學不應包括在一般課程中;另一派教育者則認為程式 是一個可以學習有效的解決問題技能的課題(Soloway, 1986) 。程式設計是資訊科 學科目中必須學習的基本能力,但程式設計總是被認為很難學習,學生也很容易 放棄,因教師大多使用傳統方式來指導學生學習的方法與使用傳統的教學工具來 解決問題,也發現普遍學生認為的困難之處在於無法理解抽象概念,因程式語言 無法讓學生與現實生活產生連結,使得他們不知道要如何才能將解題的想法轉換 為正確的程式碼來進行程式解題(Esteves, Fonseca, Morgado & Martins, 2009) 。而 目前傳統教學中教師大多採講授式教學,只呈現事先規劃好、靜態的程式碼,因 此無法展示程式設計的編碼以及思考歷程(Rubin, 2013)。. 二、. 程式設計學習困難 絕大多數學習者認為程式設計是困難的,因為學習者接收到的學習方法以及. 所使用的工具皆採用傳統教學的方式,雖然有些人能理解程式設計的陳述型知識 但他們不知該如何使用這些陳述型知識才能編寫出正確的程式碼,若想要學好程 式設計,概念及解題策略為重要關鍵(Esteves, Fonseca, Morgado & Martins, 2009) 。 當學生以自以為的自然語言去編寫程式碼,會造成與程式語言中的正確指令不符 而編譯錯誤,這部分涉及了學生對於基本語意的誤解而產生了錯誤認知 (Kaczmarczyk, Petrick, East & Herman, 2010)。 此外傳統程式設計的教學通常著重於程式設計的語法和指令,但是對程式設 計新手而言,程式語言結構並不會對初學者學習程式設計造成重大障礙,對於新 手來說真正的問題在於到底該如何把這些陳述型知識組合成一個完整又正確的 程式碼,從研究顯示程式設計新手最常犯的錯誤就是將程式設計語法錯誤的融合, 例如:將 For 迴圈的語法和 While 的語法錯誤混合使用(Soloway, 1986) 。程式設 計新手最常犯的錯誤在於無法撰寫完整的程式設計編碼以及容易遺漏程式設計 基礎語法(Murphy et al., 2008) 。也發現以下四個因素導致新手的程式設計能力較 差(Sekiya & Yamaguchi, 2013):. 14.

(31) 1.. 只會編寫單一指令,無法將多個指令融合。. 2.. 對程式語言的功能和架構感到混亂。. 3.. 無法表示出自己的意思。. 4.. 無法表達出高層次的抽象意義。. 在理解新手的學習困難後,試著找出專家和新手之間的差異,Mayer (1989) 指出專家具備完整的語法知識;進而發現關於程式設計,專家和新手對於程式的 語法均能理解和記憶,但專家則擁有更多策略性知識,因此能更有效的將所知道 的陳述型知識有效的應用程式結構及語法來解決程式問題。也發現程式設計專家 不只需要了解程式語言結構的語法和語意知識,更在自己的腦中建立了大量的程 式設計資料庫,當他們面對問題時可採用那些程式設計典型解決方法,以及使用 編碼將它們組合成可解決問題的程式,因此老師必須明確的教導學生該如何建立 起自己腦中的程式語言資料庫並學會如何將它們實際應用於程式設計問題以順 利解決問題(Soloway, 1986) 。新手和專家都採用了多樣的除錯方式,但是專家們 從整體性的觀點去解決問題但新手並沒有這種觀點,因此我們發現專家比新手更 加精通程式設計是因為對程式設計訊息有著較完善的解決程式設計問題能力 (Vessey, 1985)。專家和新手在除錯中會採用相同的解題策略,但專家們對程式 的理解更快更準確,以至於能更有效的除錯也可避免於除錯時添加新的程式設計 錯誤(Gugerty & Olson, 1986)。 關於程式設計能力,需要有正確的觀念與邏輯能力才能建構出正確編碼,在 學習程式設計過程中的困難點需要需要透過實作才能讓學習者透過實際撰寫程 式碼時顯現出盲點,因為當程式碼被執行時才能發現問題所在(Sirkiä & Sorva, 2012) 。學習程式設計需經過撰寫及除錯的一段冗長且複雜的歷程,這對許多學習 者都是相當具有挑戰性的一項任務(Cauley, 1986)。因此我們從以上困難中發現 由於學習者缺乏了程序型知識,導致無法培養出完整的程式設計能力。. 15.

(32) 第三節. 程式設計教學策略. 學者努力地研究要透過何種教學策略,才能有效影響認知處理中的陳述型知 識,以呈現出較好的程序型知識成就表現(van Hooijdonk & Krahmer, 2008; Zacks & Tversky, 2003)。 一、程式設計課程教學策略 Soloway (1986)認為學習程式設計時,教師應教導學生如何規劃程式編碼, 因程式設計專家於解題過程中能夠靈活運用知識(陳述型知識)與解題策略(程 序型知識)來解決程式設計問題。從研究中我們發現學習程式設計時有以下兩個 重點: (1)拆解題目設計解法—學習者必須先看懂程式設計題目後,再依照題目 中的規範設計出相應的解法來解決程式設計的問題以產出符合要求的答案。(2) 將解法轉換為程式碼—接著學習者必須將所想到的解法轉換為程式語言中的程 式碼,才能夠有效的使用程式設計編譯符合要求的答案(Costelloe, 2004)。而另 一派研究中也發現學習程式設計所需的兩大要點為: (1)對程式設計知識的理解 (陳述型知識) , (2)能將對於程式設計的知識轉換為程式設計編碼出來(程序型 知識)(IEEE Computer Society, 2002)。同整這兩派的程式設計所需的兩大要點中 可得知,其所需的程式設計知識類型呼應了學習程式設計需要對程式設計理解的 知識(陳述型知識) ,才能以此為基礎對程式設計問題進行解題及編碼的知識(程 序型知識) 。然而學習程式設計最有效益的訓練就是讓學習者不斷的重複循環「描 述→執行→反思→除錯」的歷程(Valente, 1995)。 當教師在教導程式設計編碼和解決問題的策略時,其中關鍵的目標是需要讓 學生發展出自己能理解的抽象概念:如果學習者必須解決每個不同的程式設計問 題,那麼對學習者來說這些不同的程式碼、不同的問題解決能力都是一種新的學 習經驗(Soloway, 1986) 。以 Soloway 的理論為基礎,發現問題解決乃是一種個人 的思維歷程,就像是以前學到的法律至今仍可用來解決任何情境下的問題 (Jonassen, 2004)。並且每個人都需要使用知識和透過技巧來解決問題(Taconis, Ferguson-Hessler & Broekkamp, 2001)。所以我們發現問題解決是一種應用程序型 知識來解決問題的方式(Mc Gregor, 2007) 。而問題解決能力也是每一個學科授課 過程中重要的一部分(Robinson, 2003)。尤其在任何一門學科裡,問題解決能力 都是一個高度複雜的人類行為(Haláková & Prokša, 2007)。. 16.

(33) 關於問題解決教學策略可分為以下四個步驟,這將有助於學生建立起陳述型 知識與程序型知識(Surif, Ibrahim & Mokhtar, 2012): 1.. 初步階段-主要測試學生陳述型知識的水平。. 2.. 聚焦階段-透過學生的討論來分組或單獨的去看學生的學習狀況. 3.. 挑戰階段-通過探究活動讓學生以正確的陳述型知識消除自身的錯誤認 知,並在活動過程中發展他們的程序型知識。. 4.. 應用階段-將學到的陳述型知識應用於其他現象中,並要求學生進行各種 相關的活動。. 二、其他學科教學策略: 由數學課程的教學策略中發現,陳述型知識及程序型知識兩者之間雖不一定 有特定順序但兩者關係緊密(Star, 2005) 。陳述型知識綜合了自己本身對數學思想 和自身對數學的瞭解程度(Kilpatrick, 2001) 。學習國小數學時若要發展出較好的 程序及策略能力,很顯然的都與概念型知識密不可分(Verschaffel et al., 2009)。 有部分教育工作者將概念簡單化或直接化,使得計算過程或程序型知識成為一種 死記硬背的知識,數學教育研究者認為程序型知識應該是具順序性的知識,經由 一步一步完成的過程(Baroody, Feil, & Johnson, 2007)。 由化學課程的教學策略中發現,陳述型知識是理解化學的概念和理論,而程 序型知識則是知道如何應用這些學到的概念在任何情境中來解決問題(Chiu, 2007) 。化學包含許多公式、規則、原則和問題解決,學生須掌握陳述型知識並有 能力回憶和選擇適當的方案來解化學問題(Lee, Woh-Un, Ngoh-Khang, & Lian-Sai, 2001) 。在學習化學時,對於概念的理解(陳述型知識)和問題解決的程序(程序 型知識)都是非常重要的,為了正確的解決問題,學生需要應用相關陳述型知識 和如何操作的程序型知識以解決問題 (Cracolice, Deming, & Ehlert, 2008)。 由舞蹈課程的教學策略中發現,若錄下同學上課時練習跳舞的影片再讓專家、 教師與同儕給予回饋將有助於升學習者表現,因他們能實際的實踐在自己日後的 舞蹈動作上,也因著包含了不同觀點的回饋可從不同面向中看見自身需要修正或 可借鑒他人之處,透過同儕互評過程能積極的去看自己以及同儕課堂中的表現進 而促使自身進行思考並反思學習歷程,間接的提升了自我學習成就(Leijen, Lam, Wildschut, Robert-Jan Simons, & Admiraal, 2009)。 17.

(34) 第四節. 實況程式設計輔助學習. 一、實況程式設計特性 實況程式設計是一個平台,可讓程式設計師於該平台中展示自己從無到有的 編碼過程,程式設計師會開一個想表演的主題,通常程式設計主題會與實際情境 結合或呈現些特別的案例來展示解題歷程,故吸引許多程式設計師進行觀看以獲 得實作能力知識(https://www.livecoding.tv/) 。實況程式設計成為了是一種互動的、 開放的、動態的、從無到有的編碼歷程,也是一種新興的、即時且即興的技術, 它透過不同管道和觀眾產生連結(例如:在推特上和觀眾來回互動)或由實況程 式設計平台中不斷和觀眾解釋他們的做法和編寫程式碼的系統為何,以讓更多人 瞭解這些程式碼到底如何和音樂、藝術進行連結(Magnusson, 2013)。. 二、實況程式設計之優劣 接著我們從以往的研究中探究實況程式設計的優缺點,可發現實況程式設計 優勢在於(Brown, 2015): 1.. 對學生而言能因生動有效學習,不再只是單一的從紙本上習得知識. 2.. 學生可上網搜尋相關資料以及從影片中模仿專家,建立自身編譯程式 的歷程. 3.. 將虛擬和現實連結,能藉由在日常生活能使用到的題目或是和未來就 業相關的題目進行實況編碼,這將大大提升學生學習動機。. 從Collins, McLEAN, Rohrhuber & Ward(2003)的研究中發現實況程式設計的 優缺點如表2-1,實況程式設計的優點在於它的靈活性與即興創作的部分,也因此 具有挑戰性,因程式設計師必須將艱澀的程式碼轉換為能與藝術連結的橋樑並讓 普羅大眾明白他到底在做些什麼事情;缺點即為優點所引申出的部分,程式設計 師需要更多的事前準備、即興表演具有風險性且與普遍印象中的藝術有所出入, 因此程式設計師必須要有能力一邊撰寫程式碼一邊進行解說才能吸引觀眾去理 解這場實況程式設計的表演內容甚至能夠學習程式設計的技能。. 18.

(35) 表 2-1 實況程式設計優劣分析表. 優點. 缺點. 撰寫程式碼的靈活性,下一段內容. 容易忘記當下的音頻或在準備下一小結時. 有許多可能性. 花太多時間. 非常大的智力挑戰. 你的腎上腺素和壓力在工作場合中會變高. 可於程式碼中展現自我,任意變化. 未經過除錯和測試程式碼,直接執行編碼. 複雜的結構. 是有風險的. 即興創作的新表演方式. 當你想在演奏過程中想加些特殊元素時可 能會失敗或得到觀眾的噓聲. 投影出編碼感覺很單調,但看起來. 不符合藝術的標準!. 很艱澀難懂的編碼過程具有吸引力 將可以看見的程式碼轉化為音樂. 需要付出極大努力才能獲得回報,當沒有 靈感時須先準備好備用編碼. 計算機語言(Computer languages). 編碼不是視覺上最吸引人的方式,除非你. 的編碼是非常豐富且無限的. 有進一步解釋這些編碼的意義為何. 三、實況程式設計教學策略 在美國及歐洲使用實況程式設計教 JAVA 入門,大部分學生認為使用實況程 式設計的授課方式對於學習程式設計而言比較有用,因實況程式設計呈現了程式 設計編碼與執行的過程,教師們於課堂中從頭開始將程式碼展示出來,取代了傳 統教學大多直接秀出最後已經打好的、靜態的程式碼,學習者認為透過實況程式 設計能看見專家如何將腦中的想法轉換為程式碼,能夠看見專家從無到有的將整 個程式設計利程展現出來使得學習者感覺在學習過程較生動且吸引人,但缺點則 為授課步驟有點太快,稍不留神就會跟不上專家的速度(Paxton, 2002)。因此我 們發現實況程式設計能有效的提升程式設計編碼的正確性,當以實況程式設計進 行程式設計教學期間,若能融入常見的錯誤並重新撰寫與執行程式碼時,學習者 可透過觀看習得撰寫及除錯的計能,以至於當學習者實際編碼時能迅速的發現錯 誤並進行修正的動作,而實況程式設計對學生來說更能提升學習成就的部分在於 實況程式設計能呈現出整個完整的動態編碼歷程(Rubin, 2013)。. 19.

(36) 實況程式設計能夠呈現真實情境中的程式設計解題程序和解題歷程,透過程 式設計師的解說可讓學習者更加明白程式設計的學習內容,這些部分對培養學習 者於傳統授課中不足的程序型知識是有幫助的。. 20.

(37) 第五節. 影片式教學. 一、影片式教學重要性 實況程式設計授課時有些學習者認為授課步驟有點太快,稍不留神就會跟不 上專家的速度(Paxton, 2002)。而透過影片輔助學習比課堂單純授課的學習成就 好,因為影片能明確且呈現出變化的過程,學生能自我控制學習進度以有效學習, 且視覺化有助於提升學習成就(Kay & Kletskin, 2012a)。透過影片式教學可提升 學習成就,因它能: (1)呈現和軟體相同的介面利於學習者操作,讓學習者感受 到真實感能照著影片中的步驟進行操作。 (2)影片能動態展示出操作過程中所產 生的瞬間變化,以利學習者觀看重點。 (3)影片具有完整的典範以供學習者來完 成任務。換句話說,影片呈現出的操作變化及示範能讓學習者與實際操作軟體具 有一致性,這將有利於提升學習者的學習成就(van der Meij & van der Meij, 2015) 。 Guzdial & Soloway(2002)建議可用多媒體來提升對程式語言的學習興趣。 從雙碼理論中得知當學習者視覺和聽覺同時開啟時會互相加強且有利於吸收資 訊,認知系統包含語文及非語文系統,他們獨立運作且彼此互補,以發展認知記 憶功能,最好能將兩個系統相互連結以強化認知(Clark & Paivio, 1991)。使用者 透過YouTube學習程序性知識的接受度內容豐富度越高,使用者也會覺得越實用 (Davies, 1993)。 在設計影片式教學中,影片設計與平台架構對於學習者都是重要的影響因素, 因為在主題內容的設計上能將影片切割成幾個清晰步驟(Kay & Kletskin, 2012b) : 1.. 了解問題解題背景連接到相關知識。. 2.. 在練習上加強示範(重點畫記) 。. 3.. 說明解題關鍵。. 4.. 影片簡短等都是影片開發上注意的重點。. 二、影片式教學輔助學習 從舞蹈課程(composition course and ballet course)發現,當錄下學生們上課 的影像並要求學生互相評論時,無論自己或同儕的影片皆可提升學習表現,因為 能將從影片中所學到實計應用於自身,另外關於評論的部分可發現學習者在互相 評論時可提升他們的學習動機,並且促進自己進行深度反思才能留下評論,由於. 21.

參考文獻

相關文件

 Promote project learning, mathematical modeling, and problem-based learning to strengthen the ability to integrate and apply knowledge and skills, and make. calculated

• Students’ learning experiences are organised within the school curriculum framework to include knowledge, generic skills, values and attitudes spanning the five

Through study in various knowledge contexts and through engaging in a range of learning activities, students will acquire technological concepts and knowledge and develop

The A-Level Biology Curriculum aims to provide learning experiences through which students will acquire or develop the necessary biological knowledge and

stating clearly the important learning concepts to strengthen the coverage of knowledge, so as to build a solid knowledge base for students; reorganising and

高等電腦輔助設計與製造 (Advanced Computer Aided Design and Manufacturing).

National Taiwan University July 9, 2005 Page 5..

• To consider the purpose of the task-based approach and the inductive approach in the learning and teaching of grammar at the secondary level.. • To take part in demonstrations