吳敏寧 張永恒 劉紅霞 楊斐
摘要:結(jié)合數(shù)據(jù)結(jié)構(gòu)教學(xué)的實(shí)際需求,分析BOPPPS模式中的六個(gè)階段,提出采用BOPPPS教學(xué)模式進(jìn)行數(shù)據(jù)結(jié)構(gòu)課程教學(xué)設(shè)計(jì),以數(shù)據(jù)結(jié)構(gòu)課程中插入類(lèi)排序這一知識(shí)點(diǎn)為例,探討該模型中每一個(gè)階段的具體設(shè)計(jì)方案。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);教學(xué)模式;BOPPPS;插入類(lèi)排序
0 引言
IEEE-CS/ACM的CS教程已將數(shù)據(jù)結(jié)構(gòu)課程列為核心課程之首,說(shuō)明數(shù)據(jù)結(jié)構(gòu)在信息學(xué)科中具有重要地位。數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)類(lèi)專(zhuān)業(yè)學(xué)科基礎(chǔ)課程,是計(jì)算機(jī)軟件理論與技術(shù)課程的重要基礎(chǔ),一般開(kāi)設(shè)在大學(xué)二年級(jí),是對(duì)所學(xué)軟件技術(shù)進(jìn)行總結(jié)提高,為后繼專(zhuān)業(yè)課程提供基礎(chǔ),同時(shí)為考研做準(zhǔn)備。課程主要包括數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系,數(shù)據(jù)在計(jì)算機(jī)中的表示、組織、處理和對(duì)應(yīng)數(shù)據(jù)結(jié)構(gòu)的算法設(shè)計(jì)與算法性能分析等。通過(guò)數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí),可以培養(yǎng)學(xué)生的計(jì)算機(jī)程序設(shè)計(jì)能力、計(jì)算思維能力和分析問(wèn)題的能力。
數(shù)據(jù)結(jié)構(gòu)課程教學(xué)理論與實(shí)踐比例一般小于2:1,該課程知識(shí)點(diǎn)多、理論性強(qiáng)、內(nèi)容抽象,要求學(xué)生具有一定的邏輯思維和分析問(wèn)題能力、具備較好的C語(yǔ)言編程功底。在實(shí)際教學(xué)中,學(xué)生存在課堂參與度不夠、學(xué)習(xí)積極性差、動(dòng)手能力不強(qiáng)、自我學(xué)習(xí)能力不足等問(wèn)題,往往整個(gè)課程結(jié)束后,部分學(xué)生都未明白為什么要學(xué)該課程?學(xué)習(xí)該課程有什么用?用到什么地方?
目前該課程教學(xué)過(guò)程中雖然運(yùn)用了啟發(fā)式、對(duì)比式、案例式等多種教學(xué)方法,但由于缺乏一套完備的理論體系支撐,教學(xué)效果并不理想。若在教學(xué)過(guò)程中將知識(shí)點(diǎn)分解為教學(xué)目標(biāo)、教學(xué)行為、學(xué)習(xí)活動(dòng)、教學(xué)評(píng)測(cè)四個(gè)階段,課堂教學(xué)效果會(huì)顯著提升,而這些正是BOPPPS教學(xué)模式的核心內(nèi)容。在數(shù)據(jù)結(jié)構(gòu)課程教學(xué)過(guò)程中合理應(yīng)用BOPPPS教學(xué)模式,是提高教學(xué)效果、優(yōu)化教學(xué)過(guò)程的有效途徑。
1 BOPPPS教學(xué)模式概述
BOPPPS教學(xué)模式是近年來(lái)加拿大多所知名院校采取的一種教學(xué)模型,該模式突出強(qiáng)調(diào)教學(xué)反思和教學(xué)互動(dòng)環(huán)節(jié),將教學(xué)內(nèi)容分割為多個(gè)小單元,每個(gè)教學(xué)小單元內(nèi)都有起承轉(zhuǎn)合,每個(gè)單元課堂亦有起承轉(zhuǎn)合。BOPPPS將每一個(gè)教學(xué)單元?jiǎng)澐譃榱鶄€(gè)階段:導(dǎo)入(bridge-in)、學(xué)習(xí)目標(biāo)(objective)、前測(cè)(pre-assessment)、參與式學(xué)習(xí)(participatory learning)、后測(cè)(post-assessment)和總結(jié)(summary)。
(1)導(dǎo)入是對(duì)教學(xué)內(nèi)容的簡(jiǎn)介,引起學(xué)生的學(xué)習(xí)興趣。
(2)學(xué)習(xí)目標(biāo)是明確學(xué)習(xí)所要達(dá)到的目標(biāo),對(duì)教學(xué)目標(biāo)進(jìn)行具體明確的表述。
(3)前測(cè)是在具體內(nèi)容學(xué)習(xí)之前檢驗(yàn)學(xué)生對(duì)所學(xué)內(nèi)容的認(rèn)知程度,進(jìn)而調(diào)整教學(xué)內(nèi)容的難易程度,可通過(guò)提問(wèn)、測(cè)驗(yàn)、討論等多種方式進(jìn)行。
(4)參與式學(xué)習(xí)強(qiáng)調(diào)鼓勵(lì)學(xué)生參與到學(xué)習(xí)過(guò)程中,使學(xué)生成為學(xué)習(xí)的主導(dǎo)者。參與學(xué)習(xí)交互分為學(xué)習(xí)者之間的交互和教師與學(xué)生之間的交互。
(5)后測(cè)可根據(jù)不同情況采取習(xí)題測(cè)試、綜合實(shí)踐、小論文等不同方式。
(6)總結(jié)是對(duì)教學(xué)內(nèi)容進(jìn)行總結(jié),如授課內(nèi)容總結(jié)、課堂反饋、學(xué)習(xí)評(píng)價(jià)等。
BOPPPS教學(xué)模式在傳統(tǒng)教學(xué)模式的基礎(chǔ)上規(guī)范課堂教學(xué)流程,指出課堂教學(xué)的重要環(huán)節(jié),突出了參與式學(xué)習(xí)的重要性。
2 BOPPPS教學(xué)模式的應(yīng)用
數(shù)據(jù)結(jié)構(gòu)課程一般包括三大部分:數(shù)據(jù)結(jié)構(gòu)基本概念、基本數(shù)據(jù)結(jié)構(gòu)和基本技術(shù)應(yīng)用?;炯夹g(shù)章節(jié)主要包括查找和排序,排序部分包括多種排序方法。學(xué)生在學(xué)習(xí)過(guò)程中容易混淆知識(shí)點(diǎn),學(xué)習(xí)興趣低,課堂氣氛不活躍,因此整體教學(xué)效果不理想。以BOPPPS模式組織教學(xué),生動(dòng)有趣地引入教學(xué)內(nèi)容,明確學(xué)習(xí)目標(biāo),活躍互動(dòng)環(huán)節(jié),合理設(shè)計(jì)前后測(cè)試,有條理地梳理總結(jié),這樣可以充分調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性。下面以“插入類(lèi)排序”一節(jié)的實(shí)踐教學(xué)為例,闡述BOPPPS模式在教學(xué)過(guò)程中的具體步驟。
2.1 導(dǎo)入
導(dǎo)人是架設(shè)在師生間的第一座橋梁,好的開(kāi)頭是成功的一半,授課過(guò)程的導(dǎo)入階段直接影響整堂課教學(xué)的氛圍,好的導(dǎo)入可以激發(fā)學(xué)生的學(xué)習(xí)興趣,啟發(fā)和引導(dǎo)學(xué)生的思維,促進(jìn)教學(xué)任務(wù)的順利完成。常用的導(dǎo)人方法有提問(wèn)啟示法、案例分析法、演示實(shí)驗(yàn)法、問(wèn)題設(shè)疑法等。
鑒于排序在日常應(yīng)用中的普遍性,導(dǎo)入法可以應(yīng)用提問(wèn)啟示法。第一個(gè)問(wèn)題是學(xué)習(xí)委員收數(shù)據(jù)結(jié)構(gòu)作業(yè)時(shí),要求按照學(xué)號(hào)從小到大的方式排序,大家會(huì)用什么方法進(jìn)行排序。第二個(gè)問(wèn)題是大家玩撲克牌時(shí)是怎樣抓牌整牌的。學(xué)生討論第一個(gè)問(wèn)題時(shí),會(huì)給出各種排序方法,但大多學(xué)生不能將排序方法和實(shí)際操作對(duì)號(hào)入座;討論第二個(gè)問(wèn)題時(shí),通過(guò)抓牌整牌過(guò)程的描述可順其自然地引入直接插入排序的基本概念。引入基本概念后,讓學(xué)生舉插入排序?qū)嵗?,啟發(fā)學(xué)生思維,激發(fā)學(xué)生學(xué)習(xí)興趣。
通過(guò)學(xué)生所舉實(shí)例,了解學(xué)生對(duì)排序的理解程度,對(duì)教學(xué)內(nèi)容的難易、詳略及時(shí)進(jìn)行調(diào)整。
2.2 學(xué)習(xí)目標(biāo)
BOPPPS模式強(qiáng)調(diào)教學(xué)目標(biāo)要具體明確,教學(xué)目標(biāo)分為學(xué)校培養(yǎng)目標(biāo)、課程目標(biāo)和課堂目標(biāo),這里的學(xué)習(xí)目標(biāo)指課堂目標(biāo)。教學(xué)目標(biāo)在課堂教學(xué)中具有導(dǎo)向功能,指引教學(xué)過(guò)程和指導(dǎo)教學(xué)結(jié)果的測(cè)量與評(píng)價(jià)。傳統(tǒng)教學(xué)目標(biāo)一般使用“了解、理解、掌握”等含義泛泛之詞,目標(biāo)表示不明確,可操作性不強(qiáng)。結(jié)合BOPPPS模式思想,將教學(xué)目標(biāo)從四個(gè)方面進(jìn)行描述,①教學(xué)對(duì)象為計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的大二學(xué)生;②教學(xué)條件為已完成計(jì)算機(jī)導(dǎo)論、程序設(shè)計(jì)語(yǔ)言以及數(shù)據(jù)結(jié)構(gòu)課程的算法性能分析與基本的數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí);③教學(xué)內(nèi)容包括簡(jiǎn)單直接插入排序、折半插入排序和希爾排序的算法思想、算法描述、算法分析、算法優(yōu)化、算法比較;④教學(xué)要求掌握三種基本插入類(lèi)排序的算法思想、算法描述、算法性能,分析出算法最好最壞情況。
2.3 前測(cè)
對(duì)學(xué)生即將學(xué)習(xí)的內(nèi)容進(jìn)行學(xué)情評(píng)價(jià),檢驗(yàn)學(xué)生對(duì)所學(xué)內(nèi)容的認(rèn)知程度,了解學(xué)生的學(xué)習(xí)興趣與能力,然后結(jié)合教學(xué)目標(biāo),根據(jù)前測(cè)結(jié)果調(diào)整內(nèi)容的難易度和進(jìn)度,為有效而合理的教學(xué)設(shè)計(jì)提供依據(jù)。可在課前或課堂中進(jìn)行前測(cè),具體方法有課堂提問(wèn)、角色扮演、作業(yè)、測(cè)試等。
針對(duì)插入類(lèi)排序,給出幾組具體數(shù)據(jù),如序列{20,18,8722,1,19,77,5,10}、{76,53,44,0,29,44,29,1,89}等,請(qǐng)學(xué)生按照抓撲克牌的方式進(jìn)行排序,給出排序過(guò)程,然后增加數(shù)據(jù)元素個(gè)數(shù),讓學(xué)生思考這種排序方法好不好,是否有更好的方法。給出冒泡排序基本思想,請(qǐng)學(xué)生將序列{20,18,87,22,1,19,77,5,10}、{76,53,440,29,44,29,1,89)按照交換排序算法進(jìn)行排序,感受交換排序和插入類(lèi)排序的異同,深入了解插入類(lèi)排序算法思想。
對(duì)于程序設(shè)計(jì)方面的能力,可以對(duì)數(shù)組部分的知識(shí)點(diǎn)進(jìn)行測(cè)試,在數(shù)組中查詢(xún)數(shù)據(jù)、插入數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)等,如在無(wú)序數(shù)組a[]={21,17,8,56,77,2}中查找關(guān)鍵字8和刪除關(guān)鍵字8,在有序數(shù)組{2,8,17,21,56,77}查詢(xún)關(guān)鍵字8、插入關(guān)鍵字13和刪除關(guān)鍵字8,通過(guò)查詢(xún)、插入、刪除、修改數(shù)據(jù)等操作來(lái)檢查學(xué)生的學(xué)習(xí)基礎(chǔ),回顧程序設(shè)計(jì)部分知識(shí)點(diǎn),為排序算法的實(shí)現(xiàn)奠定基礎(chǔ)。通過(guò)深入提問(wèn),教師既了解了學(xué)生對(duì)基礎(chǔ)知識(shí)的掌握程度,又激發(fā)了學(xué)生學(xué)習(xí)新知識(shí)的興趣。
2.4 參與式學(xué)習(xí)
參與式學(xué)習(xí)是BOPPPS模式最重要的一個(gè)階段,突出教學(xué)過(guò)程中互動(dòng)和體驗(yàn),變單向的信息傳導(dǎo)為雙向的信息交流,關(guān)注學(xué)生的反饋信息,引導(dǎo)教學(xué)活動(dòng)的開(kāi)展。參與式學(xué)習(xí)是以學(xué)生為主體,學(xué)生在教學(xué)過(guò)程中居主導(dǎo)地位,教師在教學(xué)過(guò)程中扮演指導(dǎo)者、組織者的角色,突出學(xué)生在學(xué)習(xí)過(guò)程中的主觀能動(dòng)性,激發(fā)學(xué)生學(xué)習(xí)的積極性和主動(dòng)性,鼓勵(lì)學(xué)生參與到學(xué)習(xí)過(guò)程中,以小班教學(xué)方式,盡量使大多學(xué)生主動(dòng)參與討論,發(fā)布意見(jiàn)。根據(jù)不同教學(xué)內(nèi)容制定不同參與學(xué)習(xí)方法,常見(jiàn)的參與式學(xué)習(xí)方式有游戲、辯論、角色扮演、頭腦風(fēng)暴、案例分析、實(shí)踐、研討、團(tuán)隊(duì)合作等。
在高等教育出版社的教材《數(shù)據(jù)結(jié)構(gòu)——C語(yǔ)言描述》(作者耿國(guó)華)中,插入類(lèi)排序是內(nèi)部排序的第一部分內(nèi)容,所以第一個(gè)參與方式是以討論方式進(jìn)行,問(wèn)題為在實(shí)際生活中排序具有哪些特點(diǎn)和基本操作,如按照個(gè)子從矮到高進(jìn)行排隊(duì),引導(dǎo)學(xué)生總結(jié)排序的基本概念,如有序、無(wú)序、移動(dòng)、比較、關(guān)鍵字、記錄、遞增、遞減、主關(guān)鍵字、次關(guān)鍵字、穩(wěn)定性等。第二個(gè)參與方式以游戲方式進(jìn)行,把兩幅撲克牌分為4份,請(qǐng)4位同學(xué)進(jìn)行抓牌排牌游戲,比速度快慢,然后討論抓撲克牌排序的過(guò)程具有哪些特點(diǎn),引導(dǎo)學(xué)生總結(jié)插入類(lèi)排序的基本思想。第三個(gè)參與方式是給出幾組無(wú)序數(shù)據(jù)序列,如{1,3,5,7,9}、{9,7,5,3,1}、{3,1,9,5,7}、{7,1,3,9,5}4組無(wú)序序列,請(qǐng)學(xué)生依照插入類(lèi)排序基本思想進(jìn)行排序,給出排序步驟并回答出自己所排序序列的優(yōu)缺點(diǎn)。第四個(gè)參與方式是團(tuán)隊(duì)合作實(shí)踐方式,把40位學(xué)生分成8個(gè)小組,用C語(yǔ)言進(jìn)行編程,給出直接插入排序算法代碼,測(cè)試數(shù)據(jù)為上述4組無(wú)序序列,學(xué)生完成后,進(jìn)行評(píng)價(jià)總結(jié)。第五個(gè)參與方式是測(cè)試方式,測(cè)試題目為計(jì)算上述4個(gè)序列在直接插入排序過(guò)程中,進(jìn)行了多少次比較和移動(dòng),需要的輔助空間多大,引導(dǎo)學(xué)生從直接插入排序算法的時(shí)間復(fù)雜度和空間復(fù)雜度方面進(jìn)行性能分析。
直接插入排序知識(shí)點(diǎn)講授完成后,通過(guò)第五次參與方式中計(jì)算的比較次數(shù)和移動(dòng)次數(shù),提出第六個(gè)問(wèn)題,如何優(yōu)化直接插入排序算法,如果從比較次數(shù)著手,是否可以將折半查找算法和直接插入排序算法相結(jié)合,引出折半插入排序基本思想。
分別演示直接插入排序代碼和折半查找代碼,讓學(xué)生思考兩個(gè)程序核心代碼如何結(jié)合,得出折半插入排序算法描述,并分析其算法性能。
第七個(gè)參與方式為角色扮演法,讓10個(gè)學(xué)生隨機(jī)站成一排,進(jìn)行按照從小到大排隊(duì),先按照直接插入排序算法進(jìn)行排隊(duì),然后按照折半查找方法進(jìn)行排隊(duì),再按照希爾排序基本思想,隔4個(gè)進(jìn)行排序,再隔2個(gè)進(jìn)行排序,再進(jìn)行直接插入排序,討論排序效率,引出希爾排序的算法思想,將希爾排序算法描述和算法性能分析留作課后作業(yè),下一次課進(jìn)行講授。
在參與式學(xué)習(xí)過(guò)程中,授課教師需具備較強(qiáng)的課堂掌控能力,在半開(kāi)放的教學(xué)過(guò)程中,教師需始終圍繞教學(xué)目標(biāo)展開(kāi),引導(dǎo)教學(xué)過(guò)程有序進(jìn)行,避免學(xué)生偏離教學(xué)目標(biāo)主線(xiàn),影響教學(xué)計(jì)劃的完成。此外,在互動(dòng)過(guò)程中,教師可以更多地了解學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)問(wèn)題,有針對(duì)性地加強(qiáng)某些知識(shí)點(diǎn)的講解,并對(duì)反饋信息不斷總結(jié)和反思,改進(jìn)和優(yōu)化教學(xué)內(nèi)容。
2.5 后測(cè)
該階段的目的是檢驗(yàn)學(xué)生的學(xué)習(xí)效果,檢查是否達(dá)到教學(xué)目標(biāo),針對(duì)不同的課程內(nèi)容,采取不同的評(píng)估方式。后測(cè)方式有測(cè)試、案例分析等,后測(cè)可在課堂教學(xué)內(nèi)容講授結(jié)束后進(jìn)行,插人類(lèi)排序后測(cè)內(nèi)容如下:
題1:分析和比較3種插入類(lèi)排序算法的算法時(shí)間復(fù)雜度和輔助空間大小。
題2:舉兩個(gè)實(shí)例,分別是直接插入排序最好和最壞的情況。
題3:對(duì)序列{12,3,9,11,55,77,98,2,3,9,76}進(jìn)行插入類(lèi)排序,使用順序存儲(chǔ)方法。
題4:對(duì)序列{12,3,9,11,55,77,98,2,3,9,76}進(jìn)行插入類(lèi)排序,使用鏈?zhǔn)酱鎯?chǔ)方法。
題5:隨機(jī)生成50個(gè)整數(shù),用3種插人類(lèi)排序算法分別進(jìn)行排序(實(shí)踐題)。
題1和題2是對(duì)算法復(fù)雜度和空間復(fù)雜度方面掌握程度的測(cè)試,題3和題4是從存儲(chǔ)角度進(jìn)行測(cè)試,加強(qiáng)學(xué)生對(duì)排序和存儲(chǔ)方法的理解,題5作為綜合性的實(shí)踐作業(yè),測(cè)試學(xué)生在掌握理論知識(shí)的基礎(chǔ)上,實(shí)踐動(dòng)手能力如何。
在后測(cè)階段可以檢查學(xué)生對(duì)這一教學(xué)單元課堂學(xué)習(xí)情況,如果部分知識(shí)點(diǎn)未達(dá)到教學(xué)要求,可以根據(jù)學(xué)生的學(xué)習(xí)情況,有針對(duì)性地布置課后作業(yè)和實(shí)驗(yàn)內(nèi)容。在后測(cè)階段,教師既可了解學(xué)生對(duì)理論知識(shí)的掌握程度,還可了解學(xué)生實(shí)踐動(dòng)手能力。通過(guò)后測(cè),學(xué)生加深對(duì)知識(shí)點(diǎn)的掌握,教師可了解本教學(xué)單元教學(xué)目標(biāo)的完成情況,進(jìn)而分析整個(gè)教學(xué)過(guò)程,對(duì)各個(gè)教學(xué)環(huán)節(jié)進(jìn)行調(diào)整、完善和優(yōu)化。
2.6 總結(jié)
課堂總結(jié)可以幫助學(xué)生總結(jié)重點(diǎn)難點(diǎn)、理清知識(shí)脈絡(luò)、鞏固知識(shí)、加深記憶。教師對(duì)本次教學(xué)單元知識(shí)點(diǎn)系統(tǒng)地有條理地概括總結(jié)??偨Y(jié)方式一般包括內(nèi)容回顧、學(xué)習(xí)評(píng)價(jià)、課堂反饋、概念圖等。
本次課堂教學(xué)總結(jié)用概念圖作為工具,使學(xué)生在掌握插入類(lèi)排序知識(shí)點(diǎn)的同時(shí)理清知識(shí)點(diǎn)之間的關(guān)系,并對(duì)不同排序算法進(jìn)行比較,如圖l所示。
3 教學(xué)效果
該教學(xué)模式在40人的信管班進(jìn)行試驗(yàn),理論教學(xué)48課時(shí),課程設(shè)計(jì)24課時(shí),在教學(xué)過(guò)程中,課堂氛圍活躍,學(xué)生在課堂發(fā)言、提問(wèn)、回答、討論等方面變得積極主動(dòng),編程能力明顯提高,基礎(chǔ)知識(shí)掌握扎實(shí),實(shí)踐動(dòng)手能力和團(tuán)隊(duì)合作能力有所提高。40人考試成績(jī)統(tǒng)計(jì)結(jié)果見(jiàn)表1。通過(guò)對(duì)表1成績(jī)統(tǒng)計(jì)表分析,表明學(xué)生理論知識(shí)點(diǎn)掌握較好、綜合實(shí)踐能力較之前有所提高,說(shuō)明BOPPPS模式在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的應(yīng)用提高了學(xué)生分析和解決問(wèn)題的能力,教學(xué)效果良好。
4 結(jié)語(yǔ)
實(shí)踐證明,BOPPPS教學(xué)模式在數(shù)據(jù)結(jié)構(gòu)課程教學(xué)過(guò)程中的應(yīng)用可規(guī)范課堂教學(xué)流程,提高學(xué)生學(xué)習(xí)興趣,活躍課堂氣氛,提高學(xué)習(xí)效率,幫助教師分析教學(xué)過(guò)程、找出教學(xué)問(wèn)題、完善教學(xué)方法、提升教學(xué)質(zhì)量。
(編輯:彭遠(yuǎn)紅)