• 沒有找到結果。

第二章 文獻探討

第一節 程式設計學習

在本節,將先探討程式設計學習上的內涵;再探討資料結構與演算法在高 中職的課程規劃與教學上所遇到的困難。分述如下:

一、 程式設計學習的內涵

根據我國普通高級中學必修科目「資訊科技概論」課程綱要,欲達成之目標 如以下四點(教育部,民97):

1. 培養學生之資訊科學基礎知識。

2. 培養學生邏輯思維及運用電腦解決問題之能力。

3. 培養學生對資訊科技的正確觀念及態度。

4. 啟發學生學習資訊科技之興趣。

其中第二點「培養學生邏輯思維及運用電腦解決問題之能力」,主要希望能 幫助學生經由學習資訊科技概念及技能,達到培養邏輯思維及問題解決能力的目 的。資訊科學強調運用演算法解決問題,而演算法的規劃及構思則屬邏輯思維的 範疇。資訊科學的學習有助於邏輯思維的訓練,是高中教育中不可或缺的一環。

邏輯思維訓練及運用電腦解決問題均是學習的主軸(教育部,民97)。

在高中階段實施電腦課程應重視理論與實務的配合,強調的是學生對電腦 科學的基本認識,其目的應在於引起學生對程式語言學習之興趣,並兼顧到程 式語言技能與基本概念的學習(吳正己,民 89 )。程式語言在教學上的意涵包

含了"語言教學"及"設計教學"兩個層次。所謂的"語言教學"是指在教學的過程中 以語言本身為主要重點,亦即學習程式語言本身所包含的指令概念與用法為教 學要點,屬於程式語言學習的基礎概念;"設計教學"則強調學會設計解決問題 的方法,也就是說學習者必須在面臨實際問題情境時,可以適時地設計出解決 問題方式與規劃解題步驟,此層次屬於程式語言學習的應用部分(陳巧芳,民 93 )。"語言教學"及"設計教學"皆是教學重點,但在學生學習程式設計過程裡,

我們應該著重於學生的問題解決能力、讓學生了解電腦程式的運作,並藉由所 學習到的語法、基本結構及程式語言技巧來解決問題,而不是著重於程式語法 的記憶或背誦 (Schollmeyer, 1996)。Frost et al. (2009) 提出學生在學習程式設計 過程,除了基本概念外,也必須介紹演算法思維,並且訓練學生問題解決的能 力,幫助學生未來在各領域學習做準備。吳正己、何榮桂(民 87) 也指出現 今的高中生應具有程式設計與演算法的基本概念,並擁有解決問題的能力。

綜合以上觀點,學習程式設計主要希望訓練學生邏輯思考和問題解決能力。

學習程式設計不僅要學習程式語法外,也需要學習演算法和資料結構,幫助學生 在遇到問題時,能有規劃步驟的解決問題。

二、資料結構與演算法課程規劃

根據我國「高中資訊科學課程標準」中的資料結構與演算法課程綱要中,在 資料結構課程規劃,以佇列、堆疊、鏈結串列三種為主要教學內容,教師主要介 紹其用途及使用方法。演算法課程規劃分成演算法概論與應用部分,概念部分主 要利用日常生活實例說明什麼是演算法,並讓學生學會如何利用符號去設計演算 法流程;演算法應用方面則介紹搜尋演算法及排序演算法,其搜尋演算法以循序 搜尋演算法和二分搜尋演算法為主,排序演算法以氣泡排序演算法和選擇排序演 算法兩種為主要授課內容,其演算法課程綱要如表2-1所示(教育部,民97 )。

然而資料結構與演算法在電腦科學教育中一直是學生感到複雜和困難的主題 (Kamal et al., 2002)。

表 2-1

方式便稱做演算法,其學習的主要目的在於培養學習者有邏輯性的解決問題的 能力。且對於軟體工程而言,精通演算法是非常重要的,因演算法的不同會影 響到程式的執行效率 (Boticki, Barisic, Martin, & Drljevic, 2012; Douadi, Tahar,

& Hamid, 2012)。但在演算法學習上,常因概念抽象,不易想像、理解,造成 學習上的困難,學生需要投入更多的認知參與才能理解演算法的邏輯推演過程 (Kehoe, Stasko, & Taylor, 2001)。

排序演算法傳統教學上以紙筆方式呈現教學,給予一組數列,在黑板或紙 上根據演算步驟,將每一步執行結果的數列寫下來,並重複步驟直到排序完成,

如圖 2-1 所示。最後,測驗時利用同種方式檢驗學生學習排序演算法的學習成 效 (Boticki et al., 2012)。然而傳統的紙筆教學方式在學習上有幾點問題:

1. 受教科書的篇幅的限制,只能呈現演算法關鍵步驟的圖示,其他細節 部分將被省略,且因排序過程是動態的,只以紙筆方式呈現,學生較 難想像 (Kehoe et al., 2001)。

2. 教科書上的內容是固定的,學生無法執行自己的演算法模擬過程,以 及無法瞭解其他特殊資料情況下的演算法步驟 (Kehoe et al., 2001)。

3. 因排序過程是重複性和繁瑣的,容易讓學生在學習過程中犯錯,且無 法利用簡單的方式幫助學生自己檢驗錯誤 (Boticki et al., 2012)。

4. 學 生 即 使 使 用 錯 誤 的 排 序 步 驟 , 有 時 也 可 得 到 正 確 的 排 序 數 列 (Boticki et al., 2012)。

為了幫助學生解決上述之問題,研究指出,使用視覺化工具可以讓學生有 更好的理解 (Kehoe et al., 2001; Rößling & Freisleben, 2000)。因此我們將在下一 章探討視覺化工具的特性,及探討幫助學生學習排序演算法的相關研究。

圖 2-1 傳統氣泡排序紙筆教學 氣泡排序:9 5 2 7 3

Pass1 從第一筆資料起兩兩比較,若前者大於後者,則作資料交換,此動

作可把這五數的最大數移至最右邊,並達定點。

9 5 2 7 3 ˇ ˇ ˇ ˇ

5 2 7 3 ○9 最大 被移至最右邊,並達定點。

Pass2 第一筆至第四筆重複 Pass1 的動作;兩兩相比:

5 2 7 3 ○9 ˇ ˇ ˇ

5 2 3 ○79 →○7 為此四數中最大,被移至最右邊,並達定點。

Pass3 第一筆至第三筆;兩兩相比:

5 2 3 ○79 ˇ ˇ

2 3 ○579 →○5 達定點 Pass4 2 3 ○579

ˇ

2 ○3579 →○3 達定點,排序完成。

相關文件