• 沒有找到結果。

從程式設計觀念至程式設計實作之教學策略

第三章 研究方法

第一節 從程式設計觀念至程式設計實作之教學策略

我們綜合第二章之要點,正式提出從程式設計觀念至程式設計實作之教學策略,該 教學策略之流程如圖 3-1,含有四個階段,分別為:「第一階段:熟悉程式設計的觀念與 架構」、「第二階段:建立程式設計的流程與觀念」、「第三階段:培養程式設計的問題解 決能力」及「第四階段:以 C/C++培養問題解決的實作能力」。

學生首先透過 code.org(Code.org, 2016)來熟悉視覺化程式語言基本的動畫操作,

再透過以自行開發的 Blockly(Google for Education, 2011)視覺化程式設計平台(以後 簡稱 CThinking)讓學生藉由文字敘述生活化的題目來培養程式設計的流程與觀念,之 後同樣透過該平台將學科內容相結合,促進學生的問題解決能力,最後則使用 C/C++程 式設計來培養學生問題解決的實作能力。

而觀念(Concept)為具有主要屬性或特徵的同類事物,能經由符號、文字或比喻來對 所提出之相似項目作分類的個人知覺;而學習能培養觀念的形成,觀念的學習過程主要 是透過類化與辨別的交互作用,學習者能把對於具體事物的經驗,經抽象化而形成超越 具體對象的認識。觀念是學習知識、也是構成知識的基本單位,觀念也是形成原則的基 礎,透過觀念可以指引學生思考向度,如同網路組織般的澄清和擴張(張春興,1994)。

一、 教學特性分析

為瞭解目前高中資訊科的教學特性,我們舉辦了多次的座談會、邀請兩位現職高中 資訊教師協助進行高中資訊科的教學特性的分析,座談會中我們綜合教師們的專業經驗

來探討適合之程式設計教材。經討論之後,我們發現教師普遍認為程式設計初學者的學

視覺化程式設計的環境提供了豐富可見的程式拼塊,能讓學生與程式設計環境產生 有意義的互動,進而提升運算思維策略以及問題解決能力。我們可藉由視覺化程式設計 中的元素,例如拖拉方式的拼塊來取代文字式的程式敘述,讓學生專注於程式設計的邏 輯與結構,並有效解決程式設計初學者在語法上的困難(Chao, 2016)。在第一階段的熟 悉程式設計的觀念與架構中,我們選定 code.org 平台中速成課程所有的題目(Code.org, 2016)供實驗組一、二、三之學生練習。速成課程於 code.org 中的適合對象被界定為 10 至 18 歲,與目前高中生的年齡相符。在速成課程中含有 20 個小階段,其中有 11 個小 階段皆為影片內容、不用電腦操作的活動;另外的 9 個小階段則需要學生自行完成,每 一個小階段題目不等,最少 6 題,最多 20 題,一共有 98 個題目。

Code.org 為中文拼塊介面之視覺化程式設計平台,並且僅提供學生解決該問題時會 被用到的拼塊,此特性能夠使學生專注於需要學習到的觀念。而介面左側提供了吸引人 的動畫與圖示,能幫助學生能快速觀看執行結果(詳見圖 3-2)。本研究以 code.org 做為 第一階段的教學教材而非 Scratch,Alice,Greenfoot 等的原因是 code.org 提供了不同類 型的題組供學生練習,內容涵蓋了基礎觀念、程序、條件、重複、模組化程式設計以及 少部分的演算法,對於程式設計初學者而言,藉由這 20 個階段的練習題組,將能夠打 好程式設計的基礎;而雖然 Scratch 擁有更多樣化的角色圖片及動畫效果,但本研究是 以學生能進一步學習高階程式語言為目的,因此在教材的發展上要能使學生專注於程式 設計觀念的養成。

圖 3-2 code.org 操作畫面

(二) 第二階段:建立程式設計的流程與觀念

學生在經過第一階段的練習,有了淺顯的邏輯思維以及程式設計觀念後,便進入第 二階段的訓練。本階段的學習目標為建立程式設計的流程與觀念,學生需嘗試利用程式 計算並回答與生活和有關的實際問題,不再依賴必須與動畫進行互動之視覺化程式設計 學習工具。因此,於此階段使用了我們自行開發之視覺化程式設計平台“CThinking”,

使學生藉由文字敘述生活化的題目來建立程式設計的流程與觀念(詳見附錄一,

CThinking 平台使用手冊)。

“CThinking”字源取自於 Computational Thinking 的簡稱,並且強調 Thinking 的重 要性。開發 CThinking 平台目的是希望藉由視覺化程式設計來建立程式設計初學者之基 本觀念。CThinking 平台是以 Blockly(Google for Education, 2011)為工具發展之視覺化 程式設計平台,而 Blockly 為 Google 於 2011 年開發之視覺化程式設計編輯器,使用者 可以在網頁上使用拼塊拖拉的方式來進行程式設計。此平台依照難易程度分為「簡易題」

與「知識題」,分別進行於第二階段與第三階段。有學者指出觀念的學習過程主要是透 過類化與辨別的交互作用,學習者能把對於具體事物的經驗,經抽象化而形成超越具體 對象的認識(張春興,1994),因此在第二階段的題目貼近日常生活,第三階段題目則 與學科整合,能幫助學生在觀念上的學習。於 CThinking 中,我們去除第一階段 code.org 的遊戲動畫,改以文字敘述題目、輸出文字式的結果,教材內容循序漸進,且提供具有 真實性的題目。

其中,我們發展了 8 個程式設計題組,每個題組含有 4 至 6 個子題,一共有 40 個 子題,每個子題都需要學生練習特定的程式結構,題組內容循序漸進、為生活化的應用 問題。題組內容分別為:「健康管理小幫手」、「高速公路計程收費」、「麥當勞都是為 您?!」、「電力補給站」、「校外教學去哪裡?」、「慵懶疲倦遠離我」、「紀念小書包」以 及「裝潢夢想家」(詳見表 3-1)。本研究挑選了「健康管理小幫手」、「高速公路計程收 費」、「電力補給站」、「慵懶疲倦遠離我」、「紀念小書包」來進行實驗,並使用「裝潢夢 想家」作為測驗題目。教師會先以兩個題組(電力補給站、紀念小書包)中的 Q1 至 Q3 題作為程式觀念與程式邏輯教學題,學生練習完畢後再帶領學生進行 Q4 至 Q6 題。待 學生完成此兩題組後,另外指定三個題組的題目作為學生自行練習之題目(「健康管理 小幫手」、「高速公路計程收費」、「慵懶疲倦遠離我」)。

圖 3-3 為 CThinking 簡易題中的「高速公路計程收費」第 3 子題畫面,該題總共有 六個子題(Q1,Q2,Q3,Q4,Q5 與 Q6)。

圖 3-3「高速公路計程收費」第 3 子題畫面

第二階段使用了題組式的方式來進行練習,一步步的帶領學生解決生活上實際會碰 到的問題。各題組敘述如下:

表 3-1 CThinking 簡易題題目說明

題組 簡介 題數 程式設計項目

健康管理小幫手

穿戴裝置近幾年開始興起,

智慧手錶、智慧手環等方便隨身 攜帶的特性,吸引使用者透過這 些裝置來觀察個人健康,並與行 動裝置連結,記錄管理個人的健 康資訊……

5

基礎觀念 流程控制-循序 流程控制-條件 流程控制-重複

陣列

高速公路計程收費

高 速 公 路 電 子 收 費 系 統

(ETC)已經由收費站計次收費改 為計算里程收費,但是費率內容 除了分成大、小型車,還有免費

6

基礎觀念 流程控制-循序 流程控制-條件 流程控制-重複

里程和長途折扣優惠,讓很多人

陣列

裝潢夢想家

欣欣未來想成為一位室內設 計師,想先裝潢自己家來小試身 手一番。現在就讓我們來設計一 個簡單的裝潢系統吧……

4

基礎觀念 流程控制-循序 流程控制-條件 流程控制-重複

陣列

(三) 第三階段:培養程式設計的問題解決能力

本階段的學習目標為培養程式設計的問題解決能力,而與「簡易題」不同的在於此 階段去除了題組式的鷹架,題目間相互獨立,且皆為自然科學學科會使用到運算之題目,

學生須有能力解決完整的題目。

其中,我們發展了 8 個與 STEM 學科結合的程式設計問題,題目內容皆與 STEM 相關,分別為「生物 DNA 知多少」、「計數 DNA 核苷酸」、「認識碳水化合物」、「網路 銀行妙絕招」、「數位影像計算器」、「資料傳輸有問題?!」、「銀行外匯來比較」以及「費 先生與他的兔子們」(詳見表 3-2),每個題目都需要學生綜合過去所學的程式觀念。本 研究挑選了「數位影像計算器」、「網路銀行妙絕招」、「計數 DNA 核苷酸」、「資料傳輸 有問題?!」進行實驗,並使用「生物 DNA 知多少」作為測驗題目。圖 3-4 為 CThinking 知識題中的「網路銀行妙絕招」。

圖 3-4「網路銀行妙絕招」畫面

各題目敘述如下:

資料傳輸有問題?!

運算式

流程控制-循序 圓面積與圓周長、計算房間坪數、攝氏華氏轉換

*梯形、加減乘除

流程控制-選擇

直角三角形、收入與支出、奇偶數獎學金、猜拳、學號敘 述、成績等第

*點餐系統 流程控制-重複

(for 迴圈、

while 迴圈)

計算分數、迴圈印出、九九乘法表

*數的累加、細胞分裂、猜數字、加法運算、終極密碼

*計算機、數的乘積

一維陣列 成績陣列、最高與最低、最大值、陣列中尋找

*得分排名