• 沒有找到結果。

大學生運算思維與程式設計學習成就研究

N/A
N/A
Protected

Academic year: 2021

Share "大學生運算思維與程式設計學習成就研究"

Copied!
49
0
0

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

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授:李忠謀博士. 大學生運算思維與程式設計學習成就研究 College students’ learning performance of computational thinking and programming. 研究生:李恩萱. 撰. 中華民國一零七年八月.

(2) 摘要 本研究發展一門運算思維與程式設計通識課程,欲探究大學生之學習成就差異。 在一學期課程後,分析不同背景學生之運算思維能力、程式設計實作與專題表現,並 針對表現不理想的學生進一步討論其學習困難。本研究之對象為選修此通識課程之大 學生共計 348 人,課程共 18 週,包含運算思維初探 3 週,程式設計概念培養 8 週,專 題創作 5 週以及期中測驗 2 週。資料分析以期中測驗成績、專題成績與問卷為量化資 料,課堂觀察與補救教學問答為質性資料。. 研究結果發現,期中測驗一的成績對於期中測驗二有極高的預測力,表示課程內 容安排合宜且具連貫性。針對學生的表現差異,未曾學習過程式設計相關課程的學生 在基礎程式設計概念的表現與有學習經驗的學生並駕齊驅,然而在「重複結構」、「列 表應用」及「列表綜合應用」的表現仍較差。理學院和科技與工程學院也在「重複結 構」、「列表應用」及「列表綜合應用」表現優於教育學院和文學院。整體而言,學習 表現較差的學生皆在學習「重複結構」時遇到困難,連帶影響以「重複結構」為基礎 的「列表」及「綜合應用」的表現。. 本研究針對程式設計通識課程提出建議,增加基礎「重複結構」的教學時數,以 確保學生能在熟悉迴圈運用的情況下,有效學習更進階的內容。另由於部分學院修課 人數未達十人,因此難以歸納其學院學生的特性與需求,未來可考慮開設單一學院或 科系之專班,以期在通識教育的一般性之下,有更多符合個別差異的空間。. 關鍵字:運算思維、程式設計學習 I.

(3) ABSTRACT This study developed a course in computational thinking (CT) and programming to explore the differences in learning performance among college students. After an one-semester course, we analyze the performance of students from different backgrounds, and further discuss their learning difficulties for students with poor performance. There are 348 students enrolled in this course. The course consisted of 18 weeks, including 3 weeks of CT exploring, 8 weeks of programming concepts constructing, 5 weeks of project creating and 2 weeks of mid-term testing. The data analysis is based on the programming test grade and questionnaires as quantitative data, and the classroom observation and interviews are qualitative data.. The results show that students with poor performance have encountered difficulties in learning the "repetition structure", which is the basis of "list" and "comprehensive application". Moreover, students major in Science or Technology and Engineering have better learning performance than students major in Education or Liberal Arts. We suggest to increase learning hours of the "repetition structure" to ensure that students can effectively learn advanced content while understanding the use of loops.. Keywords: computational thinking, programming learning II.

(4) 目錄 第壹章 緒論 ......................................................................................................... 1 研究動機 .............................................................................................. 1 研究目的 .............................................................................................. 2 第貳章 文獻探討 ................................................................................................. 3 運算思維的定義 .................................................................................. 3 視覺化程式語言對程式設計初學者的助益...................................... 4 程式設計入門課程設計 ...................................................................... 6 第參章 研究方法 ................................................................................................. 8 課程設計 .............................................................................................. 8 實驗設計 ............................................................................................ 13 研究工具 ............................................................................................ 13 第肆章 研究結果與討論 ................................................................................... 17 運算思維表現 .................................................................................... 17 程式設計實作表現 ............................................................................ 18 程式設計學習困難 ............................................................................ 26 課程感受與回饋 ................................................................................ 28. III.

(5) 第伍章 結論 ....................................................................................................... 32 參考文獻 ............................................................................................................. 33 附錄 ..................................................................................................................... 37 附錄一 課程進度表 ........................................................................................ 38 附錄二 第一次期中考試題 ............................................................................ 40 附錄三 第二次期中考試題 ............................................................................ 41. IV.

(6) 表目錄 中文版積木修改對照表............................................................................. 9 BEBRAS 國際運算思維挑戰賽 SENIOR 組計分方式 ........................ 14 期末學習成效問卷問題敘述................................................................... 16 期中測驗及各項概念描述統計............................................................... 19 學習經驗對期中測驗成績之獨立樣本 T 檢定 ...................................... 20 學習經驗對期中測驗一概念之獨立樣本 T 檢定 .................................. 20 學習經驗對期中測驗二概念之獨立樣本 T 檢定 .................................. 21 學院對期中測驗成績之單因子變異數分析 .......................................... 22 學院對期中測驗一概念之單因子變異數分析 ...................................... 23 學院對期中測驗二概念之單因子變異數分析 ................................... 24 各項概念之成對樣本 T 檢定............................................................... 25 程式實作表現對專題成績之獨立樣本 T 檢定 .................................. 26 運算思維能力與敘述對照表 ............................................................... 29 學院與課程應用次數分配表 ............................................................... 31. V.

(7) 圖目錄 圖 1 積木區介面 ................................................................................................. 6 圖 2 學習階段流程圖......................................................................................... 8 圖 3 教學平台首頁........................................................................................... 11 圖 4 程式設計概念與習題對應圖................................................................... 12 圖 5 研究時程週次安排................................................................................... 13 圖 6 學生作答程式範例................................................................................... 15 圖 7 運算思維測驗成績分布........................................................................... 17 圖 8 期中測驗成績分布................................................................................... 18 圖 9 學生程式範例—變數的覆蓋................................................................... 26 圖 10. 學生程式範例—變數意義的改變 ....................................................... 27. 圖 11. 學生程式範例—變數的更新 ............................................................... 27. 圖 12. 學生程式範例—執行流程 ................................................................... 28. 圖 13. 程式設計概念理解 ............................................................................... 28. 圖 14. 運算思維能力表現 ............................................................................... 30. 圖 15. 課程學習成就 ....................................................................................... 31 VI.

(8) 第壹章. 緒論. 研究動機 運算思維是一種利用電腦科學的基本概念解決問題、設計系統和理解人類行 為的思考模式(Wing, 2006),日新月異的資訊科技發展,改變了各個領域問題解 決的方式,我們必須運用電腦來解決生活中的問題,如:物理現象模擬、生物基 因序列比對、政治經濟決策、顧客消費模式分析…等(Sullivan, 2013),因此,運 算思維被認為是二十一世紀所有學生都須具備的關鍵技能(Barr, Harrison, & Conery, 2011)。. 對非資訊科系的學生而言,程式設計是培養運算思維的要素(Cooper & Dann, 2015),學習程式設計不僅是為了成為電腦科學家,也是問題解決的必備技 能(Palumbo, 1990; Robins, Rountree, & Rountree, 2003)。近年來,非資訊科系的 學生亦逐漸體認到程式設計的重要性,以及與自身領域的相關性(Sax, Lehman, & Zavala, 2017),因此增加了程式設計入門課程的需求。然而,儘管修課學生來 自不同的學院、科系,程式設計課程並未調整課程安排、改變課程設計以幫助學 生學習,因此對非資訊科系的學生而言,學習程式設計仍是抽象且困難的。. 本研究針對非主修資訊科學的學生,發展一門「運算思維與程式設計」大學 通識課程,課程中首先透過生活實例揭示運算思維的重要性;再利用視覺化程式 設計工具建立程式概念及運算思維;最後藉由應用專題的製作,培養綜合運用運 算思維與程式設計的實作技能。選修課程的學生來自不同的學院、科系、年級, 本研究探討其中不同背景的學生學習程式設計的歷程以及學習成就的差異。. 1.

(9) 研究目的 本研究旨在透過運算思維與程式設計通識課程,建立學生的基礎程式設計概 念,培養利用程式設計解決問題的能力,進而發展運算思維。課程設計著重於如 何拆解問題、發展解題的步驟,並利用程式語言實作演算法。程式語言選用視覺 化程式設計工具,幫助程式初學者在不受特定程式語法干擾下,聚焦於理解程式 執行的邏輯與流程。. 本研究欲探討選修此通識課程的大學生學習程式設計的歷程,包含學習表現 的差異、學習態度與感受,以及程式設計的學習困難。具體的研究問題如下: (一) 本研究之課程設計與內容安排是否合宜? (二) 經過一學期的課程,學生是否能夠具備基礎程式設計能力與運算思維? 針對學生的個別差異,進一步探討三個子問題: 1. 擁有不同程式設計學習經驗的學生,學習表現有無顯著差異? 2. 來自不同學院的學生,學習表現有無顯著差異? 3. 學習表現較差的學生,在哪些程式設計概念上有困難,困難點為何?. 2.

(10) 第貳章. 文獻探討. 本章第一節呈現運算思維的定義與程式設計中的運算思維,第二節說明視覺 化程式語言對程式設計初學者的幫助,第三節探討程式設計入門課程的相關研 究,包含課程設計、教學策略與學生的表現差異。. 運算思維的定義 運算思維可以簡單地定義為:「利用電腦解決日常問題所必要的知識、態 度、技能」(Özden, 2015)。其內涵十分廣泛,首次提出這個名詞的 Wing (2006)表示,每天使用的技能—例如規劃、學習、排程、搜索、做決策—都在 使用運算思維。在處理複雜系統或程序時,我們利用運算思維提取重點並分解問 題;在解決問題或與問題相關的模型時,運算思維也有助於選擇恰當的表示法。 運算思維是「一個思考的歷程,包含形成問題、組織解法,並將解法表示成運算 工具能夠解決的形式」(Wing, 2011),Aho(2012)則將此概念簡化為:「把問題 的解法表示成運算的步驟和演算法則」。. 美國電腦科學教師協會(Computer Science Teachers Association, CSTA)提 出,運算思維結合了人類思維與電腦的能力,是一種解決問題的工具,運算思維 的本質是除了「使用」科技工具與資訊之外,思考該如何「創造」它們並應用於 解決問題(Phillips, 2009)。美國國際科技教育應用協會(The International Society for Technology in Education, ISTE)亦將運算思維廣泛定義為更高階層的技能,包 含創造力、演算法思維、批判思維、問題解決、溝通與合作(ISTE, 2015)。. 3.

(11) 自運算思維一詞被提出至今,許多學者對於運算思維應包含哪些元素各有見 解,其中多數皆涵蓋抽象化(abstraction)、資料表示(data representation)、問題 分解(problem decomposition)及演算法思維(algorithm thinking)(Wing, 2006; Grover & Pea, 2013; Google, 2015)。CSTA 與 ISTE 對運算思維的操作型定義為一 個問題解決歷程,包含下列特性(CSTA & ISTE, 2011): (一) 將問題表示為能夠利用電腦或其他工具幫助我們解決的形式 (二) 有邏輯地組織與分析資料 (三) 透過建模與模擬的抽象化來表示資料 (四) 藉由演算法思維自動化解題策略 (五) 能識別、分析與實作可行的解法,以達到有效整合解題步驟與資源的目的 (六) 將這個問題解決流程一般化並轉換到各種不同的問題情境. 發展運算思維的最有效的方法是學習電腦科學;運算思維是電腦科學的核 心,它們的內涵是相通的(K-12 computer science framework, 2016)。而程式設計 是創造運算作品的主要方式,亦是展現運算思維的媒介(Grover & Pea, 2013)。 透過撰寫程式,能實作運算思維中的抽象化、流程控制、模式化、重複、除錯等 能力(林育慈、吳正已,2016)。本研究依據上述的運算思維內涵與定義,發展 運算思維導向的程式設計入門課程,藉由程式設計培養利用電腦科學解決問題的 運算思維。. 視覺化程式語言對程式設計初學者的助益 在程式設計入門課程採用專業的程式設計語言,通常導致教師與學生花費大 量精力在精通該程式語言的特性,而非發展解題的設計方法(Brusilovsky, Calabrese, Hvorecky, Kouchnirenko, & Miller, 1997; Deek, 1999; Linn, 1985; Pears et 4.

(12) al., 2007) 。學生缺乏對基礎程式結構的理解,以及從程式問題轉換為可行演算法 的策略(Deek, 1999; Kessler & Anderson, 1986; Li & Watson, 2011; de Raadt, 2007)。Chao(2016)指出,視覺化程式設計工具提供程式設計初學者視覺化的 支持,有助於理解程式的架構,舉例來說,視覺化物件可以幫助使用者檢查物件 的狀態,如:行為、位置等;拼塊式語言或圖示化指令,讓使用者利用拖拉方式 建構程式;視覺化回饋執行的結果,幫助使用者觀察程式如何運作(Maloney, Resnick, Rusk, Silverman, & Eastmond, 2010)。. Ko, Myers 與 Aung(2004)提出六個學習程式設計的障礙,包含(1)設 計:不知道我想讓電腦做什麼;(2)選擇:不知道該使用什麼指令;(3)協調: 不知道如何讓指令相互運作;(4)使用:不知道如何使用指令、可以怎麼用; (5)理解:不知道為什麼程式沒有照我的期望執行;(6)訊息:不知道如何檢 查程式的正確性。其中選擇、協調與使用障礙反映了「組成一個程式」的困難。 積木式(blocks-based)的視覺化程式語言能夠解決這三項學習障礙(Bau, Gray, Kelleher, Sheldon, & Turbak, 2017),對於選擇與使用障礙,積木指令被依照功能 分類展示於介面中,如圖 1,學生可以藉由探索選擇需要的指令,以「辨認」取 代「記憶」 ,另某些積木有提供預設值或下拉選單,取代標點符號的使用。對於 協調障礙,積木特殊的形狀限制了程式的組合,學生能夠藉由直接操作、嘗試組 合積木,特定的積木形狀僅能嵌入特定的空格中,提示學生指令之間的關係。. 5.

(13) (a)Scratch. (b)Blockly 圖1 積木區介面. 有些有經驗的程式設計師認為,僅僅將積木組合在一起並非「真正的程式設 計」,然而,Scratch 的設計者 Resnick 等人(2009)表明,若將程式設計視為表 達的媒介,而非通往職業的道路,Scratch 已能滿足需求。學習程式設計的目的不 只是為了成為專業的程式設計師,亦可以透過創造程式達成其他目標。. 程式設計入門課程設計 資訊科學科系所提供的程式設計入門課程(CS1)強調程式設計、軟體設計 以及其他成為電腦科學家的必備技能(Dawson, Allen, Campbell, & Valair, 2018), 為了符合不同背景學生的需求,應減少課程目標、放慢教學步調、降低學生負 荷,並將課程內容聚焦於「如何應用程式設計於自身領域」。Sullivan(2013)設 計了一門以資料科學為主題的程式設計入門課程,其中課程目標亦強調學生能學 習實用的技能,同時理解電腦科學的思考模式,最重要的是課程的可取得性 (accessibility),使更廣泛的學生從課程中受益。. 6.

(14) 上述課程設計的文獻中著重於探討非主修電腦科學的學生在針對電腦科學科 系所開設的入門課程(CS1)與通識課程之間的表現差異,結果顯示通識課程放 慢教學步調,謹慎且適切地呈現課程內容,因此學生在通識課程的學習表現顯著 優於在 CS1 的學習表現。然而,無論主修與非主修的學生,在難度相對較低的通 識課程中皆有較好的表現,因此,本研究參考了文獻中的課程設計建議,欲探討 在一門針對非主修電腦科學學生所設計的通識課程中,不同背景學生的學習表現 與差異。. 7.

(15) 第參章. 研究方法. 本研究以修習運算思維與程式設計通識課程之大學生為研究對象,本章第一 節介紹通識課程的教學策略與內涵,第二節說明實驗設計及流程,第三節則分項 敘述實驗中使用的研究工具。. 課程設計 本課程規劃三個學習階段,從目標導向學習至問題導向學習,再進入專題導 向學習,如圖 2。. 圖2 學習階段流程圖 (一) 目標導向學習 目標導向學習階段分為兩部分,第一部分為運算思維初探,藉由桌上遊戲與 不插電的資訊科學活動,讓學生發現生活中的運算思維,並認知其重要性。第二 部分為程式設計概念培養,學生透過 Blockly games 程式遊戲關卡,搭配多媒體 動畫輔助,自我探索並嘗試達成特定的目標與任務。. 運算思維初探課程的目的為讓學生理解如何利用電腦幫助人類解決生活中的 問題。在遊戲的過程中,學生逐漸發展出致勝的策略,同時也體會到人腦在解決 複雜的問題時費時且容易出錯,利用電腦能夠更加快速且正確地解決問題。課程 中介紹如何將問題「抽象化」,去除對問題解決不重要的資訊,並以適當的表示 法來呈現原始問題或問題的結構;另一方面,針對問題發展「演算法則」,使電 腦能夠按照特定步驟或規則持續、反覆地進行運算。. 8.

(16) 程式設計的基本概念包含變數、輸入輸出、選擇結構與重複結構,在正式介 紹這些概念之前,會先讓學生自由探索 Blockly games 程式遊戲關卡,關卡中使 用積木式程式語言,學生可以透過拖拉、操作觀察相應的動畫變化,以達成指定 的目標。每個關卡循序漸進,並且使用符合情境的用語,如:「重複至目的地」, 而非程式設計的專用術語,如:「迴圈」,讓學生能在潛移默化中理解程式的流程 控制與基本概念。. (二) 問題導向學習 問題導向學習階段去除遊戲情境及動畫輔助,著重解決生活中的問題,練習 題的設計符合真實世界的複雜性,讓學生能夠逐步拆解問題,發展解題的步驟。 1. 教學工具 此階段以 Google 開發的 Blockly(Google for Education, 2011)程式 語言為工具,本課程採用修改後的中文版本積木,包含六個類別:文 字、邏輯、迴圈、數學、列表及變數,表 1 表 1 表 1 表 1 為本課程所使 用的積木與 Google Blockly 中文版積木的對照表,其中修改了中文語句使 其通順,讓學生能更容易理解指令的功能及意義。 中文版積木修改對照表 類別. Blockly 中文版積木. 修改後的中文版積木. 變數. 迴圈. 9.

(17) 列表. 2. 教學策略 問題導向學習為本課程主要的程式設計教學階段。第一次期中測驗 前四週介紹變數、輸入輸出、選擇結構與單層的重複結構,每週搭配一 節課的 Blockly games 程式設計概念培養,以及一節課的程式設計問題解 決。期中測驗後進階到多層選擇結構、多層重複結構與一維陣列的綜合 應用,並且進行兩節課的程式設計問題解決,讓教師有更多的時間引導 學生分析較複雜的問題、思考解題的策略。 每週的教學流程包含課堂範例講解、隨堂習題演練以及課後作業實 作。每週的程式設計概念與其對應的習題如圖 4 所示,其中 E 表示課堂 範例、P 表示隨堂習題、H 表示課後作業,有線相連表示概念或情境相關 的題目。為了學習當週特定的程式概念,範例與練習題的情境較為簡 單,然而課後作業的問題符合學生的生活經驗,程式的撰寫也不再侷限 於使用單一的程式設計概念,以期學生能夠透過獨立思考提升綜合應用 能力。. 3. 教學平台 本課程使用專為課程所開發的教學平台,平台中嵌入 Blockly 程式設 計介面,整合 Blockly games、課堂範例區、隨堂作業區、期中測驗區以 及學生作業區,減少學生切換使用工具的負荷。教學平台首頁如圖 3。在 課堂範例區中,會提供完整的程式碼,學生可以自由修改、執行,但修 改的內容無法儲存,以維持範例程式的正確性;在作業區中,則由學生 自行撰寫,教師可以從學生作業區瀏覽學生撰寫的程式。 10.

(18) (a)學生視角. (b)教師視角 圖3 教學平台首頁. (三) 專題導向學習 專題導向學習階段以 Scratch 為工具,學生運用先前所學的程式設計概念, 分組創作互動遊戲專題。Scratch 擁有多個角色平行處理的特性,因此學生需要理 解程式邏輯與遊戲的流程控制。在此階段,學生發揮創意,從無到有發想、設計 與實作,且要考量更複雜的程式架構,並透過嘗試錯誤培養除錯的能力。. 11.

(19) 圖4 程式設計概念與習題對應圖 12.

(20) 實驗設計 (一) 研究對象與樣本 選修運算思維與程式設計課程之大學生,本課程開設 8 個班級,學生涵蓋各 年級與學院,包含理學院、科技與工程學院、教育學院、文學院等。. 本研究之修課人數有 348 人,有效樣本 238 人、無效樣本 110 人,其中,無 效樣本包含基本資料缺漏 24 人、未完整參加兩次其中測驗 57 人,以及資工系學 生 29 人,由於資工系學生在兩次期中測驗之平均成績分別為 97.36 和 93.69 分, 因此排除資工系,避免高估學生整體表現。. (二) 研究時程 本研究為一學期的課程,共計 18 週,每週兩節課,共 100 分鐘。包含運算 思維初探 3 週,程式設計教學 8 週,專題創作 5 週以及期中測驗 2 週。圖 5 為詳 細週次安排。本研究實施的學期適逢國定假日,因此期中測驗一之後的四週課程 縮減為三週,專題創作的五週課程縮減為四週,詳細的課程大綱請參考附錄一。. 圖5 研究時程週次安排. 研究工具 本研究的研究工具包含運算思維測驗、期中程式設計實作測驗、課堂觀察記 錄與期末學習成效問卷,本節將說明各項研究工具的使用時間及欲分析的資料。. (一) 運算思維測驗 於第一週實施,測驗時間 50 分鐘,題目採用「2016 Bebras 國際運算思維挑 戰賽」Senior(11、12 年級)組試題,難度分配為易、中、難各 5 題,共 15 題。 運算思維測驗的計分方式採用國際運算思維挑戰賽之規則,題目難度越高則 配分越重,回答正確得分、錯誤扣分,未作答則不計分。詳細計分方式如表 2。 13.

(21) Bebras 國際運算思維挑戰賽 Senior 組計分方式 難度 易. 中. 難. 正確. 錯誤. 正確. 錯誤. 正確. 錯誤. 12. -3. 16. -4. 20. -5. 題數. 起始分. 最高分. 15. 60. 300. (二) 程式設計實作測驗 共有兩次期中測驗,第一次期中測驗於 4 週的程式設計概念培養後實施,目 的為評量學生的基礎程式設計能力,考題共 10 題,題目類型包含簡易計算式、 簡易判斷式、多層判斷式、重複執行與綜合應用。經過 4 週的程式設計問題解決 之後,會進行第二次期中測驗,評量目的為瞭解學生的程式設計綜合應用能力, 考題共 10 題,1-4 題為第一次期中測驗之前所學習的程式設計概念,以確認學生 是否保留所學及其熟練程度,5-10 題包含列表概念、列表應用、排序應用與綜合 應用。完整的期中測驗試題請參考附錄二、附錄三。. 程式設計實作測驗每題以 10 分計,評分者依據各題主要評量的程式設計概 念、邏輯判斷、輸入輸出等配分,評分時會檢視學生的程式碼,依照學生的完成 度部分給分,圖 6 以其中一道測驗題目的學生作答程式為例,試題描述如下: 「園遊會舉辦抽獎活動,抽獎箱中有紅、橙、黃、綠、藍、紫六顆色球。現 有參加者 50 人,編號 1~50 號,每人可抽獎一次,抽中紅色球可得園遊券 100 元,抽中紫色球可得園遊券 50 元,(得獎不限名額數量),請由小到大輸 出抽中「紅球」的參加者編號,以及抽中「紫球」的參加者編號。」. 14.

(22) 圖6 學生作答程式範例. 此題主要為評量學生會使用「列表」作為狀態紀錄,並且能夠從列表中取得 值作條件判斷及輸出相應的結果,因此此題的配分為「建立列表」佔 4 分,「條 件判斷」佔 4 分,「輸出結果」佔 2 分。該學生已正確建立列表並判斷兩種狀 態,但在輸出的部分應輸出編號(變數 j、k),而非列表內的值(第 j 項、第 k 項),因此此題得 8 分。. (三) 課堂與補救教學觀察記錄 為深入瞭解學生的學習困難,課堂中皆有助教隨班協助同學解惑,另在期中 考後安排一週的一對一補救教學時間,每次補救教學約 2 小時,藉由與學生的問 答與觀察學生解題的過程,瞭解學生的迷思概念與思考的歷程。. (四) 期末學習成效問卷 施測時間為課程最後一週,問卷分為三個向度,包含程式設計概念理解、運 算思維能力表現與課程學習成就。各向度的敘述請參考表 3。. 15.

(23) 期末學習成效問卷問題敘述 敘述. 向度 「變數」的使用 「輸入、輸出」的設計 程式設計 「如果、否則」概念理解與使用 概念理解 「重複」概念理解與使用 「列表」概念理解與使用. 當題目需要以表格記錄資料時,我會想到用「列表」。 當題目比較複雜時,我會嘗試把問題分解成多個小問題以便個別解決。 運算思維 看到題目時,我會先嘗試思考出問題解決步驟。 能力表現 在每週作業中,我能看出各題相同的部分與不同之處。 當程式出錯時,我會嘗試用邏輯思考找出問題點,再加以修正。 本課程讓我增進了邏輯思考技巧 本課程讓我學會了基礎程式設計技巧 本課程讓我學會了撰寫程式解決問題的技巧 學習成就 本課程學習的內容能夠應用於我主修的領域 我會推薦學弟妹們選修本課程 未來若有機會我會考慮加修其他程式設計應用課程 (科學運算、資料科學、APP 設計、物聯網應用、其他程式語言). 16.

(24) 第肆章. 研究結果與討論. 本章探究不同背景之大學生在運算思維與程式設計通識課程的學習表現差 異,共分為五節,第一節呈現學生的運算思維表現,第二節說明程式設計實作表 現,包含整體表現、不同程式設計學習經驗與學院對於程式設計實作能力之影響 以及專題表現,第三節探討學生常見的程式設計迷思概念,第四節為期末問卷的 結果與意見回饋。. 運算思維表現 為瞭解學生之運算思維程度,於課程第一週實施運算思維測驗,將學生成績 分為低分群(0-99 分)、中間群(100-199 分)與高分群(200-300 分),並與當年 度應試之高中生成績相比,成績分布如圖 7 所示,整體學生成績主要分布於高分 群(79%)。 100% 80% 60% 40% 20% 0%. 理學院 科技與 教育學院 (非資工系) 工程學院 低分群 (0-99分). 中間群 (100-199分). 文學院. 整體. 高中生. 高分群 (200-300分). 圖7 運算思維測驗成績分布. 由於運算思維測驗之評量概念較為特定且分散,無法完整呈現學生之學習成 果,而程式設計實作測驗包含運算思維中的抽象化、問題分解、演算法思維等問 題解決歷程,因此本研究以程式設計實作測驗作為評估學生學習成就之標準,其 學習表現將呈現於下一節。 17.

(25) 程式設計實作表現 (一) 整體表現 為探討經過一學期的運算思維與程式設計通識課程,學生是否能夠具備基礎 程式設計能力與運算思維,本研究以程式設計實作測驗作為評估學生學習成就之 標準。. 程式設計實作測驗共有兩次,分別於課程第 8 週與第 13 週實施,每次 120 分鐘。兩次期中測驗之成績分布如圖 8(a)所示,期中測驗一及格率 90%(215 / 238),期中測驗二及格率 66%(156 / 238),顯示大部分學生能夠藉由課程培養基 礎的程式設計概念與運算思維。 250 23 200. 27. 82. 期中二. 23. 人數. 150. 35. 29. C. D. F. A. 54. 21. 25. 15. 15. B. 2. 7. 4. 9. 13. C. 0. 1. 6. 2. 14. D. 2. 0. 1. 6. 18. F. 0. 0. 0. 1. 22. 60-69 (D) 80-89 (B). 130. B. 期中一. 70-79 (C). 36. 100 50. 33. A. 1-59 (F). 90-100 (A). 58 0 期中測驗一 期中測驗二 (a)等第分布. (b)各等第人數變化 圖8 期中測驗成績分布. 兩次測驗各成績等第人數的變化如圖 8(b)所示,以第 A 列為例,在期中 一得到 A 的 130 位學生中,有 54 人於期中二得到 A、21 人得到 B、25 人得到 C、15 人得到 D、15 人得到 F,表示 A 等第退步至 F 等第的比率為 12%(15 / 130),由第 F 欄可得知,其餘各等第退步(或維持)至 F 等第的比率分別為 B (37%)、C(61%)、D(67%)、F(96%),顯示期中測驗一對於期中測驗二有極 高的預測力,且學生應在期中一達到 B 等第以上,才能有效學習進階內容。 18.

(26) 期中測驗一檢核的概念包含簡易計算、簡易判斷、多條件判斷、重複結構; 期中測驗二增加了列表與排序的應用,兩次測驗及各項概念之描述統計如表 4。 期中測驗及各項概念描述統計 n. M. SD. 238. 68.72. 23.11. 簡易計算. 9.42. 0.99. 1.44. 選擇結構. 9.60. 0.98. 7.79. 2.55. 重複結構. 5.91. 3.71. 重複結構. 6.69. 3.32. 綜合應用. 7.81. 2.80. 綜合應用. 6.46. 3.42. 列表應用. 6.78. 2.69. 排序應用. 7.19. 3.50. 列表綜合應用. 6.06. 4.29. n. M. SD. 238. 84.85. 18.85. 期中測驗二. 簡易計算. 9.55. 0.96. 簡易判斷. 9.30. 多條件判斷. 期中測驗一. 由表 4 可得知,期中測驗一之平均成績為 84.85 分,其中重複結構與綜合應 用概念的成績低於 7 分,期中測驗二之平均成績為 68.72 分,由於測驗內容難度 提升、又包含前次測驗之基礎概念,因此學生可能在尚未學會基礎概念的情況下 無法順利完成第二次測驗,導致平均成績明顯下降,其中在重複結構、列表應用 與列表綜合應用之平均成績低於 7 分。. (二) 不同程式設計學習經驗對於程式設計實作能力之影響 為探討高中或大學曾經學習過(至少 18 小時)與程式設計相關的語言或工 具是否會影響學生學習表現,以有無程式設計學習經驗為自變項,兩次期中測驗 成績為依變項,進行獨立樣本 T 檢定,統計結果如表 5,不同學習經驗的學生在 期中測驗一、二學習表現分別為 t = 4.55 , p <.001 與 t = 5.85 , p <.001,皆達顯著 差異。即高中或大學曾經學習過(至少 18 小時)與程式設計相關的語言或工具 的學生學習表現顯著高於無學習經驗的學生。. 19.

(27) 學習經驗對期中測驗成績之獨立樣本 T 檢定 有學習經驗. 無學習經驗. ( n = 120 ). ( n = 118 ). M. SD. M. SD. t值. 期中測驗一. 90.16. 14.12. 79.44. 21.41. 4.55***. 期中測驗二. 76.87. 20.97. 60.44. 22.30. 5.85***. 註:***p < .001. 期中測驗一的各項概念 T 檢定結果如表 6,其中學習過程式設計的學生在 「簡易判斷」、「多條件判斷」、「重複結構」的表現皆顯著優於沒有學習過的學 生。期中測驗二在「重複結構」、「列表應用」及「列表綜合應用」達.001 之顯著 差異,如表 7 所示。. 學習經驗對期中測驗一概念之獨立樣本 T 檢定 有學習經驗. 無學習經驗. ( n = 120 ). ( n = 118 ). M. SD. M. SD. 簡易計算. 9.66. 0.70. 9.43. 1.17. 1.83. 簡易判斷. 9.58. 0.90. 9.01. 1.80. 3.09**. 多條件判斷. 8.47. 2.07. 7.11. 2.81. 4.25***. 重複結構. 7.79. 2.80. 5.56. 3.45. 5.46***. 綜合應用. 6.79. 3.29. 6.12. 3.52. 1.52. 註:**p < .01 , ***p < .001. 20. t值.

(28) 學習經驗對期中測驗二概念之獨立樣本 T 檢定 有學習經驗. 無學習經驗. ( n = 120 ). ( n = 118 ). M. SD. M. SD. t值. 簡易計算. 9.61. 0.79. 9.24. 1.14. 2.93**. 簡易判斷. 9.71. 0.71. 9.49. 1.18. 1.71. 重複結構. 7.09. 3.58. 4.71. 3.45. 5.22***. 綜合應用. 8.20. 2.87. 7.41. 2.68. 2.20*. 列表應用. 7.59. 2.39. 5.96. 2.74. 4.89***. 排序應用. 7.72. 3.26. 6.65. 3.66. 2.36*. 列表綜合應用. 7.37. 3.88. 4.74. 4.29. 4.96***. 註:*p < .05 , **p < .01 , ***p < .001. 由表 7 可得知,兩組學生在「簡易計算」、「選擇結構」的平均成績皆達 9 分 以上,顯示大部分學生已能掌握基礎的程式設計概念,然而未學習過程式設計的 學生針對重複、列表的練習僅三週,解題仍不夠熟練,對於與平時課堂中差異較 大的題型、綜合應用題亦無法舉一反三,因此在「重複結構」、「列表應用」及 「列表綜合應用」概念表現較差。. (三) 不同學院對於程式設計實作能力之影響 針對非主修電腦科學的學生,探討不同學院對於程式設計實作能力之影響, 包含理學院(排除資工系)、科技與工程學院、教育學院與文學院,其他各學院 學生少於 10 人故不列入分析。. 以學院為自變項,兩次期中測驗成績為依變項,進行單因子變異數分析,探 討各學院學生於兩次測驗及各項概念的表現差異,結果如表 8 顯示:期中測驗一 F(3, 215)= 2.82, p < .05;期中測驗二 F(3, 215)= 7.39, p < .001,皆達顯著差 異。以 Scheffé 法進行事後比較,期中測驗一之顯著程度不明顯;在期中測驗 二,理學院以及科技與工程學院表現顯著優於教育學院與文學院。. 21.

(29) 學院對期中測驗成績之單因子變異數分析. 期中 測驗一. 期中 測驗二. F值. Scheffé 法 Post-Hoc. n. M. SD. (1)理學院. 128. 88.63. 15.30. (2)科技與工程學院. 42. 89.29. 14.99. (3)教育學院. 27. 81.44. 15.23. (4)文學院. 19. 81.26. 17.28. (1)理學院. 128. 73.56. 20.39. (2)科技與工程學院. 42. 77.79. 19.55. (1)>(4). (3)教育學院. 27. 59.22. 24.39. (2)>(3). (4)文學院. 19. 58.11. 21.71. (2)>(4). 學院. 註:*p < .05 , ***p < .001. 22. 2.82*. 7.39***. (1)>(3).

(30) 學院對期中測驗一概念之單因子變異數分析 n. M. SD. (1)理學院. 128. 9.71. 0.63. (2)科技與工程學院. 42. 9.55. 0.80. (3)教育學院. 27. 9.67. 0.44. (4)文學院. 19. 9.33. 0.98. (1)理學院. 128. 9.54. 0.84. (2)科技與工程學院. 42. 9.57. 0.87. (3)教育學院. 27. 9.20. 1.40. (4)文學院. 19. 9.26. 1.23. (1)理學院. 128. 8.09. 2.42. (2)科技與工程學院. 42. 8.17. 1.87. (3)教育學院. 27. 7.67. 2.54. (4)文學院. 19. 7.47. 2.03. (1)理學院. 128. 7.36. 3.10. (2)科技與工程學院. 42. 7.60. 3.12. (3)教育學院. 27. 5.50. 2.90. (4)文學院. 19. 5.63. 2.82. (1)理學院. 128. 7.05. 3.17. (2)科技與工程學院. 42. 7.10. 3.59. (3)教育學院. 27. 5.26. 3.18. (4)文學院. 19. 6.37. 3.04. 學院. 簡易 計算. 簡易 判斷. 多條件 判斷. 重複 結構. 綜合 應用. F值. Scheffé 法 Post-Hoc. 2.01. 1.34. 0.66. 4.53**. (1)>(3). 2.50. 註:**p < .01. 期中測驗一的各項概念統計結果如表 9:其中,各學院在「重複結構」F(3, 215)= 4.53, p < .01 表現有顯著差異,經事後比較結果為理學院優於教育學院。. 23.

(31) 學院對期中測驗二概念之單因子變異數分析. 簡易 計算. 選擇 結構. 重複 結構. 綜合 應用. 列表 應用. 排序 應用. 列表 綜合 應用. F值. Scheffé 法 Post-Hoc. n. M. SD. (1)理學院. 128. 9.61. 0.56. (2)科技與工程學院. 42. 9.29. 1.15. (3)教育學院. 27. 9.41. 0.69. (4)文學院. 19. 9.32. 1.60. (1)理學院. 128. 9.63. 0.85. (2)科技與工程學院. 42. 9.71. 0.71. (3)教育學院. 27. 9.85. 0.53. (4)文學院. 19. 9.79. 0.63. (1)理學院. 128. 6.54. 3.74. (2)科技與工程學院. 42. 7.12. 3.21. (3)教育學院. 27. 4.33. 3.26. (4)文學院. 19. 4.58. 3.53. (1)理學院. 128. 7.92. 2.82. (2)科技與工程學院. 42. 8.45. 2.65. (3)教育學院. 27. 7.30. 2.57. (4)文學院. 19. 8.00. 2.26. (1)理學院. 128. 7.25. 2.35. (2)科技與工程學院. 42. 7.96. 2.01. (2)>(3). (3)教育學院. 27. 5.31. 2.97. (2)>(4). (4)文學院. 19. 5.91. 3.06. (1)理學院. 128. 7.71. 3.12. (2)科技與工程學院. 42. 7.74. 3.20. (3)教育學院. 27. 6.37. 3.98. (4)文學院. 19. 6.47. 3.81. (1)理學院. 128. 6.91. 4.09. (2)科技與工程學院. 42. 7.21. 3.98. (3)教育學院. 27. 5.33. 4.16. (4)文學院. 19. 3.42. 4.00. 學院. 註:**p < .01 , ***p < .001. 24. 1.99. 0.81. 5.09**. (1)>(3) (2)>(3). 1.01. 8.16***. (1)>(3). 1.87. 5.24**. (1)>(4) (2)>(4).

(32) 期中測驗二的各項概念統計結果如表 10:各學院在「重複結構」F(3, 215) = 5.09, p < .01、「列表應用」F(3, 215)= 8.16, p < .001 與「列表綜合應用」F (3, 215)= 5.24, p < .01 表現有顯著差異,以 Scheffé 法進行事後比較,結果顯示 理學院和科技與工程學院在「重複結構」與「列表應用」表現優於教育學院;理 學院和科技與工程學院在「列表綜合應用」表現顯著優於文學院。. 各學院之間在「重複結構」、「列表應用」與「列表綜合應用」表現有所差 異,其中各項概念皆是以「重複結構」為基礎,因此本研究欲深入探討各學院是 否皆在「重複結構」遇到困難。以各學院之各項概念為依變項,進行成對樣本 T 檢定,各配對之統計結果如表 11,所有學院在「簡易判斷」與「重複結構」之間 皆有顯著差異,顯示各學院學生皆在「重複結構」遇到困難。 各項概念之成對樣本 T 檢定 簡易計算. 簡易判斷. 重複結構. 列表應用. 排序應用. 理學院. 9.61. 9.63. ***. 6.54. 7.25. 7.71. 科技與工程學院. 9.29. **. 9.71. ***. 7.12. 7.96. 7.74. 教育學院. 9.41. **. 9.85. ***. 4.33. 5.31. 文學院. 9.32. 9.79. ***. 4.58. 5.91. *. *. 6.37 6.47. 註:*p < .05 , **p < .01 , ***p < .001. 綜合上述分析結果可以得知,各學院皆在「重複結構」遇到困難,連帶影響 以重複結構為基礎的列表及綜合應用的表現。其中,理學院和科技與工程學院在 「重複結構」與「列表應用」表現優於教育學院;理學院和科技與工程學院在「列表綜 合應用」表現顯著優於文學院。. (四) 專題表現差異 專題創作為學生綜合應用能力之展現,整體表現如表 12,平均成績為 87.75 分,以期中測驗二有無及格為自變項,專題成績為依變項,進行獨立樣本 T 檢 定,統計結果顯示程式設計實作能力確實影響綜合應用表現,但不及格學生之專 題平均成績亦達 82.8 分,表示學生仍然能夠應用所學創造符合標準的作品。 25.

(33) 程式實作表現對專題成績之獨立樣本 T 檢定 n. M. SD. 整體. 232. 87.75. 9.10. 期中測驗二及格. 156. 89.18. 8.39. 期中測驗二不及格. 76. 82.80. 9.80. t 值. 3.53**. 註:**p < .01. 程式設計學習困難 為了進一步瞭解學生的迷思概念,本研究透過學生的課堂提問、期中測驗作 答程式碼,以及補救教學的一對一問答,觀察學生的解題策略與思考歷程,發現 學生在「變數」與「重複結構」的理解與應用遇到困難,進而影響列表的學習與 綜合應用的表現。歸納以下幾點:. (一) 變數的覆蓋 在重複結構的應用中時常需要重複「輸入」,以期中測驗一的 T8 為例,重複 輸入成績,並比較大小。程式的撰寫必須在迴圈內輸入後隨即做比較,然而在課 堂觀察到:學生會在一個迴圈重複 15 次輸入成績後,在另一個迴圈做 15 次大小 判斷,如圖 9。當教師告訴學生變數值已被覆蓋時,學生提問:「我已經重複做了 不同的事情,為什麼會被蓋掉?」以人類的大腦而言,記憶是不可能被替換的, 但在電腦的記憶體空間,是可以新增、覆寫甚至清除的。. 圖9 學生程式範例—變數的覆蓋. 26.

(34) (二) 變數意義的改變 以期中測驗一的 T9 為例,試題中的重複概念為「重複輸入營業額直至輸入1」,因此重複的條件即為重複直至「營業額 = -1」,然而此時的-1 並不代表營業 額,只是利用了變數中的值而已。學生作答的程式碼如圖 10 所示,為了符合-1 「結束」的意義,因此建立了名為「結算按鈕」的變數,導致終止條件無法成立 的無窮迴圈。. 圖10 學生程式範例—變數意義的改變 另外一種意義的改變是在迴圈中變數的更新,以期中測驗二的 T3 為例,解 題的策略為「對正整數重複取個位數,同時更新正整數的值」,學生雖然能夠發 現其重複運用的數學算式,卻無法想到改變「正整數」的值,因此寫出如圖 11 的程式。. 圖11 學生程式範例—變數的更新 (三) 程式的執行流程 從序列性的程式進入到迴圈的執行時,學生容易產生混亂。以期中測驗二的 T4 為例,題目要求在每個車站檢查乘客人數,在圖 12(a)的程式碼中,「重複 10 次」迴圈內的程式碼會逐一執行完畢,即執行完條件式判斷後會接著執行乘客 -1,才會進入下一次判斷;而在圖 12(b)的程式碼中,條件判斷成為無窮迴 圈。同樣都是「重複判斷」,卻因為執行流程的差異而有不同的結果。 27.

(35) (a)正確範例. (b)錯誤範例. 圖12 學生程式範例—執行流程. 課程感受與回饋 本節將呈現期末問卷的結果,問卷包含三個向度,共 16 個問題,另有 1 題 開放式意見回饋,三個向度分為程式設計概念理解、運算思維能力表現與課程學 習成就。. (一) 程式設計概念理解 學生對於自己在各項程式設計概念的理解程度,請參考圖 13。程式設計概念 包含「變數」的使用、「輸入、輸出」的設計、「如果、否則」、「重複」以及「列 表」的概念理解與使用;理解的程度由低至高分別為「非常不理解,感到陌 生」,「不理解,只是靠死記和抄寫」,「普通,經過嘗試錯誤可以湊出結果」,「理 解,遇到較複雜的問題會卡一下」,「非常理解,能夠熟練地運用」。 200. 人數. 150 100 50 0. 變數. 輸入輸出. 如果否則. 重複. 非常不理解,感到陌生. 不理解,只是靠死記和抄寫. 普通,經過嘗試錯誤可以湊出結果. 理解,遇到較複雜的問題會卡一下. 非常理解,能夠熟練地運用. 圖13 程式設計概念理解. 28. 列表.

(36) 由圖 13 可得知,學生對於輸入輸出與選擇結構的理解非常有信心,但在變 數、重複及列表概念中,嘗試錯誤與死記的人數則稍有增加。在學生的意見回饋 中亦有提到:「重複與列表可以再細說一些,因為這些比較困難。」、「我覺得有 些部分還是滿難的,希望可以將比較初階的部份簡單帶過,對於困難的部分則是 多一點講解。」因此,雖然重複與列表的課程時間共有 4 週,但講述基礎重複概 念的時間僅有 1 週,學生在尚未理解基本概念的情況下,亦無法吸收進階的課程 內容。. (二) 運算思維能力表現 依照 CSTA & ISTE (2011)所提出操作型的定義,運算思維是一個問題解 決歷程,此向度將各個解題的步驟與運算思維對應,藉以瞭解學生的運算思維能 力表現。 運算思維能力與敘述對照表 運算思維. 敘述. 抽象化. 當題目需要以表格記錄資料時,我會想到用「列表」。. 問題分解. 當題目比較複雜時,我會嘗試把問題分解成多個小問題以便個別解決。. 演算法思維 看到題目時,我會先嘗試思考出問題解決步驟。 模式辨識. 在每週作業中,我能看出各題相同與不同之處。. 除錯. 當程式出錯時,我會嘗試用邏輯思考找出問題點,再加以修正。. 29.

(37) 統計結果如圖 14,大多數學生會在看到題目時,嘗試思考出問題解決步驟, 並且在解題的過程中將問題分解並運用邏輯思考除錯。每週的範例與作業皆經過 設計,希望學生能夠循序漸進、舉一反三。然而有少數學生無法看出各題之間的 關聯性,亦無法藉由範例程式幫助思考作業的解法,導致學習負荷增加,從意見 回饋中可以看出學生感受的差異:「作業的難度和課堂上的範例差有點多,初學 者會有點吃力!」「希望有更多的練習題,這作業太有趣了。」「對於初學者來說 內容與難度都可以負荷,也真的學到新東西。」 200 180 160. 人數. 140 120 100 80 60 40 20 0. 抽象化. 問題分解. 非常不同意. 不同意. 演算法思維. 沒有意見. 模式辨識. 同意. 除錯. 非常同意. 圖14 運算思維能力表現. (三) 課程學習成就 針對修習本課程的收穫與感受,有以下六個敘述,包含「本課程讓我增進了 邏輯思考技巧」、「本課程讓我學會了基礎程式設計技巧」、「本課程讓我學會了撰 寫程式解決問題的技巧」、「本課程學習的內容能夠應用於我主修的領域」、「我會 推薦學弟妹們選修本課程」以及「未來若有機會我會考慮加修其他程式設計應用 課程(+X)(科學運算、資料科學、APP 設計、物聯網應用、其他程式語言)」。 結果請參考圖 15。. 30.

(38) 人數. 200 180 160 140 120 100 80 60 40 20 0. 增進邏輯 思考技巧. 學會基礎 程式設計技巧 非常不同意. 學會撰寫 程式解決問題 不同意. 能夠應用 於主修領域. 沒有意見. 推薦本課程. 同意. 考慮加修 +X 應用課程. 非常同意. 圖15 課程學習成就. 在課程收穫方面,學生對於本課程能夠增進邏輯思考、程式設計與利用程式 解決問題的技巧多表示非常同意,且多願意推薦課程予其他同學。特別的是,對 於課程學習的內容能夠應用於自身主修的領域,學生的意見較不一致,從表 14 可以看出:文學院、國際與社會科學學院和運動與休閒學院偏向不同意課程內容 與自身的相關性。顯示課程設計雖然強調解決生活中的問題,但針對各學院的實 際應用內容仍有不足。 學院與課程應用次數分配表. 非常不同意 不同意 沒有意見 同意 非常同意. 資工系. 理學院. 科技與 工程學院. 教育 學院. 文學院. 管理 學院. 藝術 學院. 音樂 學院. 國際與 社會科學 學院. 運動與 休閒學院. 0 0 0 5 20. 1 3 34 47 52. 0 0 3 17 22. 1 3 12 5 6. 0 3 10 6 0. 0 0 2 3 2. 0 0 2 0 0. 0 2 3 2 1. 1 0 2 0 0. 0 2 2 0 0. 31.

(39) 第伍章. 結論. 本研究探討大學生在運算思維與程式設計通識課程的學習成就,針對課程設 計以及學生的表現差異統整以下幾點:. (一) 課程設計適切性 從學生的期中測驗成績分布可以發現,期中測驗一對於後續的學習表現有極 高的預測力,表示課程內容安排合宜且具連貫性。在期中測驗一得到 B 以下的學 生在期中測驗二不及格的比率高於六成(61%),因此建議學生應在期中一達到 B 等第以上,才具備足夠的知識學習進階課程。. (二) 程式設計實作表現差異 未曾學習過程式設計相關課程的學生在基礎程式設計概念的表現與有學習經 驗的學生並駕齊驅,然而在「重複結構」、「列表應用」及「列表綜合應用」的表 現仍較差。理學院和科技與工程學院也在「重複結構」、「列表應用」及「列表綜 合應用」表現優於教育學院和文學院。整體而言,學習表現較差的學生皆在學習 「重複結構」時遇到困難,連帶影響以「重複結構」為基礎的「列表」及「綜合 應用」的表現。. (三) 未來展望與建議 在課程進度方面,建議增加基礎迴圈概念的學習時間,確保學生能熟悉迴圈 的運用;在課程感受方面,文學院、國際與社會科學學院和運動與休閒學院的學 生偏向不同意課程內容與自身的相關性,由於部分學院修課人數未達十人,因此 較難歸納其學院學生的特性與需求,未來可考慮開設單一學院或科系之專班,以 期在通識教育的一般性之下,有更多符合個別差異的空間。. 32.

(40) 參考文獻 Aho, A. V. (2012). Computation and Computational Thinking. Computer Journal, 55(7), 832-835. doi:10.1093/comjnl/bxs074 Barr, D., Harrison, J., & Conery, L. (2011). Computational Thinking: A Digital Age Skill for Everyone. Learning & Leading with Technology, 38 (6), 20-23. Bau, D., Gray, J., Kelleher, C., Sheldon, J., & Turbak, F. (2017). Learnable Programming: Blocks and Beyond. Communications of the ACM, 60(6), 72-80. doi:10.1145/3015455 Bean, N., Weese, J., Feldhausen, R., & Bell, R. S. (2015). Starting from scratch: Developing a pre-service teacher training program in computational thinking. Frontiers in Education Conference (FIE). doi:10.1109/fie.2015.7344237 Blockly Games. (n.d.). Retrieved March 05, 2018, from https://blocklygames.appspot.com/ Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A. & Miller, P. (1997). Mini-languages: a way to learn programming principles. Education and Information Technologies, 2, 65-83. Chao, P. (2016). Exploring students computational practice, design and performance of problem-solving through a visual programming environment. Computers & Education, 95, 202-215. doi:10.1016/j.compedu.2016.01.010 Cooper, S., & Dann, W. (2015). Programming: a key component of computational thinking in CS courses for non-majors. ACM Inroads, 6 (1), 50-54. CSTA, & ISTE. (2011). Operational definition of computational thinking for K-12 education. Available at: http://www.iste.org/docs/ct-documents/computationalthinking-operational-definition-flyer.pdf 33.

(41) Dawson, J. Q., Allen, M., Campbell, A., & Valair, A., (2018). Designing an Introductory Programming Course to Improve Non-Majors Experiences.” Proceedings of the 49th ACM Technical Symposium on Computer Science Education - SIGCSE 18, 21-24., doi:10.1145/3159450.3159548. Deek, F.P. (1999). The software process: a parallel approach through problem solving and program development. Computer Science Education, 9 (1), 43-70. Google (2015). Exploring Computational Thinking. Retrieved from https://www.google.com/edu/resources/programs/exploring-computationalthinking/ Grover, S., & Pea, R. (2013). Computational Thinking in K-12: A Review of the State of the Field. Educational Researcher, 42(1), 38–43. K-12 Computer Science Framework Steering Committee. (2016). K-12 computer science framework. Kim, B., Kim, T., & Kim, J. (2013). Paper-and-Pencil Programming Strategy toward Computational Thinking for Non-Majors: Design Your Solution. Journal of Educational Computing Research, 49 (4), 437-459. doi:10.2190/ec.49.4.b Ko, A. J., Myers, B., & Aung, H. (n.d.). Six Learning Barriers in End-User Programming Systems. 2004 IEEE Symposium on Visual Languages - Human Centric Computing, 199-206. doi:10.1109/vlhcc.2004.47 Korkmaz, Ö., Çakir, R., & Özden, M. Y. (2017). A validity and reliability study of the computational thinking scales (CTS). Computers in Human Behavior, 72, 558-569. doi:10.1016/j.chb.2017.01.005 Maloney, J., Resnick, M., Rusk, N., Silverman, B. & Eastmond, E. (2010). The scratch programming language and environment. ACM Transactions on Computing Education, 10 (4)16:1–15 34.

(42) Özden, M.Y. (2015). Computational thinking. http://myozden.blogspot.com.tr/2015/06/computational-thinking-bilgisayarca.html Palumbo, D. B. (1990). Programming Language/Problem-Solving Research: A Review of Relevant Issues. Review of Educational Research, 60(1), 65-89. doi:10.2307/1170225 Phillips, P. (2009). Computational Thinking. Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., & Kafai, Y. (2009). Scratch: programming for all. Communications of the ACM, 52(11), 60-67. Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: a review and discussion. Computer Science Education, 13 (2), 137-172. Sax, L. J., Lehman, K. J., & Zavala, C. (2017). Examining the Enrollment Growth. Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education - SIGCSE 17, 513–518., doi:10.1145/3017680.3017781. Scratch - Imagine, Program, Share. (n.d.). Retrieved March 05, 2018, from https://scratch.mit.edu/ Sullivan, D. G. (2013). A data-centric introduction to computer science for non-majors. Proceeding of the 44th ACM technical symposium on Computer science education - SIGCSE 13,71-76. doi:10.1145/2445196.2445222 Wing, J. M. (2006). Computational Thinking. Communications of the ACM, 49(3), 3335. doi:10.1145/1118178.1118215 Wing, J. M. (2011). Research Notebook: Computational Thinking--What and Why? The Link. The magazine of the Carnegie Mellon University School of Computer Science. 林育慈、吳正已 (2016)。運算思維與中小學資訊科技課程。教育脈動,6。 35.

(43) 取自 https://pulse.naer.edu.tw/Home/Content/02287aac-dc26-4ad4-b87e2881e942dc16?insId=40977899-d342-4f01-94a7-66d446c9d3bb. 36.

(44) 附錄. 37.

(45) 附錄一 課程進度表 週次. 主題. 範例. 1. 課程簡介 / 運算思維概念前測. 2. 運算思維初探—鐵道任務. 3. 運算思維初探—豆腐王國. 4. 課堂練習. 作業. Blockly Games. E101-印出 Hello. P000. H101-電影座位. 迷宮. E102-交換變數值. - 輸出系所學號姓名. H102-交換位置. E103-外幣換匯. - 顯示提示訊息,再輸入學號 - 詢問姓名後輸出 Hello! _____.. 輸入/輸出. P101-詢問學號後輸出是否正確. 變數. P102-輸出輸入數字加 5 的結果. 運算. P103-身高換算 P104-計算 BMI. 目 標 導 向 學 習. 5. Blockly Games. if…. P201、P202、P203-買票看球賽. 多層條件判斷式. 飛鳥. E201-下課時間看球賽. P204-計程車資. H201-氣象預報. if…else…. P205-成績等第. H202-評估 BMI. 選擇結構. E202-下課時間看球賽. (連結 P104). E203-滿額折扣 if…else if…else E204、E205-下課吃點心. 6. 7. 8. Blockly Games. 巢狀選擇結構. P301-成績等第. 飛鳥. E301-隨機點餐. P302-猜拳遊戲:以電腦出拳為條件. E302-下課吃點心. P303-猜拳遊戲:電腦和玩家的組合. 多重條件判斷式. P304-猜拳遊戲:輸/贏/平手的組合. E303、E304-肚子餓程度. P305-星座判斷. Blockly Games. repeat 無條件重複. repeat. 計次變數 i:. 烏龜. E401-樂透選號(會重複). P401-累加 1 到 n (未用 i). H401-列舉倍數. E402-累加 1 到 10 (未用 i). P402-成績總分平均. H402-團康遊戲. while / until 有條件重複. while / until. E403-加熱開水(燒開為止). P403-聽力測驗(通過為止). count with i 計次重複. P404-猜亂數(猜中為止). E404-累加 1 到 10 (利用 i). count with i. E405-列舉倍數. P405-範圍總和. 多層選擇結構. 重複結構. 第一次期中考 38. H301-心理測驗.

(46) 週次. 主題 多層重複結構. 9. 陣列. 問 題 導 向 學 習. 範例 E501-九九乘法表. P501-簡化版九九乘法表. 重複與列表綜合. E502-遊覽車分配表. P502-課表. H501-心情計數. E503-每日套餐. P503-牌價列表. E504-國道計費 (連結. P504-計費查詢. E404). P505-樂透選號(不重複). E102) 陣列. 10. 11. E601-最高成績. P601-最低房價飯店. E602-最高成績編號. P602-競賽成績排序. E603-樂透排序. P603-消費金額排序. E701-校外教學 (連結. P601-搭車人數限制. E502). P602-圓形隊伍. E702-出席狀態. P603-選課系統. 12 題 導 向 學 習. 作業. E505-動態鍵盤 (連結. 綜合應用. 專. 課堂練習. 第二次期中考. 13. 互動遊戲專題—Scratch 介面簡介. 14. 互動遊戲專題—貪食蛇. 15. 互動遊戲專題—密室逃脫. 16. 專題成果發表 / 運算思維概念後測. 39. H601-購物網站. H701-排隊順序.

(47) 附錄二 第一次期中考試題 T1. [5 分] 班上同學周末相約到淡水騎雙人協力腳踏車,同學每兩人租一台車,若有 人落單就自己一台車。請輸入學生人數,並輸出要租幾台車。 T2. [5 分] PinMinMy 購物網推出優惠方案,一個原價 500 元的隨身碟,3 個一組特 價 1280 元,未達優惠數量者皆須以原價計算。請輸入要購買的隨身碟個數,並 輸出折扣後的總金額。 T3. [10 分]. 公園管理處要在走道的兩旁以固定的間隔距離種樹,走道的首尾兩端都. 不用額外種樹,請寫一個程式,輸入走道的長度(公尺,介於 10~100 之間), 接著以亂數取得間隔長度(公尺,介於 1~「走道長度」的五分之一),並輸出間 隔距離及總共要種多少棵樹。 T4. [10 分] 迎新舞會要抽舞伴,由大一新生抽 1 到 100 號,再依照下列規則配對: 1-50 大二學長姐、51-75 大三學長姐、76-90 大四學長姐、91-100 系上老師, 請用電腦隨機產生一個號碼,並輸出抽到的號碼及配對的舞伴。 T5. [10 分] 若一副已排好順序的撲克牌,由上而下依序為:黑桃 A,黑桃 2,...,黑 桃 K,紅心 A,...,紅心 K,方塊 A,...,方塊 K,梅花 A,...,梅花 K,請寫一 個程式輸入數字 N(N 介於 1~52),則輸出第 N 張牌的牌面花樣及數字符號。例 如輸入「15」,則輸出「紅心 2」。 T6. [10 分] 西洋棋當中的皇后是移動範圍很廣的一個棋子,她一次可以 走直線或斜線若干步(如右圖圓點所示)。請寫一個程式,輸入四個 數字,表示棋盤上 A、B 點的座標位置:A 點 x 座標、A 點 y 座標、 B 點 x 座標、B 點 y 座標,接著判斷皇后是否可以藉由一次移動從 A 點到達 B 點,可以的話請輸出 YES,否則請輸出 NO。. y 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 x. T7. [15 分]. 請隨機產生三個介於(含) 0-9 的數字,由小到大將數字輸出。. T8. [15 分]. 某次考試結束後老師想統計學生的成績,為了整理方便,請寫一個程式. 讓老師輸入 15 位同學的成績(0-100 分),並印出最大值及最小值。 T9. [15 分] 師大早餐店為了瞭解客人的消費習慣,請你幫忙設計一個每日營業額的 統計分析程式,輸入每位客人的消費金額,然後累加到每日營業額,最後關店時 輸入-1,代表營業結束,並印出當日營業額、客人總數以及平均消費。 T10. [15 分] 某研究單位發現《打蚊吸密碼》一書藏有其他秘密,要解開這個秘密的 關鍵密碼,就是計算整本書中的頁碼共出現多少個數字「6」,現已知此書共有 516 頁,每一頁均有頁碼,請寫出可解出密碼的程式。 40.

(48) 附錄三 第二次期中考試題 T1. [5 分]. 請輸入圓的半徑 r,計算並輸出圓的面積,四捨五入至小數點後一位。 圓的面積公式:r2*pi,其中 pi=3.14。. T2. [5 分] 某商店推出集點活動:消費未滿 300 元,每 60 元可得一點;消費滿 300 元,每 45 元可得一點;消費滿 500 元,每 30 元可得一點。例如:在店裡消費 450 元,則可得 450÷45=10 點。請寫一個程式,輸入消費金額後輸出可得到的點 數。 T3. [10 分] 輸入一個正整數,請你求出所有位數的和是多少,例如:輸入 12345,因 為 1+2+3+4+5=15,則輸出 15。 T4. [10 分] 有輛可載重 10 位乘客(不含司機)的小巴士要到 n 個車站接送遊客後回 到總站,小巴士每到一個車站會先讓要下車的遊客下車,再讓要上車的遊客上 車。請寫一個上下車檢查程式,先讀入一個整數 n 代表有 n 個車站,接下來讀入 各車站的下車人數、上車人數。最後印出小巴士回到總站時車上的人數。特別注 意的是,若遊覽車有超過 10 位乘客或小於 0 位乘客的情況發生時,請直接輸出 「發生錯誤」後結束程式。 T5. [10 分] 培培老師為了獎勵學生保持好成績,若第一次小考成績優良,就蓋一個 星星印章做為鼓勵;第二次小考成績持續保持優良,再蓋一個星星印章,之後每 次小考成績若持續保持優良,就給前兩次獎勵的星星總數的印章。例如:若連續 6 次小考成績優良,每次獲得的星星印章數依序為 1, 1, 2, 3, 5, 8。請輸入學生小 考成績優良的連續次數 n,計算並輸出第 n 次小考會蓋幾顆星星。 T6. [10 分] 「真麻吉」是個交友網站,該網站參考每個會員的個性、興趣、嗜好等 資料,以人工智慧將適合成為好朋友的會員進行「麻吉好友群」分群,若其中 20 位(代號 1 至 20)分群結果如下表,請寫一個程式,輸入一個代號,並輸出該代 號所在群組的所有成員代號(不必由小到大排列)。 1 2 , 13 3 , 4 , 9 , 12 , 18 5 , 15 , 19 6 , 16 7 , 8 , 10 , 11 , 14 , 17 , 20 T7. [15 分] 某班級選修學生人數共 50 位,座號依序為 1 至 50 號。某次點名後統 計該班未到率是 10%,遲到率是 20%,請寫一個程式模擬上課點名的狀況,每一 位學生可能是「到班」、「未到」或「遲到」三種狀態之一,請由小到大輸出當日 「未到」的同學座號,以及「遲到」的同學座號。(提示:未到率 10%及遲到率 是 20%,可以以「隨機取數」1 到 10,例如 1 代表「未到」,2、3 代表「遲到」, 其餘代表「到班」進行模擬) T8. [15 分] 倩倩滑雪場的登山纜車都是兩人座的,長久使用後,機器有些磨損,載 重力有限。今有登山客 10 人,要搭登山纜車上山滑雪。為了在最短的時間內上 山,每個座椅都要坐滿兩人,且為了避免危險,降低負荷,希望體重最重和最輕 的登山客為第一組、第二重與第二輕的登山客為第二組,以此類推。請寫個程 式,隨機輸入 10 位登山客的體重(65kg~90kg),輸出每一位登山客的體重,另 也輸出第一組到第五組每一組的兩位登山客體重和。 41.

(49) T9. [15 分] 3 歲的小明喜歡玩他的方塊積木,他總是把方塊疊在一起形成高度不一的 方塊堆。然後他說:這是一面牆!5 歲的姊姊小美聽到了就跟小明說:真正的牆 高度應該要一樣才行。小明聽了覺得有道理,於是決定要搬動一些方塊使所有方 塊堆的高度一樣,如下圖。由於小明是個懶惰的小孩,他想要搬動最小數目的方 塊以達成這個目的,你能幫助他嗎?. 範例輸入 請輸入有幾堆積木:6 請輸入第 1 堆積木有幾個:5 請輸入第 2 堆積木有幾個:2 請輸入第 3 堆積木有幾個:4 請輸入第 4 堆積木有幾個:1 請輸入第 5 堆積木有幾個:7 請輸入第 6 堆積木有幾個:5. 範例輸出. 最少要搬動 5 個積木. 測試資料限制. 最多 50 堆積木 每堆積木最多 100 個 方塊一定能被分為整除堆. T10. [15 分] 莊笑維與女友董月花在雜誌上看到了一個計算兩人緣份的方法,就是將 兩人姓名中每個字的筆劃穿插排列成一串數字,男生的名字先放,也就是若男生 名字以男 1 男 2 男 3 三個字表示,女生以女 1 女 2 女 3 三個字表示,則放筆劃數 的順序為男 1 女 1 男 2 女 2 男 3 女 3,例如:莊笑維三個字筆劃分別為 11、10、 14,董月花為 13、4、8,將其穿插排列為 1113104148。然後兩個兩個相鄰數字相 加後取個位數字,形成第二層,這樣一層一層累加到最後剩下兩位數字即停,此 兩位數就是他倆的緣份分數。以下為範例:. 1 1 1 3 1 0 4 1 4 8 2 2 4 4 1 4 5 5 2 4 6 8 5 5 9 0 7 0 4 3 0 4 9 7 4 7 3 4 3 6 1 0 7 7 9 1 7 4 6 8 1 0 9 1. 範例輸入:11 13 10 4 14 8 範例輸出:此為兩人的緣份分數為 91. 42.

(50)

參考文獻

相關文件

The aim of this study is to investigate students in learning in inequalities with one unknown, as well as to collect corresponding strategies and errors in problem solving..

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

Investigating the effect of learning method and motivation on learning performance in a business simulation system context: An experimental study. Four steps to

This study aims to explore whether the service quality and customer satisfaction have a positive impact on the organizational performance of the services and whether the

Therefore, in this project, to explore whether using Perusall combined with Zuvio IRS can help to strengthen the learning effect of flipped teaching and improve students'

Based on a sample of 98 sixth-grade students from a primary school in Changhua County, this study applies the K-means cluster analysis to explore the index factors of the

In this study, teaching evaluation were designed to collect performance data from the experimental group of students learning with the “satellite image-assisted teaching

英文:A Study on Increasing Students’ Awareness and Actions of Self-Directed Learning: Using the Students at Chung Hua University Taking “Employment Market Analysis” Course as