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