• 沒有找到結果。

高學習成就學生程式設計學習研究

N/A
N/A
Protected

Academic year: 2021

Share "高學習成就學生程式設計學習研究"

Copied!
112
0
0

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

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授:李忠謀博士. 高學習成就學生程式設計學習研究 A study on computer programming learning by high achievement students. 研究生:陳佳宜 撰. 中華民國一零六年八月.

(2) 摘要 程式設計已是各國資訊教育重點課程之一,許多程式設計教學策略因應而生,然 而,多數針對提高學習動機而設計的教材,對於提升高學習成就學生的學習成效幫助 有限。因此,本研究探討主科學習成就高的學生於程式設計學習上的表現,以期能提 出確切提升高學習動機學生學習成效之學習策略。實驗對象為國中教育會考 PR 值 95 以上之女校高中生,以班級為單位隨機分為實驗組與控制組。實驗組採取先學習程式 設計概念再培養實作能力的教學模式,控制組則採取傳統講述型教學模式。在先學習 程式設計概念再培養實作能力的教學模式中,使用視覺化程式設計工具以輔助學生專 注於程式設計概念的學習,並於程式設計實作能力階段,先讓學生聚焦於學習語法, 再進行程式設計問題解決的練習。而傳統講述型教學模式則採用一般高中生學習程式 設計的模式,也就是同時學習程式設計概念與程式設計語法。 實驗組與控制組於期中與期末進行考核,考核內容主要為評估各組學生程式設計 概念以及程式設計實作能力的差異。研究結果顯示,採用先學習程式設計概念再培養 實作能力的教學模式,對於高中主科學習成就高的學生,無論是在程式設計概念的理 解或程式設計實作能力的培養,皆有良好的效果,且相較於採用傳統講述式教學模式 的學生,更能有效降低班級學生的學習落差。. 關鍵字:程式設計學習、高學習成就學生. I.

(3) ABSTRACT Computer programming is one of the key courses of secondary education in various countries. However, most of the learning strategies are limited in improving high achievement students’ learning performance. Therefore, this study focused on programming learning by high achievement students, so as to propose a learning strategy to improve the learning performance of them. We select 272 female high school students who have great performance on Comprehensive Assessment Program for Junior High School Students. They were randomly divided into the experimental group and the control group. The experimental group adopts the strategy of learning programming concepts before programming skills that uses visual programming tools to focus on programming concepts, and then in order to avoid syntax error, they learn programming syntax before coding. The control group adopts the traditional lecture method that is learning programming concepts and syntax at the same time. There are two assessment to examine the differences between the two groups of students in programming concepts and programming skills. The results show that the students who adopt the strategy of learning programming concepts before programming skills has better learning performance in both of programming concepts and programming skills. Also, it is more effective in reducing the learning achievement gap of students.. Keywords: programming learning, high achievement students II.

(4) 誌謝 回首這兩年的過程,同時身兼教師與學生身分,許多辛苦時分難以言喻。謝謝在這 段時光,陪在我身邊的所有人,你們一直是支撐我走下去的力量,是我疲憊不堪時,溫 暖的幸福。 首先,要感謝我的指導教授,在我入學時建議我專心於學生的身分不要有太多的外 務,正因如此,為了證明自己能夠同時完成兩邊的事務,我才能時時不忘鞭策自己。謝 謝您在讓我做自己想做的事情時,不忘拉我一把,免得我忘了最重要的事情是什麼。您 不輕易誇獎別人,因為我們仍有很多努力的空間,所以,在我工作一年後,您認可我能 夠同時兼顧學生與教師身分時,那真是令我最為感動與欣慰的時刻,使我能夠繼續努力 再走一年。謝謝您給予我參加研討會的機會,讓我能夠遠赴德國,跟世界各地的人分享 成果,那一次的經驗,才讓我切實感受到研究的重要性,同時也提升了自信。 研究生活的調劑,非橋牌莫屬。謝謝實驗室的學長、學弟妹、同學,陪我打了兩年 的橋牌,幾乎每次都得打到我贏才停止。謝謝依潔、維琳、盈君,碩一時一起完成的計 劃與活動,因為有你們,即使過程疲累卻很有趣。謝謝逸禮幾乎有求必應地陪我打橋牌 和聊天,也只有我們兩個住宿組的能夠打到那麼晚。謝謝我的好同學高梵、晏誠,一起 修課的時候,不懂的部分,有你們一起討論很安心。謝謝恩萱、雅婷、文韻,常常關心 我開會的狀況以及日常生活。有妳們這些可愛的學妹,真的很幸福。謝謝一起參加運算 思維會議的恩萱和哲雋,接下來計劃的運作就靠你們囉!願實驗室的各位都能順利完成 研究,邁向人生的下一個階段。 III.

(5) 感謝我所有的朋友,這兩年,我常常處於忙碌的狀態疏於聯絡,但你們仍然對我不 離不棄,積極的關心、鼓勵我。謝謝小崔柔與阿土,你們是唯一能夠強拉我出去玩的朋 友,因為拗不過你們而一起出去玩的驚險回憶,現在想來總令我莞爾。謝謝亞璇、玟萱、 曉楓、培琪、克里、祐瑄、Lala、PJ、Chloe,你們的加油打氣,填補了這兩年中所有的 迷惘與空虛。特別要感謝孟臻,在最後半年,當我同時忙於教甄、研究、教學工作時, 為我製作三折頁,在終於能口試時,一起製作海報,只願我能夠風光應戰。你陪伴我度 過低潮與榮耀,謝謝你一直在我身旁默默守候,給予我最棒的支持。除此之外,那些未 能逐位提及的朋友,仍願這樣的成果能與你們分享,你們的愛與關懷,讓我成就現在的 自己。 最後,為天主引領我做的所有決定,深致謝意。謝謝我的父母、妹妹以及 Yummy, 讓我有一個永遠的避風港,有你們的地方就是家。. 謹誌. IV.

(6) 目錄 摘要 ............................................................................................................................................. I. ABSTRACT .............................................................................................................................. II 誌謝 .......................................................................................................................................... III 目錄 ........................................................................................................................................... V 表目錄 ................................................................................................................................... VIII 圖目錄 ...................................................................................................................................... IX 第壹章 緒論 ............................................................................................................................ 1 第一節 研究動機 ................................................................................................................. 1 第二節 研究目的 ................................................................................................................. 3 第貳章 文獻探討 .................................................................................................................... 4 第一節 各國資訊教育現況 .................................................................................................. 4 第二節 初學者學習程式設計的困難 .................................................................................. 7 第三節 視覺化程式語言對於學習程式設計的影響 .......................................................... 8 第四節 高學習成就學生之程式設計學習情況 .................................................................. 9 第參章 研究方法 .................................................................................................................. 11 第一節 教學策略 ............................................................................................................... 11 V.

(7) 第二節 實驗設計 ............................................................................................................... 14 第三節 研究工具 ............................................................................................................... 16 第肆章 研究結果與分析 ...................................................................................................... 24 第一節 研究對象起點行為 ............................................................................................... 24 第二節 不同教學模式對於程式設計概念之影響 ............................................................ 27 第三節 不同教學模式對於程式設計實作能力之影響 .................................................... 28 第四節 不同教學模式對於班級整體學習成效之影響 .................................................... 31 第五節 研究對象課後行為 ................................................................................................ 34 第伍章 結論與未來展望 ...................................................................................................... 36 第一節 結論 ........................................................................................................................ 36 第二節 未來研究 ................................................................................................................ 37 參考文獻 .................................................................................................................................. 38 英文文獻 .............................................................................................................................. 38 中文文獻 .............................................................................................................................. 45 附錄 .............................................................................................................................................. 附錄一 實驗組課程進度表 ................................................................................................ 46 附錄二 控制組課程進度表 ................................................................................................ 49 附錄三 前測問卷:起點行為調查 .................................................................................... 51 VI.

(8) 附錄四 實驗組期中考核試題 ............................................................................................ 53 附錄五 控制組期中考核試題 ............................................................................................ 65 附錄六 期末考核:概念題 ................................................................................................ 76 附錄七 期末考核:實作題 ................................................................................................ 88 附錄八 學習動機量表 ........................................................................................................ 92. VII.

(9) 表目錄 表 3 - 1 學習動機量表題目與向度對應表 ............................................................................ 18 表 3 - 2 期中檢驗程式設計概念題範例 (取自第 3 題)........................................................ 21 表 3 - 3 程式實作能力評分標準 ............................................................................................ 23 表 4 - 1 學生自評對於各程式語言的精熟程度 .................................................................... 24 表 4 - 2 程式設計概念題獨立樣本 T 檢定 ............................................................................ 28 表 4 - 3 期中考核程式設計實作題獨立樣本 T 檢定 ............................................................ 29 表 4 - 4 期末考核程式設計實作題獨立樣本 T 檢定 ............................................................ 30 表 4 - 5 期末考函式運用能力獨立樣本 T 檢定 .................................................................... 30 表 4 - 6 MSLQ 問卷分析結果 ................................................................................................ 35. VIII.

(10) 圖目錄 圖 3 - 1 各學習階段教學策略流程圖 .................................................................................... 14 圖 3 - 2 實驗組與控制組教學流程設計圖 ............................................................................ 15 圖 3 - 3 實驗組與控制組教學時程與教學工具對應圖 ........................................................ 16 圖 4 - 1 常見程式設計學習工具的使用經驗 ........................................................................ 26 圖 4 - 2 程式設計學習興趣 .................................................................................................... 26 圖 4 - 3 程式設計學習信心 .................................................................................................... 27 圖 4 - 4 期中考核概念題答對題數箱型圖 ............................................................................ 32 圖 4 - 5 期中考核實作題總分箱型圖 .................................................................................... 32 圖 4 - 6 期末考核概念題答對題數箱型圖 ............................................................................ 33 圖 4 - 7 期末考核實作題總分箱型圖 .................................................................................... 34. IX.

(11) 第壹章 緒論 第一節 研究動機 近幾年來程式設計教育在各國蔚為流行,資訊能力已成為各國國力發展要項之一。 臺灣於 2011 年核定十二年國民基本教育實施計畫,積極實施教育改革,以培養健全國 民為宗旨,望能紓解過度升學壓力、落實五育均衡的教育。在十二年國民基本教育課程 綱要中,資訊科技課程旨在培養學生運算思維能力,以促進其問題解決能力、團隊合作 能力、創造力及溝通表達能力。資訊科技學習課程內容包含六大面向: 「系統平台」 、 「資 料表示、處理及分析」 、 「演算法」 、 「程式設計」 、 「資訊科技應用」以及「資訊科技與人 類社會」 (臺灣國家教育研究院,2014) 。在六大學習面向中,程式設計被列為必要之學 習內容,因此,如何學習程式設計如今已是臺灣資訊教育刻不容緩的重要議題之一。 本研究提出從程式設計概念至程式設計實作的教學模式,如何讓學生先聚焦於學習 程式設計概念的方法有很多種,視覺化程式語言的應用為其一。近十年內程式設計教育 環境有了許多改變,包含 Squeak 和 Scratch 等視覺化程式語言的應用。視覺化程式語言 使初學者能夠透過封裝好的程式積木建構程式,進而避免因打字編寫程式造成的語法錯 誤 (Matsuzawa, Ohata, Sugiura, &Sakai, 2015)。Saito, Washizaki, 與 Fukazawa (2016) 指 出視覺化程式語言比文字式程式語言更令學生有顯著的學習動機,適合用於初學者程式 設計課程。此外,視覺化程式設計的最大益處在於能讓學生在學習程式設計語法之前, 先聚焦於學習程式設計概念 (Kölling, 2010)。 1.

(12) 學習程式設計不僅為了理解程式語言,同時也能掌握真實世界的問題解決能力 (Li, 2016) 。許多研究者如 Kölling (2010)、Honig (2013) 及 (Tsukamoto et al., 2016) 等皆致 力於研究如何透過視覺化程式語言增加學生的學習動機。Wang (2014) 針對學習成就高 的學生以及一般學習成就的學生進行 Scratch 結合 PBL (Project-based Learning) 的教學, 並比較兩者在學習成就、問題解決能力、學習動機以及學習態度上的差異,結果顯示學 習成就高的學生在課程結束後,相較於一般學習成就的學生有較為良好的表現。然而, 該研究僅討論視覺化程式設計的學習成效,並未引入文字式程式語言。若想評估一位學 生真正的程式設計能力,使用文字式程式語言將會有更全面性的瞭解。 主科學習成就高的學生,因為學習動機普遍高於一般學生,在學習上往往會有較為 良好的表現。然而,程式設計課程與其他學科不同,於一般科目學習成就高的學生未必 能在程式設計學習上有良好的表現。 (林瓊甄,2006) 的文獻顯示採用適性化 e-Learning 教材對於中學習成就與低學習成就的學生有顯著的學習成效,對於高學習成就的學生則 無顯著差異。顯示針對提高學習動機而設計的教材,對於提升高學習成就學生的學習成 效幫助有限。因此,本研究針對主科學習成就高的學生,探討當學習動機高時,先學習 程式設計概念再培養實作能力,相較於傳統講述型教學模式,是否能有較佳的學習成效。. 2.

(13) 第二節 研究目的 程式設計能力的評估應分為兩個面向,分別為程式設計概念與程式設計實作能力。 一位學生可能擁有良好的程式設計概念,但卻缺乏將之轉換為程式碼的實作能力。因此, 程式能力的評估需從此兩面向著手,以期全面理解學生的程式設計能力。本研究探討高 學習成就學生採取先學習程式設計概念再培養實作能力的教學模式,與傳統講述教學模 式的差異。在先學習程式設計概念再培養實作能力的教學模式中,程式設計語言的選用, 是從視覺化程式語言 Blockly (Google for Education, 2011) 到 C 語言。傳統講述教學模式 所使用的程式語言則為 C 語言,採取程式設計概念與語法同時學習的教學模式。本研究 將國中教育會考 PR 值 95 以上的學生分為實驗組和控制組,分別採取先學習程式設計 概念再培養其語法與實作能力的教學模式以及傳統講述教學模式,透過大學程式設計先 修檢測 (APCS, 2017) 考題以評量其學習成就差異。 本研究的具體研究問題如下: (一) 主科學習成就高的學生採取先學習程式設計概念再培養實作能力的教學模式, 對於程式設計概念的理解程度,是否優於使用傳統講述教學模式? (二) 主科學習成就高的學生採取先學習程式設計概念再培養實作能力的教學模式, 對於程式設計實作能力的提升,是否優於使用傳統講述教學模式?. 3.

(14) 第貳章 文獻探討 第一節 各國資訊教育現況 在 21 世紀,程式設計已成為學生使用運算工具解決現實世界問題的重要能力之一 (Einhorn, 2012; Grover & Pea, 2013; Li, Wang, Yuen, Cheung, & Kwan, 2012),問題解決能 力用於建構或實施解決各種領域問題的策略 (Pólya, 1985)。資訊科技課程在許多國家都 列為重要發展項目之一,國家教育研究院 (2014) 在訂定我國十二年國民基本教育領域 綱要內容時,亦針對一些先進國家的資訊科技課程進行分析與討論。 美國 ISTE (International Society for Technology in Education,2007) 提出學生應具備 的資訊科技能力標準。美國電腦科學教師協會 (Computer Science Teachers Association, CSTA,2011) 則制定了一套 K-12 學生電腦科學核心能力標準,其所提出之五大能力標 準,包括運算思維、合作、實作與程式設計、電腦與溝通設備及社會與倫理議題。 英 格 蘭 於 2013 年 9 月 公 布 最 新 的 國 定 課 程 綱 要 , 將 ICT (Information and Communication Technology) 更名為電腦運算 (Computing),並為中小學之必修課程。課 程目標在於使學生了解與應用電腦科學基本原理與概念,包含抽象、邏輯、演算法和資 料表示方法,能以電腦運算分析問題,並撰寫程式解決問題。 德國電腦科學組織訂出了中等學校資訊科學課程標準 (Puhlmann, 2008),認為電腦 科學日益重要,資訊科技業需要更專業的人才,因此須將資訊科學教育向下紮根。在前 中階段 (5-10 年級) 實施「資訊科學」取代以往的 ICT 或「電腦素養」課程。其教學目 4.

(15) 標為使學生能熟悉各式數位工具的使用與電腦科學技術,並提供學生基礎資訊科學知能 以銜接將來後中、職業或大學進階資訊科學之學習。 荷蘭將資訊科學 (Informatics) 納入 10-12 年級課程,屬於科學領域,認為資訊科學 應讓學生了解資訊科學概念,知道資訊科學的潛力與限制,並學習將來職涯所需之知能。 資訊科學課程理念為:(1)學習運算思維相關的領域知識與技能;(2)學習利用資訊科學知 識與技能;(3)學習用資訊科學解決跨領域的問題;(4)學習以合作方式實作資訊科學知能; (5)學習反思,了解如何獨立學習以上四個議題。 日本的資訊科技課程在國小階段並未列入課程標準,而是在教學活動中運用電腦, 養成學生接觸電腦的習慣。國中《學習指導要領》 (文部科學省,2008)中, 「資訊科技」 主題目標為:希望藉由學習資訊相關基礎、基本知識及技術後,能深入理解關於資訊相 關技術對社會或環境的責任與影響,培養以對其適時活用評價的能力及態度。高中《學 習指導要領》(文部科學省,2009)提出資訊科技課程目標為:(1)讓學生習得資訊和資 訊科技的知識及技能,(2)培養學生資訊及資訊科技的科學見解或觀點,(3)讓學生理解在 社會中資訊及資訊科技的作用與所造成的影響,和(4)培育學生能應付社會資訊,發展個 人能力與態度。 以色列是相當重視電腦科學教育的國家,以色列的學者認為電腦科學教育的重要性 等同其他科學科目的教育,因此在 1995 年開始正式納入高中課程,希望電腦科學教育 不只建立電腦素養,而是深入了解電腦科技的基本原理。電腦科學的學習能讓學生知道 是如何利用電腦正規語言描述程序、表達知識、與解決問題制定 (Gal-Ezer, Beeri, Harel, 5.

(16) & Yehudai, 1995)。 澳洲課程、評量及報告局 (Australian Curriculum, Assessment, Reporting Authority, ACARA) 於 2013 年 6 月發布全國 K-12 的課程綱要 3.1 版,其課程綱要之目標為培養學 生的語文、數學、資訊與通訊科技 (以下簡稱 ICT) 、批判和創意思考等基本能力。學生 的 ICT 能力,包含以下五核心能力 (ACARA, 2013b):(1)使用 ICT 時,社會和資訊倫理 之實踐;(2)使用 ICT 進行探究;(3)使用 ICT 進行創作;(4)使用 ICT 進行溝通;(5)管理 和操作 ICT。課綱中明定其科技教育課程包含「設計與科技」和「數位科技」兩科目, 兩者學習內涵皆包含知識與理解、過程和生產技術兩部分,其中,數位科技學習內容包 括(ACARA,2013a):(1)知識與理解:資料呈現;數位系統;交互作用與衝擊。(2)過程 和生產技術:管理和分析資料;使用數位系統;規格、演算法和開發;建置及線上互動。 以上先進國家的資訊教育政策各有所不同,然而其核心發展方向皆為「運算思維與 程式設計」 。臺灣在評估世界各國的資訊教育後,提出了十二年國教科技領域課綱草案, 草案中規劃國中與高中生必修「程式設計」 。各國推動「程式設計」主要著眼於它是「聽、 說、讀、寫、算」以外重要的新世紀素養,透過程式符號去推理、解決問題,就如以文 字和數字推理解題一樣。這也是資訊科技強調的「運算思維」 ,透過電腦科學相關知能的 學習,培養學習者邏輯思考、系統化思考等思維,並藉由資訊科技之設計與實作,增進 運算思維的應用能力、解決問題能力、團隊合作以及創新思考的能力。為達成前述目標, 資訊科技包含四大面向的學習表現:「運算思維與問題解決」、「資訊科技與合作共創」、 「資訊科技與溝通表達」以及「資訊科技的使用態度」以及六大面向學習內容:「演算 6.

(17) 法」 、 「程式設計」 、 「系統平台」 、 「資料表示、處理及分析」 、 「資訊科技應用」以及「資 訊科技與人類社會」 (國家教育研究院課程及教學研究中心,2017)。在國民中學所教授 的「程式設計」著重於問題解決能力,高中則強調跨學科整合應用。. 第二節 初學者學習程式設計的困難 學生缺乏對於基礎程式結構的充分理解,多源於缺乏將程式設計問題轉化為可行性 計劃和演算法的策略 (Deek, 1999; Kessler & Anderson, 1986; Li & Watson, 2011)。這可能 是因為程式設計正規教學主要著重於學生對於通用程式語言的掌握,並採用專門為程式 設計師設計的程式設計工具 (Deek, 1999; Ismail, Ngah, & Umar, 2010; Linn & Clancy, 1992; Robins et al., 2003; Xinogalos, 2012)。通用程式語言和專業程式設計工具的使用往往促使 教師和學生投入較多的心力於掌握該程式語言的特性,而非發展解決程式設計問題的策 略 (Brusilovsky, Calabrese, Hvorecky, Kouchnirenko, & Miller, 1997; Deek, 1999; Linn, 1985; Pears et al., 2007)。 Shackelford 和 Jr (1997) 發現在入門電腦運算課程中使用特定的程式語言往往會在 「演算法問題解決的核心議題上分散注意力且惱人」;同時,對於演算法問題解決教學 也易失焦。教師上課時會耗費課堂時間在他們認為學生將有最大困難的部分,因此,教 學重心常流於學生將遇到的語法困難(如,在 C 語言中錯誤地使用“=”而不是“==”, 或者不正確地放置分號)。 透過上述文獻得知,傳統講述型程式設計教學模式難以讓學生聚焦於學習程式設計 7.

(18) 概念以及結構,同時,在教學現場常常必須分散注意力在語法困難上。. 第三節 視覺化程式語言對於學習程式設計的影響 程式設計課程通常著重於語法和該程式語言的特性,促使學生集中精力於這些相對 不重要的細節而不是底層的演算法技巧。除非教師特別注意以限制這種講述課程的方式, 否則這些細節很容易阻礙初學者的學習 (Carl, 2001)。然而,Carlisle、Wilson、Humphries 以及 Hadfield (2005) 從經驗中指出即使教師試圖聚焦於更基礎的演算法程式設計概念, 他們仍被迫花費大量的課堂時間在學生遇到的語法困難。在 Cardellini (2002) 的文獻中, Felder 指出大多數學生是視覺學習者,教師卻傾向於口頭傳遞知識。同樣的,Fowler、 Allen、Armarego 以及 Mackenzie (2000) 和 Thomas、Ratcliffe、Woodbury 以及 Jarman (2002) 亦指出 75%至 83%的學生是視覺型學習者。Saito 等人 (2016) 指出視覺化程式 語言比文字式程式語言更令學生有顯著的學習動機,因此,相較於文字式程式語言,視 覺化程式語言較適合初學者學習程式設計使用。 許多研究提出透過使用視覺化程式設計語言,如 Scratch 和 Alice (Cooper, Dann, & Pausch, 2000; Maloney, Resnick, & Rusk, 2010) , LighBot 和 PlayLOGO 3D (Gouws, Bradshaw, & Wentworth, 2013; Paliokas, Arapidis, & Mpimpitsos, 2011) 或 objectKarel 和 Jeroo (Sanders & Dorn, 2003; Xinogalos, 2012) 解決學生在學習程式設計時遇到的困難。 這些語言通常採用不同的視覺化元素來幫助程式設計初學者建構程式或瞭解程式的執 行過程與問題的狀態 (Green & Petre, 1996; Kelleher & Pausch, 2005; Navarro-Prieto & 8.

(19) Canas, 2001)。研究顯示視覺化程式語言可以提高程式設計初學者對於程式設計學習的 參與度,並幫助他們在課堂上演示程式設計技巧及問題解決策略 (Cooper et al., 2000; Lye & Koh, 2014)。視覺化程式設計語言變得越來越重要,且已經顯示其幫助學習程式設計 和解決問題的特殊優勢 (Lye & Koh, 2014)。透過嚴肅遊戲 (serious games) 與線性程式 設計教學提供了創新的方式提升學習意願與內在動機,將不同的程式設計概念視覺化為 現實生活情境以解釋概念,因此得以提供輕鬆的學習環境,讓初學者能夠練習及犯錯 (Sajana, 2015)。 綜合以上文獻所述,視覺化程式設計語言令學生有較強的學習動機,且能排除語法 所帶來的學習困難,讓學生得以聚焦於學習程式設計概念。. 第四節 高學習成就學生之程式設計學習情況 程式設計課程的目的是使用程式設計解決問題而非記憶程式語言的語法或程式設 計工具的操作步驟,有天賦的學生可以自學基礎的電腦知識且可更輕易地學習程式設計 (Wang, 2014)。因此,對於此類型的學生使用任何學習方式,都可能因為他們本身學習動 機高的緣故,而導致相同程度的學習成效。林瓊甄 (2006) 的文獻採用適性化 e-Learning 教材對於中學習成就與低學習成就的學生均有顯著的學習成效,然而,對於高學習成就 的學生則無顯著差異。顯示僅針對提高學習動機而設計的教材,對於提升高學習成就學 生的學習成效幫助有限。 為了釐清先學習程式設計概念再培養實作能力的教學模式與傳統講述教學模式在 9.

(20) 高學習成就學生上的差別,評分方式也需要審慎思量。本實驗的考核模式分為兩種,第 一種考核為筆試,考核的目的為評斷學生的程式設計概念,試題來源參考為大學程式設 計先修檢測試題 (APCS, 2016),臺灣 APCS 是具公信力的測驗,專門設置讓高中生檢驗 程式設計能力學習成果。第二種考核則為實作,讓學生實際寫出能夠解決真實世界問題 的程式,以評斷彼此之間的實作能力差異。. 10.

(21) 第參章 研究方法 本章以主科高學習成就之高中生為研究對象,於第一節揭示本研究所採用的教學策 略,第二節介紹針對該學習策略所實施的實驗流程,第三節則詳述在本實驗中用於分析 的資料與研究工具。. 第一節 教學策略 本研究的教學策略雛型參考林依潔(2017)提出的教學模式,然則針對以下幾點做 了更動與延伸: (一) 延伸課程所涵蓋的程式設計概念 林依潔(2017)提出的教學模式預設在每一個階段都將各程式概念完整學習 一次,然而在第一階段習得的函式概念卻未在之後的階段予以練習。函式的運用 需要更高一層的程式設計能力,因此,在本研究中將函式納入學習目標之一,以 期將教學模式的規劃變得更加完整。 (二) 重新安排各階段的時間配置以及練習題 由於本研究教學總時數、每週的課堂時間以及所涵蓋的程式設計概念都與 林依潔(2016)提出的教學模式實驗設計有所差異。因此,僅採用其所推薦使 用的教學工具以及實驗階段順序,針對各階段的時間配置以及練習題,將重新 規劃適當的教學內容以符合本研究的架構。. 11.

(22) (三) 改善評測方式 為了以更客觀的角度評斷主科高學習成就學生的學習效果,因此,評測試題 採用大學程式設計先修檢測考題 (APCS, 2016),並針對每年的檢測考題進行分析 與選題,以期能獲得較為客觀的分析結果。 本研究教學策略的學習階段流程圖請參考圖 3 - 1,教學策略從目標導向至問題導 向。在目標導向的學習階段主要使用視覺化程式語言,學習過程以達成指定目標為主, 如:完成 Code.org (Code.org, 2017) 遊戲動畫指定的任務等。在問題導向的學習階段, 學生使用 C 語言,學習目標以解決問題及邏輯思考為核心。以下針對實驗組的四個學習 階段分段敘述: (一) 建構程式設計概念 在此學習階段中,學生使用 Code.org (Code.org, 2017) 作為學習工具,從遊戲 中學習程式設計概念。Code.org (Code.org) 提供輕鬆的學習環境以及豐富的動畫 輔佐學習,將程式設計概念以具體的形象展現。此外,也提供錯誤提示機制,即 使學生作答錯誤,仍能透過系統提供的提示再次嘗試並從錯誤中學習。學生在此 階段將對程式概念包含程序、變數、判斷結構、重複結構、函式等建立基礎概念, 並在接下來的階段中學習如何運用這些程式設計概念。 (二) 運用程式設計概念 學生在本階段所使用的學習工具為 CThinking (林依潔,2016),雖仍然採用拖 拉積木的形式建構程式碼,但題目多與高中其他學科結合,以求培養解決真實世 12.

(23) 界問題的能力。同時,脫離遊戲情境的解題模式,解題過程中僅能看到文字輸出, 因此,學生能夠聚焦於練習程式設計概念在各種狀況的運用。 (三) 熟悉高階程式語言語法 語法經常會成為學生在學習程式時的首要障礙 (Carl, 2001),從視覺化程式語 言至高階程式語言的學習進程中,若能事先針對語法加強練習,對於學生在語法 上所遇到的困難也較能得以緩解。因此,在第三個階段,本研究採用程式設計合 作學習平台(程式設計合作學習平台,2017)作為學生練習語法的媒介。此平台 的設計特色在於教師可針對程式碼事先進行挖空,讓學生能聚焦練習教師預設的 學習重點。學生能在此階段先熟悉 C 語言語法,以降低在接下來的階段中因語法 所造成的學習負擔。 (四) 運用高階程式語言解決問題 學生缺乏對於基礎程式結構的充分理解,大部分是因為缺乏將程式設計問題 轉 化 為 可 行 性 計 劃 和 演 算 法 的 策 略 (Deek, 1999; Kessler & Anderson, 1986; Frederick & Watson, 2011)。透過前面三個階段循序漸進地培養程式設計能力,學 生在此階段必須使用 C 語言撰寫程式,包含演算法的設計以及解決問題的策略等, 學生將在 Code::Block 編輯並執行程式以解決問題。. 13.

(24) 問題導向. 目標導向. 建構程式設計. 運用程式設計. 熟悉高階程式. 運用高階程式. 概念. 概念. 語言語法. 語言解決問題. 圖 3 - 1 各學習階段教學策略流程圖. 第二節 實驗設計 (一) 研究對象 國中教育會考成績為全國 PR 值 95 以上之女校高中生,本研究共採用八個 班級,隨機分為實驗組與控制組,每組各四班,每班各 34 人,共 272 人。 (二) 教學流程設計 本研究為探討高學習成就學生之程式設計學習狀況,因此將高學習成就學 生隨機分為兩組,採用傳統講述教學模式之學生為控制組,採取先學習程式設 計概念再培養實作能力的教學模式之學生為實驗組。傳統講述型教學模式在本 研究中定義為「同時學習程式設計概念及程式設計語法」的教學模式,教師同時 教授程式設計概念及語法,學生在課堂中進行當週相關學習內容的程式作業練 習,為臺灣中等教育較常採用的教學模式。實驗組與控制組的教學流程比較圖 14.

(25) 請參考圖 3 - 2。 實驗組教學流程. 建構程式設計. 運用程式設計. 熟悉高階程式. 運用高階程式. 概念. 概念. 語言的語法. 語言解決問題. 控制組教學流程 熟悉高階程式語言的語法 及程式設計概念. 圖 3 - 2 實驗組與控制組教學流程設計圖 (三) 研究時程 實驗總時程共計 23 週,每週課堂時間皆為 50 分鐘。包含前測問卷 1 週,課 程時間 19 週,考核 3 週。前測問卷的發放以及課程說明於學期開始的第一節課執 行。考核則分為期中考核與期末考核,期中考核於一節課內完成,期末考核則耗時 兩節課。期末問卷在期末最後一節課發放,因此無另規劃額外課堂進行。詳細的各 節課程進度表請參考附錄一與附錄二。圖 3 - 3 為各個組別的教學時程與教學工具 對應圖,該教學工具所選用的程式語言則標示於各階段所使用工具之上方。. 15.

(26) 圖 3 - 3 實驗組與控制組教學時程與教學工具對應圖. 第三節 研究工具 本節將分項介紹使用於實驗分析的研究工具以及其用途,包含各項問卷、課堂觀察 記錄與考核,以期從不同的面向瞭解學生的學習狀況。 (一) 學生前測問卷 發放時間為開學第一節課,主要用途為瞭解學生的起點行為,評估不同組別 的學生在課前的相關先備知識是否有所差異。問卷內容包含對於常見程式語言的 精熟程度自評、對於常見程式設計學習工具的精熟程度自評以及對於學習程式設 計的興趣以及自信。學生前測問卷詳細題目,請參考附錄三。 (二) 學習動機量表 發放時間為課程最後一節課,亦即期末考核前,問卷目標為理解兩組學生在 不同學習模式之下,學習動機的差異。本研究使用的問卷參考 Pintrich、Smith、 Teresa、Garcia 與 McKeachie (1991) 所發展的 Motivated Strategies for Learning 16.

(27) Questionnaire (MSLQ),並採用林維璋(2014)文獻中所使用的中文翻譯。MSLQ 問卷一般用於評斷及分析學生的學習動機與學習策略,本研究僅採用學習動機的 問卷試題。本學習動機量表共 44 題,分為八個向度,其中六個向度隸屬於 MSLQ 原始問卷,另兩個向度獨立於 MSLQ 原始問卷之外,僅為理解學生在「努力經營」 與「尋求協助」向度上的差異。問卷中的各題僅歸類於單一向度,試題與向度的對 應請參考下表 3 - 1。. 17.

(28) 表 3 - 1 學習動機量表題目與向度對應表 向度. 題號 1 18. 內在動機 24 26. 外在動機. 新的東西。 在程式語言裡,我比較喜歡能引起我好奇心的內容,即使那 些內容難以學習。 在程式語言學習時,最令我滿意的事就是儘量把課程內容徹 底搞懂。 在程式語言學習時如果有機會挑選作業,我會挑選我能從中 學到東西的作業,即使並不能保證得到好成績。 在程式語言學習得到好成績,是我最滿意的事。. 12. 在程式語言學習裡我最關心的事就是得到好成績。. 14. 如果可以的話,我要我的成績比班上大多數同學好。. 5. 控制信念. 在學習電腦時,我比較喜歡對我有挑戰的內容,以便能學到. 8. 34. 工作價值. 內容. 我要在班上表現得好,因為對我的家人、朋友、或其他人顯 示我的能力是重要的。 我認為我可以把在程式語言所學到的概念應用到別的課程. 11. 中。 學會程式語言對我是重要的。. 19. 我對程式語言的學習很有興趣。. 25. 我認為學習程式語言的內容對我是有用處的。. 28. 我喜歡程式語言。. 29. 瞭解程式語言的內容對我是很重要的。. 2. 如果我用對方法學習,我就可以學會程式語言的內容。. 10. 如果我沒學會程式語言,那是我自己的過錯。. 20. 如果我夠用功的話,那麼我就會瞭解程式語言。. 27. 如果我不瞭解程式語言,那是因為我不夠用功。. 18.

(29) 表 3 - 1 學習動機量表題目與向度對應表 向度. 自我效能. 題號. 努力經營. 在程式語言學習中,我相信我會得到優異成績。. 7. 我確定我可以瞭解程式語言的內容中最困難的部份。. 13. 我有信心我可以學會程式語言的基本觀念。. 17. 我有信心我能瞭解老師在程式語言裡所教的最複雜的內容。. 22. 我有信心在程式語言裡的作業和考試表現優異。. 23. 我預期在程式語言學習中表現良好。. 32. 我確定我能精通程式語言的技能或技巧。 考慮程式語言的困難程度、老師、和我個人的技巧,我想我. 3. 會表現良好。 在這門課考試時,我會想到:和其他同學相比我是多麼差勁。. 9. 在這門課考試時,我會一邊作答一邊想到我不會的題目。. 16. 在這門課考試時,我會想到考不好的後果。. 21. 在這門課考試當時,我會感覺不自在,渾身不舒服。. 31. 在這門課考試當時,我會覺得我心跳很快。. 36. 在研讀程式語言時,我常試著解釋內容給同學或朋友聽。. 37 38 39 40. 尋求協助. 內容. 6. 35. 測試焦慮. (續上表 ). 在研讀程式語言時,我經常覺得很懶或無聊,以致在完成計 劃要做的事之前便放棄了。 我試著和同學一起討論,以完成這門課的作業。 在程式語言學習時,即使我不喜歡所學的一切,我也會努力 把它學好。 在研讀程式語言時,我常安排時間與一些同學討論課程內. 41. 容。 為了把我不太瞭解的觀念弄清楚,我會去請教老師。. 42. 當我在程式語言中有不瞭解的地方時,我會請教同學。. 43. 即使程式語言枯燥無趣,我也會努力做下去,直到完成為止。. 44. 在這門課裡,我試著找出幾個同學,好讓我在需要時可以向 他們請教。. 19.

(30) (三) 教師觀察紀錄 教師於課堂授課時,針對班級整體學習氣氛以及學生學習時所遇到的特殊 狀況所做的紀錄。 (四) 程式設計概念考核 考核時間為期中、期末各一次。期中考核時,程式設計概念考核與程式設計實 作能力考核一併被要求於單節課(50 分鐘)內實施完畢,程式設計概念部分共計 10 題單選題。此學習階段因兩組使用的程式語言不同,故在考核內容相同的前提 下,將考題以不同的程式語言呈現,請參考表 3 - 2。期末考核時,程式設計概念 考核採獨立實施,不與其餘考核合併,須於單節課內完成考核,共 15 題單選題, 兩組考核內容與呈現方式完全相同。實驗組期中考核詳細試題內容請參考附錄四, 控制組期中考核詳細試題內容請參考附錄五,期末考核詳細試題內容請參考附錄 六。. 20.

(31) 表 3 - 2 期中檢驗程式設計概念題範例 (取自第 3 題). 試題敘述:以下程式碼片段執行後,x 與 y 的值為何? 實驗組附圖. 控制組附圖. 為求考核結果具備嚴謹且客觀的評量標準,程式設計概念題採用大學程式 設計先修檢測 (APCS, 2017) 概念型試題。以往,臺灣公部門討論中的大學先 修課程檢定測驗仍未觸及資訊科學,因此不管是在推薦入學、申請入學或考試 入學等大學入學管道中,對於學生的資訊能力都缺乏客觀的評量依據。如今, 大學程式設計先修檢測試題已列入臺灣多所大學校系之申請入學甄選項目。其 檢測模式參考美國 Advanced Placement (AP),透過與各大學合作命題,並確定 檢定用題目經過信效度考驗,以確保檢定結果之公信力。運用於本實驗之程式 設計概念考題均透過以下步驟進行選題: 21.

(32) 1.. 篩選符合教學範圍的試題作為預備試題題庫。 根據各學習階段所需考核的程式設計概念,從大學程式設計先修檢測 試題 (APCS) 中挑選符合的試題作為預備試題庫,採用的試題包含目前已 公開的 2016 年 3 月、2016 年 10 月以及 2017 年 3 月的試題。. 2.. 分析各預備試題答題所需具備的程式設計概念。 針對預備試題庫中的試題進行題型分析,標示出各題答題所需運用到 的程式設計概念。. 3.. 針對各預備試題統計其在各級別學生中之答對率,參考各級別學生之答對 率將題目分為易、中、難三個等級。 大學程式設計先修檢測將學生的應試成績分為五個等級,一級至五級 能力依次遞增。記錄各預備試題於該年全體應試生之答對率、該年成績達 3 級以上應試生之答對率以及該年成績達 4 級以上應試生之答對率。針對 上述三類應試生之答對率,將各預備試題分為易、中、難三個等級。. 4.. 評估各程式設計概念涵蓋數量並以 4 級以上答對率為參考標準選出適當的 題目作為考核試題。 題目的選取方式為根據考核預計所需的題目數量從易、中、難三個等 級中選出等量的試題,並同時考量所選出的試題是否能涵蓋欲考核的所有 程式設計概念。 考核時間為期中、期末各一次。期中考核時與程式設計概念題同時施測,共計 22.

(33) 2 題。兩組使用相同試題、不同程式語言作答,實驗組使用 Blockly (Google for Education, 2011),控制組使用 C 語言。期末考核時為獨立施測,不與其他考核合 併,共計 2 題,考核時間為 50 分鐘。兩組使用相同試題並採用相同程式語言為 C 語言。程式設計實作能力考核試題根據所需考核的程式設計實作能力出題,題目 部分參考大學程式設計先修檢測,部分為自編試題。各階段考核詳細試題內容請 參考附錄四、附錄五與附錄七。 (五) 程式設計實作能力考核 程式設計能力實作考核評分方式請參考表 3 - 3,每題將以三個向度評估,五 點量表計分,共 15 分。結構向度評量的標準為學生使用適當程式設計結構的能力, 將以程式整體結構設計評估。邏輯向度評量的是學生所使用的演算法、解題策略 等是否能解決問題可能發生的所有情況。語法向度評量的是程式碼的語法正確性。 另外,為探究學生對於函式概念的理解程度,本研究特針對函式運用部分亦以表 3 - 3 之五點量表評估學生的函式撰寫能力。 表 3 - 3 程式實作能力評分標準 向度名稱. 結構. 邏輯. 語法. 評測標準. 能否使用適當的程 式設計結構. 使用的演算法能否 解決問題可能發生 的所有情況. 撰寫的程式碼語法 是否正確無誤. 23.

(34) 第肆章 研究結果與分析 本章將探究高學習成就學生在不同程式設計教學模式下之學習成效,研究結果及其 分析分為數項重點在各小節中分別進行討論,用於分析的資料包含問卷、考核以及課堂 紀錄等。. 第一節 研究對象起點行為 研究對象的起點行為以問卷的方式進行資料蒐集,從問卷結果統計而來的表 4 - 1 可 以看出兩組學生對於程式設計的起點行為並無顯著差異,絕大多數皆未有撰寫程式設計 的經驗。 表 4 - 1 學生自評對於各程式語言的精熟程度 實驗組(人數). 控制組(人數). 項目. 精 熟. 佳. 普 通. 僅 使 用 過 幾 次. 從 未 接 觸. 精 熟. 佳. 普 通. 僅 使 用 過 幾 次. 從 未 接 觸. C/C++. 0. 0. 2. 6. 128. 0. 0. 1. 22. 113. Java. 0. 0. 0. 11. 125. 0. 0. 2. 19. 115. VB. 0. 1. 3. 2. 130. 0. 0. 1. 5. 130. Python. 0. 0. 2. 4. 130. 0. 0. 0. 2. 134. HTML. 0. 0. 5. 15. 116. 0. 0. 5. 15. 116. PHP. 0. 0. 3. 0. 133. 0. 0. 1. 5. 130. JavaScript. 0. 0. 1. 6. 129. 0. 0. 1. 8. 127. 24.

(35) 除了以上七類常見的程式語言之外,實驗組的學生表示曾接觸過 Microsoft Small Basic 以及 ActionScript,但人數僅各一位,且兩者精熟程度皆為僅使用過幾次而已。控 制組的學生表示曾接觸過 Ruby 以及 C++,人數也是各一位,接觸過 Ruby 的學生表示 其精熟程度為普通,接觸過 C++的學生表示精熟程度為僅使用過幾次而已。綜合以上問 卷調查結果,可得知兩組學生的程式設計設計能力皆屬初學者。 除了程式設計語言之外,學生亦被詢問是否曾經使用過問卷所提及的程式設計學習 工具。從圖 4 - 1 中可看出多數學生皆有使用 Scratch 的經驗,但對於其他程式設計學習 工具的認識則較為不足。從此結果中或許可以推論臺灣國中以下教育傾向使用 Scratch 作為程式設計學習的工具,但仍需更進一步的調查。 最後,問卷訪問學生在課程開始前對於學習程式設計的興趣與自信心程度。對於程 式設計的學習興趣請參考圖 4 - 2,1 分表示「非常不感興趣」 ,5 分表示「非常感興趣」 , 依次遞增。統計結果顯示兩組學生對於程式設計學習興趣程度達 3 分以上者皆超過七成, 大多數學生對於學習程式設計均有興趣。實驗組為 76%,控制組為 71%,兩組從獨立樣 本 t 檢定的統計結果得知無顯著差異。對於學會程式設計的自信心請參考圖 4 - 3,1 分 表示「非常沒有自信」,5 分表示「非常有自信」,依次遞增。統計結果顯示實驗組對於 學會程式設計的自信心達 3 分以上者為 48%,控制組對於學會程式設計的自信心達 3 分 以上者為 54%,兩組從獨立樣本 t 檢定的統計結果得知無顯著差異。大多數學生對於學 習程式設計的自信心與興趣有落差,學生對於學會程式設計雖有興趣但自信較為不足。. 25.

(36) 120 100 80 60 40 20 0 實驗組 Alice. 控制組. Code.org. Greenfoot. Scratch. 未使用過任何學習工具. 圖 4 - 1 常見程式設計學習工具的使用經驗. 120. 人數. 100 80 60 40 20 0. 實驗組. 控制組. 5分. 14. 13. 4分. 39. 38. 3分. 51. 45. 2分. 18. 25. 1分. 14. 15. 圖 4 - 2 程式設計學習興趣. 26.

(37) 120. 人數. 100 80 60 40 20 0. 實驗組. 控制組. 5分. 5. 2. 4分. 10. 30. 3分. 50. 42. 2分. 42. 35. 1分. 29. 27. 圖 4 - 3 程式設計學習信心. 第二節 不同教學模式對於程式設計概念之影響 程式設計概念考核的施測次數分為兩次,施測時間分別為實驗中(第 9 週)與實驗 末(第 22 週)。期中考核時與程式設計實作能力考核合併實施,共計 50 分鐘,期末考 核時獨立實施 50 分鐘。 表 4 - 2 為程式設計概念題獨立樣本 t 檢定結果,期中考核時實驗組的程式設計概念 題答對題數顯著高於控制組,達.001 顯著水準,顯示實驗組所採取的教學模式對於程式 設計概念的理解有較佳的表現。在期末考核時,實驗組與控制組的程式設計概念題答對 題數無顯著差異,顯示控制組在一段時間內已能掌握程式設計概念。由此兩次考核的結 果得知,採用視覺化程式語言工具引導高階程式語言教學模式能更快的讓學生理解程式 設計概念,然而,程式設計概念的理解是有限度的,因此,在較長的時間之後,使用傳 27.

(38) 統講述教學模式的學生也漸漸能夠掌握程式設計概念。 從教師的課堂觀察發現以下幾點: (一) 實驗組的學生對於抽象的程式設計概念有較佳的理解。 實驗組從 Code.org (Code.org, 2017) 的遊戲式學習中對於函式的運用時機有 較為深刻的印象,進展到 C 語言的階段後,較能在思考解題策略時主動運用函 式的概念。 (二) 實驗組在使用 CThinking(林依潔,2016)學習陣列的概念時較易產生混淆。 CThinking (2016) 的陣列概念較為複雜,程式積木具備多種不同的創建陣列 方式,需要教師較多的指引。建議未來可以針對不同的陣列運用模式,個別設計 多類型的題目,以利學生學習。. 表 4 - 2 程式設計概念題獨立樣本 t 檢定 組別. 人數. 平均值. 實驗組. 136. 7.50. 概念題答對題數:期中考核. 顯著性 .000***. 控制組. 136. 5.27. 實驗組. 136. 6.53. 概念題答對題數:期末考核. .509 控制組. 136. 6.77. 註:***p < .001. 第三節 不同教學模式對於程式設計實作能力之影響 程式設計實作能力考核的施測次數分為兩次,施測時間分別為實驗中(第 9 週)與. 28.

(39) 實驗末(第 23 週)。期中考核時與程式設計概念考核合併實施,共計 50 分鐘,期末考 核時獨立實施 50 分鐘。 表 4 - 3 與表 4 - 4 分別為期中考核及期末考核程式設計實作題獨立樣本 t 檢定結果, 由統計報表得知實驗組不論在實作題總分、結構面向總分、邏輯面向總分、語法面向總 分均顯著高於控制組,達.001 或.01 顯著水準。顯示實驗組所採取的教學模式,不論是 以短程或長程的學習而論,對於程式設計實作能力皆有較佳的表現。 由此兩次考核得知,採取先學習程式設計概念再培養實作能力的教學模式,即便實 驗組實際接觸 C 語言的時間較控制組少,仍能有較佳的程式設計實作能力。 表 4 - 3 期中考核程式設計實作題獨立樣本 t 檢定. 實作題總分 結構面向總分 邏輯面向總分 語法面向總分. 組別. 人數. 平均值. 實驗組. 136. 27.05. 控制組. 136. 19.92. 實驗組. 136. 9.04. 控制組. 136. 6.83. 實驗組. 136. 8.79. 控制組. 136. 6.43. 實驗組. 136. 9.21. 控制組. 136. 6.65. 註:***p < .001. 29. 顯著性 .000*** .000*** .000*** .000***.

(40) 表 4 - 4 期末考核程式設計實作題獨立樣本 t 檢定. 實作題總分. 結構面向總分. 邏輯面向總分. 語法面向總分. 組別. 人數. 平均值. 實驗組. 136. 22.37. 控制組. 136. 18.27. 實驗組. 136. 7.62. 控制組. 136. 6.06. 實驗組. 136. 7.97. 控制組. 136. 6.29. 實驗組. 136. 6.78. 控制組. 136. 5.93. 顯著性 .000***. .000***. .000***. .002**. 註:***p < .001,**p < .01 期末考核部分試題尚涉及函式的撰寫,函式的使用需要進階的程式設計能力,才能 評估納入函式結構的程式碼片段。因此,為瞭解學生更進階的程式能力表現,針對學生 的函式撰寫能力給予五點量表計分。從表 4 - 5 可得知,實驗組的函式運用能力顯著高 於控制組,達.001 顯著水準。 表 4 - 5 期末考函式運用能力獨立樣本 t 檢定. 函式運用能力. 組別. 人數. 平均值. 標準差. 實驗組. 136. 4.03. 1.409. 控制組. 136. 3.65. 1.676. 顯著性 .000***. 註:***p < .001 從教師的課堂觀察發現以下幾點: (一) 實驗組學生熟悉 C 語言的時間較控制組短。 實驗組在剛開始接觸 C 語言時,與控制組一樣在語法的部分不甚熟悉,但 因在第一、二階段即接觸程式設計概念,第三階段則先針對 C 語言語法進行練 30.

(41) 習,所以在最後實際撰寫 C 語言的階段,大約 5-6 週即可熟練 C 語言。 (二) 不論是實驗組或控制組的學生在教學階段後期,都會有數名學生對於學習程式 抱有較為消極的態度。 高學習成就與程式設計能力的高低並無直接相關,儘管高學習成就的學生 學習動機高,求知慾也相較一般學生高,但程式設計的學習仰賴持久的練習, 且每個人的興趣有所不同,在漸漸加深的題目之下,無興趣而放棄者也慢慢出 現。. 第四節 不同教學模式對於班級整體學習成效之影響 除了探討不同教學模式對於學生程式設計學習成就的影響之外,尚需評估該教學模 式是否造成班級整體學習成效差距加大,本節將探討各教學模式對於班級整體成效的影 響。 從圖 4 - 4 與圖 4 - 5 得知在期中考核時,控制組在程式設計概念以及程式設計實作 之分數離散程度均高於實驗組。因此,可推論控制組內學生程式設計概念理解程度以及 程式設計實作能力,組內學習成就差距均較實驗組高。從期中考核的統計分析得知,在 較短期的學習中,傳統講述式教學法相較採取先學習程式設計概念再培養實作能力的教 學模式,易使班級內部學生學習差距增加。. 31.

(42) 圖 4 - 4 期中考核概念題答對題數箱型圖. 圖 4 - 5 期中考核實作題總分箱型圖. 32.

(43) 從圖 4 - 6 與圖 4 - 7 得知在期末考核時,控制組在程式設計概念以及程式設計實作 之分數離散程度依然高於實驗組。因此,可得知控制組內學生程式設計概念理解程度以 及程式設計實作能力,組內學習成就差距均較實驗組高。從期末考核的統計分析得知, 即便在較長程的學習中,使用傳統講述式教學法相較採取先學習程式設計概念再培養實 作能力的教學模式,仍較易使班級內部學生學習差距增加。. 圖 4 - 6 期末考核概念題答對題數箱型圖. 33.

(44) 圖 4 - 7 期末考核實作題總分箱型圖. 第五節 研究對象課後行為 在實驗授課階段結束之後,為瞭解控制組與實驗組的學習動機是否有所不同,本研 究使用激勵的學習策略量表 (MSLQ),針對學生的學習動機進行訪問。問卷詳細內容請 參考附錄八,以下將實驗組與控制組於學習動機各向度之得分,使用獨立樣本 t 檢定進 行分析,結果請參考表 4 - 6。. 34.

(45) 表 4 - 6 MSLQ 問卷分析結果 變異數等式的 Levene 檢定 顯著性. F 內在目標 採用相等變異數 不採用相等變異數 外在目標 採用相等變異數 不採用相等變異數 工作價值 採用相等變異數 不採用相等變異數 控制信念 採用相等變異數 不採用相等變異數 自我效能 採用相等變異數 不採用相等變異數 測試焦慮 採用相等變異數 不採用相等變異數 *努力經營 採用相等變異數 不採用相等變異數 *尋求協助 採用相等變異數 不採用相等變異數. 平均值等式的 t 檢定. .738. .391. .091. .763. 5.742. .017. 1.695. .194. 1.445. .230. .467. .495. .023. .880. 1.428. .233. t -.680 -.680 -3.076 -3.076 .158 .158 .767 .767 -.257 -.257 -1.740 -1.740 .644 .644 -2.631 -2.631. 自由度 顯著性(雙尾) 平均值差異 標準誤差異 294 .497 -.270 .398 292.729 .497 -.270 .398 294 .002 -1.061 .345 293.350 .002 -1.061 .345 294 .875 .108 .686 286.406 .875 .108 .686 294 .444 .270 .353 287.585 .444 .270 .353 294 .797 -.216 .840 293.557 .797 -.216 .840 294 .083 -.797 .458 293.481 .083 -.797 .458 294 .520 .135 .210 293.401 .520 .135 .210 294 .009 -1.277 .485 292.138 .009 -1.277 .485. 從表 4 - 6 中可得知實驗組的外在目標 (Extrinsic Goal Orientation) 與尋求協助向度 上的分數均低於控制組,顯示實驗組在學習時為外在設定的價值觀或標準,如報酬、成 績、讚美等因素而從事學習活動的程度的追求顯著低於控制組,且相對控制組較不仰賴 同儕或教師,自學能力較佳。但在大多數向度上,實驗組與控制組並無太大差異。比對 各組學習成就表現可得知,在同樣高學習動機之下,實驗組的學習模式能帶來較好的學 習表現。. 35.

(46) 第伍章 結論與未來展望 第一節 結論 本研究探討高學習成就學生採取先學習程式設計概念再培養實作能力的教學模式, 與傳統講述教學模式的差異。透過研究資料分析,針對程式設計概念、問題解決能力以 及班級整體學習成效三個面向,統整出以下結論: (一) 程式設計概念 採取先學習程式設計概念再培養實作能力的教學模式,相較傳統講述型教 學模式較能使學生快速掌握程式設計概念。在較進階的程式概念,如函式理解 的部分,也展現較良好的表現,學生能在思考解題策略時主動運用函式的概念。 (二) 程式設計實作能力 採取先學習程式設計概念再培養實作能力的教學模式相較傳統講述型教 學模式的學生,雖然實際接觸高階程式語言的時間較短,但無論在結構、邏輯 以及語法上均擁有較佳的程式設計能力表現。 (三) 班級整體學習落差 在程式設計的教學歷程,容易在後期遇到學習疲乏的狀況,使整班學生學習 成效有所差距,採取先學習程式設計概念再培養實作能力的教學模式相較傳統講 述型教學模式擁有較低的學習落差。. 36.

(47) 第二節 未來研究 本研究經由考核、問卷、課堂紀錄得出的結果,對於高學習成就學生的程式設計教 學方式有了正面的建議,然則尚有下列幾點可供未來深入研究: (一) 嘗試使用不同的方式,實踐從程式設計概念至程式設計實作的教學策略,例如 開發不插電教材取代視覺化程式設計工具。 (二) 此教學模式在高學習成就學生上有顯著的成功,在不同學習成就或著不同性別 學生上的學習差異,包含學習動機、學習成效以及班級內學習落差,皆值得未來 持續追蹤探討。. 37.

(48) 參考文獻 英文文獻 Australian Curriculum, Assessment, Reporting Authority (2013a). Draft Australian curriculum technologies.. Australian Curriculum, Assessment, Reporting Authority (2013b). General capabilities in the Australian curriculum.. Budny, D., Lundz, L., Vipperman, J., & If, J. L. P. (2002). Four Steps to Teaching C Programming. Frontiers in Education, 2002. 32nd Annual, Session F1G, 2-6.. Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., & Miller, P. (1997). Mini languages: A Way to Learn Programming Principles. Education and Information Technologies, 2(1), 65-83. Cardellini, L. (2002). An Interview with Richard M. Felder. Journal of Science Education 3(2), 62-65. Carl, C. (2001). Computing Curricula 2001: Computer Science.. Carlisle, M. C., Wilson, T. A., Humphries, J. W., & Hadfield, S. M. (2005). Raptor: A Visual Programming Environment for Teaching Algorithmic Problem Solving. ACM SIGCSE Bulletin, 37, 176. http://doi.org/10.1145/1047124.1047411. 38.

(49) Cooper, S., Dann, W., & Pausch, R. (2000). Alice: a 3-D tool for introductory programming concepts. Journal of Computing Sciences in Colleges, 15, 107-116. http://doi.org/10.1145/1953163.1953243. Code.org. (2017). Hour of Code website. Retrieved from http://code.org/learn. Computer Science Teachers Association. (2011). CSTA K-12 computer science standards. The ACM K-12 Education Task Force.. CThinking. (2016). CThinking-Computational Thinking Retrieved from http://ct2prog.csie.ntnu.edu.tw/ Deek, F. P. (1999). The Software Process : A Parallel Approach through Problem Solving and Program Development. Computer Science Education, 9(1), 43-70.. Developers, G. (n.d.). Blockly. Retrieved from https://developers.google.com/blockly/ Einhorn, S. (2012). MicroWorlds, Computational Thinking, and 21st Century Learning.. Fowler, L., Allen, M., Armarego, J., & Mackenzie, J. (2000). Learning styles and CASE tools in Software Engineering. 9th Annual Teaching Learning Forum, 1-10.. Frederick, W. B. L., & Watson, C. (2011). Game-based concept visualization for learning programming. MTDL’11: Proceedings of the Third International ACM Workshop on Multimedia Technologies for Distance Learning, 37-42. http://doi.org/10.1145/2072598.2072607 39.

(50) Gal-Ezer, J., Beeri, C., Harel, D., & Yehudai, A. (1995). A high school program in computer science. Computer, 28(10), 73-80.. Gouws, L. A., Bradshaw, K., & Wentworth, P. (2013). Computational thinking in educational activities. Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE’13, 10. http://doi.org/10.1145/2462476.2466518. Green, T. R. G., & Petre, M. (1996). Usability Analysis of Visual Programming Environments: A “Cognitive Dimensions” Framework. Journal of Visual Languages & Computing, 7(2), 131-174. http://doi.org/10.1006/jvlc.1996.0009 Grover S., & Roy P. (2013). Computational Thinking in K-12 : A Review of the State of the Field. Educational Researcher, 42(1), 38-43. http://doi.org/10.3102/0013189X12463051. Honig, W. L. (2013). Teaching and assessing programming fundamentals for non majors with visual programming. Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE’13, 40. http://doi.org/10.1145/2462476.2462492. Ismail, M. N., Ngah, N. A., & Umar, I. N. (2010). Instructional strategy in the teaching of computer programming: A need assessment analyses. Turkish Online Journal of Educational Technology, 9(2), 125-131.. Kelleher, C., & Pausch, R. (2005). Lowering the Barriers to Programming: a survey of 40.

(51) programming environments and languages for novice programmers. Science, 37(2), 83137. http://doi.org/10.1145/1089733.1089734. Kessler, C. M., & Anderson, J. R. (1986). Learning flow of control: Recursive and iterative procedures. Human-Computer Interaction, 2(2), 135-166. http://doi.org/10.1207/s15327051hci0202_2. Kölling, M. (2010). The Greenfoot Programming Environment. ACM Transactions on Computing Education, 10(4), 1-21. http://doi.org/10.1145/1868358.1868361. Li, K. C., Wang, F. L., Yuen, K. S., Cheung, S. K. S., & Kwan, R. (2012). Engaging Learners Through Emerging Technologies. Communications in Computer and Information Science (Vol. 302). http://doi.org/10.1007/978-3-642-31398-1. Li, Y. (2016). Teaching programming based on Computational Thinking. 2016 IEEE Frontiers in Education Conference (FIE), 1-7. http://doi.org/10.1109/FIE.2016.7757408. Linn, M. C. (1985). The Cognitive Consequences of Programming Instruction in Classrooms. Educational Researcher, 14(5), 14-29. http://doi.org/10.3102/0013189X014005014. Linn, M. C., & Clancy, M. J. (1992). The case for case studies of programming problems. Communications of the ACM, 35(3), 121-132. http://doi.org/10.1145/131295.131301. Lye, S. Y., & Koh, J. H. L. (2014). Review on teaching and learning of computational thinking through programming: What is next for K-12? Computers in Human Behavior, 41.

(52) 41, 51-61. http://doi.org/10.1016/j.chb.2014.09.012. Maloney, J., Resnick, M., & Rusk, N. (2010). The Scratch programming language and environment. ACM Transactions on Computing Education, 10(4), 1-15. http://doi.org/10.1145/1868358.1868363.http. Matsuzawa, Y., Ohata, T., Sugiura, M., & Sakai, S. (2015). Language Migration in non-CS Introductory Programming through Mutual Language Translation Environment Basic Function and Interface. 46th ACM Technical Symposium on Computer Science Education, 185-190.. Navarro-Prieto, R., & Canas, J. J. (2001). Are Visual Programming Languages Better? The Role of Imagery in Program Comprehension. International Journal of Human-Computer Studies, 54(6), 799-829. http://doi.org/10.1006/ijhc.2000.0465. Paliokas, I., Arapidis, C., & Mpimpitsos, M. (2011). PlayLOGO 3D: A 3D interactive video game for early programming education: Let LOGO be a game. Proceedings - 2011 3rd International Conferenceon Games and Virtual Worlds for Serious Applications, VSGames 2011, 24-31. http://doi.org/10.1109/VS-GAMES.2011.10. Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Paterson, J. (2007). A survey of literature on the teaching of introductory programming. SIGCSE Bulletin, 39(4), 204-223. http://doi.org/10.1080/08993400500150747. 42.

(53) Pintrich, P. R., Smith, D. A. F., Teresa Garcia, A., & McKeachie, W. J. (1991). A Manual for the Use of the Motivated Strategies for Learning Questionnaire.. Puhlmann, H. (2008). Grundsätze und Standards für die Informatik in der Schule. Bildungsstandards Informatik für die Sekundarstufe I.Beilage zu LOG IN, 150/151.. Robins, A., Rountree, J., Rountree, N., Robins, A., Rountree, J., & Rountree, N. (2003). Learning and Teaching Programming: A Review and Discussion Learning and Teaching Programming : A Review, 3408, 37-41. http://doi.org/10.1076/csed.13.2.137.14200. Saito, D., Washizaki, H., & Fukazawa, Y. (2016). Analysis of the Learning Effects between Text-based and Visual-based Beginner Programming Environments. 2016 IEEE 8th International Conference, (Engineering Education), 208-213.. Sajana, A. (2015). An interactive serious game via visualization of real life scenarios to learn programming concepts.. Sanders, D., & Dorn, B. (2003). Classroom experience with Jeroo. Journal of Computing Sciences in Colleges, 308-316. Retrieved from http://dl.acm.org/citation.cfm?id=767644. Shackelford, R., & Jr, R. L. (1997). Introducing computer science fundamentals before programming. Proceedings Frontiers in Education 1997 27th Annual Conference. Teaching and Learning in an Era of Change (1997), 285-289. http://doi.org/10.1109/FIE.1997.644858 43.

(54) Thomas, L., Ratcliffe, M., Woodbury, J., & Jarman, E. (2002). Learning styles and performance in the introductory programming sequence. ACM SIGCSE Bulletin, 34, 33. http://doi.org/10.1145/563517.563352. Tsukamoto, H., Takemura, Y., Oomori, Y., Ikeda, I., Nagumo, H., Monden, A., & Matsumoto, K. (2016). Textual vs. Visual Programming Languages in Programming Education for Primary Schoolchildren.. Wang, H. (2014). Effects of an Integrated Scratch and Project-based Learning Approach on the Learning Achievements of Gifted Students in Computer Courses, (3). http://doi.org/10.1109/IIAI-AAI.2014.85. Xinogalos, S. (2012). An evaluation of knowledge transfer from microworld programming to conventional programming. Journal of Educational Computing Research, 47(3), 251-277.. Yen, C.-Z., Wu, P.-H., & Lin, C.-F. (2012). Analysis of expert's and novice's thinking process. Engaging Learners through Emerging Technologies, Communication in Computer and Information Science, 302, 122-134.. 44.

(55) 中文文獻 大學程式設計先修檢測(APCS)(2017)。大學程式設計先修檢測 (Advanced Placement Computer Science)。http://apcs.csie.ntnu.edu.tw/ 文部科学省(2008)。中学校学習指導要領解説。 文部科学省(2009)。高等学校学習指導要領。 林依潔(2017)。從程式設計概念至程式設計實作之教學研究。 林維璋(2014)。系統與自我導向的 Scratch 學習者之學習自願研究。 林瓊甄(2006)。 適性化 e-Learning 教材發展之研究。 教育部(2016)。第三屆資訊國力發展論壇報告資訊軟體人力向下扎根與培育。 國家教育研究院(2014)。十二年國民基本教育科技領域課程綱要草案.. 國家教育研究院課程及教學研究中心(2017)。新課綱「程式設計」,學邏輯解問題。 程式設計合作學習平台(2017)。高瞻計畫 ─ 高中資訊科學創新學習程式設計合作學 習平台。http://join-and-joy.appspot.com/. 45.

(56) 附錄.

(57) 附錄一 實驗組課程進度表 週次. 課程主題. 教學工具. 課堂作業. 建構程式設計概念  判斷結構 1.  前測問卷.  重複結構(次數,事件). Code.org.  迷宮  藝術家.  判斷結構 2.  藝術家 2.  巢狀重複結構. Code.org.  農夫  藝術家 3. 3.  判斷結構.  農夫 2.  重複結構(次數,事件).  藝術家 4.  計數 (for loop). Code.org.  函數呼叫.  農夫 3  藝術家 5.  參數  除錯 運用程式設計概念. 4.  輸入 / 輸出.  電力補給站.  運算.  健康管理小幫手.  變數. CThinking.  慵懶疲倦遠離我.  陣列. 簡易題.  麥當勞都是為您.  判斷結構  重複結構  輸入 / 輸出.  高速公路計程收費.  運算.  校外教學去哪裡 CThinking.  變數 5. 簡易題.  陣列  判斷結構  重複結構. 46.  紀念小書包  網路銀行妙絕招.

(58) 週次. 6. 課程主題. 教學工具. 課堂作業.  輸入 / 輸出.  生物 DNA 知多少.  運算.  銀行外匯來比較.  變數. CThinking.  陣列. 知識題.  費先生的兔子們.  判斷結構  重複結構 期中考核. 7. 熟悉高階程式語言語法  認識程式設計合作學習平 8. 台  格式化輸入 / 輸出函式. 程式設計合作學.  我是小綠綠 :D. 習平台.  小小 AI 銷售員. (join-and-joy).  判斷結構. 程式設計合作學. 9. 習平台 (join-and-joy)  重複結構. 程式設計合作學 習平台. 10. (join-and-joy).  期末總成績計算  等級制與百分制換 算  階乘計算器: for loop  階乘計算器: while loop. 運用高階程式語言解決問題  認識 Code::Blocks 11.  期中考考題: Code::Blocks.  變數與基本輸入輸出. C 語言版本.  判斷結構  重複結構.  電量顯示器. 12. Code::Blocks  一維陣列.  簡易分數統計. 13. Code::Blocks  綜合練習:一維陣列. 14.  週支出計算器  數字翻轉器  生物 DNA 知多少.  巢狀重複結構. Code::Blocks.  綜合練習:一維陣列.  資料傳輸有問題  字串長度. 15. Code::Blocks. 47.  排序.

(59) 週次. 課程主題. 教學工具.  綜合練習. 課堂作業  特徵分類. 16. Code::Blocks.  揀選最大值  輸出指定比例圖形. 17.  函式. Code::Blocks.  函式基本結構練習. 18.  綜合練習:函式. Code::Blocks.  費氏數列. 19.  綜合練習:函式. Code::Blocks.  歌唱比賽. 20.  綜合練習:函式. Code::Blocks.  質因數分解.  綜合練習:函式. Code::Blocks.  後測問卷. 21.  循環質數. 22. 期末考核:概念題. 23. 期末考核:實作題. 48.

(60) 附錄二 控制組課程進度表 週次. 課程主題. 教學工具. 課堂作業. 熟悉高階程式語言的語法及程式設計概念. 1.  認識 Code::Blocks 介面.  前測問卷.  格式化輸出函式.  輸出自我介紹.  基本資料型態. Code::Blocks.  變數的宣告與使用  指定運算子  格式化輸入函式 2.  小小 AI 對妳說 Code::Blocks.  算術運算子  關係運算子.  等級制與百分制換.  邏輯運算子 3. 算 Code::Blocks.  遞增 / 遞減運算子  判斷結構. 4.  巢狀判斷結構. Code::Blocks.  簡易數字排序程式. 5.  重複結構:for loop. Code::Blocks.  電量顯示器. 6.  重複結構:while loop. Code::Blocks.  週支出計算器. 期中考核. 7  重複結構 8.  質數判斷器 Code::Blocks.  中斷重複結構指令: break;  for loop 與 while loop 的. 9.  階乘計算器 Code::Blocks. 比較  巢狀重複結構.  九九乘法表. 10. Code::Blocks  綜合練習:重複結構.  棒球賽勝率統計. 11 12.  直角三角形.  一維陣列. 49. Code::Blocks.  數字三角形. Code::Blocks.  數字翻轉.

(61) 週次. 課程主題. 教學工具.  綜合練習:一維陣列.  生物 DNA 知多少. 13. Code::Blocks  綜合練習:一維陣列.  資料傳輸有問題  費氏數列. 14 15. 課堂作業.  綜合練習:一維陣列. Code::Blocks.  字串長度. Code::Blocks.  排序.  綜合練習.  特徵分類. 16. Code::Blocks.  揀選最大值  輸出指定比例圖形. 17.  函式. Code::Blocks.  函式基本結構練習. 18.  綜合練習:函式. Code::Blocks.  費氏數列. 19.  綜合練習:函式. Code::Blocks.  歌唱比賽. 20.  綜合練習:函式. Code::Blocks.  質因數分解.  綜合練習:函式. Code::Blocks.  後測問卷. 21.  循環質數. 22. 期末考核:概念題. 23. 期末考核:實作題. 50.

(62) 附錄三 前測問卷:起點行為調查 1.. 請評定自己對於以下程式語言的精熟程度。 精熟. 佳. 普通. 僅使用過幾次而已. 從未接觸. C / C++ Java Visual Basic Python HTML PHP JavaScript. 2.. 除了前一題所提到的程式語言,是否學習過其他程式語言?若有,請寫出程式語 言的名稱並自行括號備註程度為何(精熟/佳/普通/僅使用過幾次而已)?. 51.

參考文獻

相關文件

It is well known that second-order cone programming can be regarded as a special case of positive semidefinite programming by using the arrow matrix.. This paper further studies

Binomial Option Pricing

Programming languages can be used to create programs that control the behavior of a. machine and/or to express algorithms precisely.” -

A Cloud Computing platform supports redundant, self-recovering, highly scalable programming models that allow workloads to highly scalable programming models that allow workloads to

Structured programming 14 , if used properly, results in programs that are easy to write, understand, modify, and debug.... Steps of Developing A

These interior point algorithms typically penalize the nonneg- ativity constraints by a logarithmic function and use Newton’s method to solve the penalized problem, with the

JRE (Java Runtime Environment): for users, JVM + basic libraries JDK (Java Development Kit): JRE + compilers + ... —jdk-6u12-windows-i586-p.exe or other platform

OOP: organized DATA + organized code (ACTION) using classes as the basic module. action are closely coupled