□寧礦鳳 彭 浩
2011年,周以真[1]教授提出“計算思維”是一種能夠清晰、抽象地將問題和解決方案用信息處理代理所能有效執(zhí)行的方式描述從而解決問題的思維過程。2017年,我國教育部指出“計算思維”是發(fā)展學(xué)生信息素養(yǎng)的核心素養(yǎng)之一。國內(nèi)外研究者普遍認(rèn)為,計算思維本質(zhì)上是人類如何解決問題的思維和能力體現(xiàn)的一種過程,也是一股推動學(xué)生信息素養(yǎng)發(fā)展的創(chuàng)新動力,主要包括六個方面的子能力[2]:形式化問題、抽象問題,建立模型、組織和分析數(shù)據(jù)、建立問題解決方案并優(yōu)化、解決方案系統(tǒng)化和問題遷移。隨著科學(xué)技術(shù)的發(fā)展,K-12階段計算思維的教育價值將越來越突出,以適應(yīng)新世紀(jì)對人才技能的新要求。總的來說,計算思維是一種規(guī)范化、系統(tǒng)化的問題解決過程,也是人的一種內(nèi)在思維品質(zhì)。
本文將PBL問題引導(dǎo)模式和計算思維培養(yǎng)相結(jié)合組織課堂教學(xué),分階段有目標(biāo)地逐步完成學(xué)習(xí)任務(wù),實現(xiàn)教學(xué)目標(biāo)。以“問題”為出發(fā)點,注重小組自主探究學(xué)習(xí),任務(wù)分配,問題解決設(shè)計與實施,可以提高學(xué)生解析問題能力和創(chuàng)新能力,幫助學(xué)生形成計算思維并應(yīng)用在實際生活中。
計算思維的概念對于大一新生來說是比較抽象的。基于“計算思維”的大學(xué)計算機(jī)基礎(chǔ)課程改革成敗的關(guān)鍵在于如何以恰當(dāng)?shù)姆绞絺魇诮o學(xué)生,且計算思維不僅需要培養(yǎng)學(xué)生編寫程序的思維,更重要的是培養(yǎng)學(xué)生分析解決綜合問題的能力,而這種綜合問題解決能力的培養(yǎng),需要真實的問題情境、多元的學(xué)科知識儲備以及必要的工具方法支持。PBL教學(xué)法,是一套設(shè)計學(xué)習(xí)情境的教學(xué)方法,筆者結(jié)合多年教學(xué)經(jīng)驗將PBL問題引導(dǎo)模式和計算思維相結(jié)合的組織形式引入“大學(xué)計算機(jī)基礎(chǔ)課程教學(xué)”中,設(shè)計貼近真實生活的問題,用簡單的案例講授復(fù)雜、高深的學(xué)生難以理解的原理。教學(xué)過程一般是圍繞問題求解的基本過程,即通過問題的引入,探尋解決問題的方法,故設(shè)計的教學(xué)案例盡可能地將計算思維的核心教學(xué)目標(biāo)“埋在”教學(xué)中,這種做法開拓了計算思維的課程設(shè)計思路。
在計算機(jī)實際應(yīng)用中,經(jīng)常會對數(shù)據(jù)序列排序,如按字母,日期,數(shù)字進(jìn)行有序的順序排列,即便在高速的計算機(jī)上運(yùn)行,如果使用排序方法不恰當(dāng),也可能需要很長的時間來完成排序。一個優(yōu)秀的算法尤其是在大量數(shù)據(jù)的處理方面可以節(jié)省大量的資源。排序算法在日常生活中應(yīng)用非常廣泛,生活中幾乎處處用到。在《大學(xué)計算機(jī)基礎(chǔ)》課程教學(xué)改革中,排序算法是一個很好的培養(yǎng)學(xué)生計算思維的案例,學(xué)生會遇到不同的排序方法,如何引導(dǎo)學(xué)生創(chuàng)造或?qū)W會一個有效的排序方法并運(yùn)用在生活中解決問題是筆者實踐的要點,算法學(xué)習(xí)也是一種學(xué)習(xí)和提高思維能力的過程。
(一)選取通俗易懂的案例。在現(xiàn)實生活中廣泛存在著排序問題,現(xiàn)在假設(shè)要給考試的試卷按照學(xué)號排序,幾百份的試卷!用什么排序算法?生活中很多類似的問題:班級名冊、電話簿中的姓名、字典、圖書索引、圖書館或書架上的書、計算機(jī)中的文件列表等。簡單地說,我們希望在排序時花費(fèi)的時間要短,占用的資源要盡量少,因此要解決以下問題:一是從序列的初始狀態(tài)到經(jīng)過排序算法的變換移位等操作變到最終排序好的結(jié)果狀態(tài)的過程所花費(fèi)的時間要盡量短。二是從序列的初始狀態(tài)經(jīng)過排序移位變換的過程一直到最終的狀態(tài)所花費(fèi)的空間開銷要盡量小。三是穩(wěn)定性:要保證排序前和排序后,2個相等的數(shù)其在序列的前后位置順序相同。
(二)以問題為驅(qū)動引導(dǎo)學(xué)生主動思考,加強(qiáng)計算思維培養(yǎng)。項目組在多年的《大學(xué)計算機(jī)基礎(chǔ)》教學(xué)中,結(jié)合學(xué)生專業(yè)特點設(shè)計一系列具有層次漸進(jìn)關(guān)系的問題,在教學(xué)設(shè)計中引導(dǎo)學(xué)生結(jié)合生活場景深入思考,進(jìn)而找出并描述解決問題的步驟。
1.學(xué)生們聯(lián)系生活討論并說出哪些場合排序是非常重要的?同時思考如果沒有排序這些場合可能會出現(xiàn)哪些問題?(最常見的問題:無序時人們需要花費(fèi)大量時間來查找目標(biāo),費(fèi)時費(fèi)力)。指出排序能夠使我們快速進(jìn)行查找,提高工作效率!提出計算科學(xué)中排序的意義。
2.討論:1)先用“插入排序”,發(fā)現(xiàn)如果只有10份試卷,排的還挺快的,但是隨著已排序試卷數(shù)量的增多,想要把新的試卷插入到已排序試卷集合的合適位置則會越來越慢了。
2)插入排序看起來簡單易行,但是試卷多達(dá)至上千份時,該如何處理?那先把所有的試卷按照學(xué)號分成10堆,比如學(xué)號50以下的放在A堆上,學(xué)號50~100的放到B堆上,以此類推。每一堆用插入排序進(jìn)行排序,因為試卷份數(shù)比較少,所以用插入比較快。然后按照A-E堆的順序進(jìn)行合并,也就排好了。
3.學(xué)生分小組模擬以上場景,先在一個集合中排序,即每個人隨機(jī)從老師手上抽到一個數(shù)字,抽完后展示出來,是一個無序的狀態(tài),如圖1所示。
圖1 學(xué)生隨機(jī)在老師手中抽取的數(shù)字
4.學(xué)生開始分組討論如何快速有效地將小組的無序數(shù)字進(jìn)行從小到大的有序排序,并整理方法和步驟。
5.幾分鐘后,讓小組學(xué)生演示排序過程,并總結(jié)排序方法;(學(xué)生有可能想到的是插入排序類似于撲克牌游戲摸牌時的方法,游戲人摸起一張牌時,要和手上現(xiàn)有的牌進(jìn)行一個個比較,直到插入正確位置(按牌面大小),以便手中的牌以一定的次序排列。)
6.小結(jié)一下:插入排序是一種較為簡單的排序算法,其算法思想是將一個待排序的數(shù)字按其關(guān)鍵字的大小插入到前面已經(jīng)排好序的子序列中的適當(dāng)位置,依次如此,直到全部記錄插入完為止。
7.播放網(wǎng)上下載的國外用真人跳舞表現(xiàn)的動態(tài)排序算法步驟視頻,如圖2所示,讓學(xué)生更深入體會計算機(jī)科學(xué)中排序的步驟。
圖2 動態(tài)插入排序算法視頻
8.讓學(xué)生分組討論還有沒有其它的方法,只要和前一種方法不同即可;或者讓學(xué)生嘗試用“冒泡排序”來演示排序的整個過程(冒泡排序是一種簡單直觀的“交換式”排序方法,基本思想就是從左至右讓相近的兩個數(shù)字作比較,小的往上冒,排到前面,大的往下沉,排在后面,按照這個規(guī)則從左向右比較,重復(fù)遍歷整個隊列,最大的數(shù)就被換到了數(shù)組尾。(這里指升序))
9.可根據(jù)課堂學(xué)生情況,是否重復(fù)第3步。
10.比較以上排序算法,整理步驟。哪一種方法更優(yōu),引導(dǎo)學(xué)生計算出整個遍歷過程中排序需要比較的次數(shù),并說明原因。
(對于冒泡排序:要找出n個數(shù)的最大值,需要比較n-1次。例如,要找出8個數(shù)中最大的那個數(shù),第一趟需要比較7次,要找出剩下的7個中最大數(shù),需要比較6次,依次類推……總共需要比較7+6+5+4+3+2+1=28次)。
11.在學(xué)生有一定的算法基礎(chǔ)上進(jìn)行拓展,可根據(jù)學(xué)生專業(yè)特點盡可能嘗試其他的排序方法,引導(dǎo)學(xué)生去思考,如選擇排序、希爾排序等,并總結(jié)其算法思想。
12.總結(jié):在這些排序算法中,冒泡排序和插入排序是最基礎(chǔ)的,各種排序方法中,沒有哪一種是絕對最優(yōu)的,因此,在實際應(yīng)用中通常是根據(jù)不同的問題適當(dāng)選用合適的算法,甚至可以多種算法結(jié)合起來使用。
基于PBL問題情境的學(xué)習(xí)是一種有效促進(jìn)“學(xué)習(xí)者”轉(zhuǎn)變?yōu)椤爸R建構(gòu)者”的新型學(xué)習(xí)方式。在這種教學(xué)模式中,問題的設(shè)計是教學(xué)設(shè)計中的重要環(huán)節(jié),教學(xué)中通過提出問題和解決問題來實現(xiàn)知識經(jīng)驗的建構(gòu),本教學(xué)案例以PBL真實問題情境作為切入點為學(xué)生提供了較強(qiáng)的生活實景,有效地將學(xué)科知識和技能聯(lián)系起來。此外,教師根據(jù)實際問題,引導(dǎo)學(xué)生進(jìn)行算法優(yōu)化,逐步產(chǎn)生計算機(jī)輔助下的問題解決方案,形成問題解決的仿真模型也是對學(xué)生能力的一種提高。
課程組在“大學(xué)計算機(jī)基礎(chǔ)”課程的改革中推行以計算思維與PBL為導(dǎo)向的《大學(xué)計算機(jī)基礎(chǔ)》教學(xué)實踐項目,通過多年的教學(xué)實踐,積累了一定的經(jīng)驗和方法,并獲得省級教學(xué)改革項目一項,校級改革項目多項。