王賀哲
關(guān)鍵詞: BOPPPS教學(xué)模型;教學(xué)設(shè)計(jì);算法設(shè)計(jì)與分析
中圖分類(lèi)號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)20-0167-03
0 引言
算法設(shè)計(jì)與分析[1]是高等院校計(jì)算機(jī)科學(xué)與技術(shù)、物聯(lián)網(wǎng)工程、軟件工程等專(zhuān)業(yè)教學(xué)中的重要課程之一。算法設(shè)計(jì)與分析這門(mén)課程內(nèi)容抽象、應(yīng)用廣泛,在專(zhuān)業(yè)課程體系中發(fā)揮著不可替代的作用。算法設(shè)計(jì)與分析主要包括算法概述、遞歸與分治策略、動(dòng)態(tài)規(guī)劃、貪心算法、回溯法、分支限界法以及隨機(jī)化算法等眾多內(nèi)容。通過(guò)對(duì)算法設(shè)計(jì)與分析這門(mén)課程的學(xué)習(xí),學(xué)生應(yīng)做到掌握算法設(shè)計(jì)與分析的主要理論、方法以及技術(shù),能夠?qū)捎?jì)算問(wèn)題設(shè)計(jì)相應(yīng)的算法,并對(duì)算法的計(jì)算復(fù)雜性做出正確的分析。算法設(shè)計(jì)與分析在專(zhuān)業(yè)課程體系中與C語(yǔ)言程序設(shè)計(jì)、離散數(shù)學(xué)、線性代數(shù)、高等數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)以及概率論與數(shù)理統(tǒng)計(jì)等眾多課程緊密相連。因此,學(xué)好算法設(shè)計(jì)與分析這門(mén)課程不但能夠鞏固之前所學(xué)過(guò)的課程,還能為學(xué)生學(xué)習(xí)后續(xù)相關(guān)課程打下堅(jiān)實(shí)的基礎(chǔ)。
然而,算法設(shè)計(jì)與分析在傳統(tǒng)教學(xué)模式下的教學(xué)中,通常會(huì)存在無(wú)法激發(fā)學(xué)生學(xué)習(xí)該課程相關(guān)知識(shí)的興趣以及學(xué)生課堂參與度不夠等問(wèn)題。這些問(wèn)題都極大地影響了算法設(shè)計(jì)與分析這門(mén)課程的教學(xué)質(zhì)量。因此,如何激發(fā)學(xué)生學(xué)習(xí)該課程相關(guān)知識(shí)的興趣,增加學(xué)生課堂參與度,進(jìn)一步達(dá)到提升算法設(shè)計(jì)與分析這門(mén)課程教學(xué)質(zhì)量的目標(biāo),是該門(mén)課程在教學(xué)活動(dòng)中迫切需要解決的關(guān)鍵問(wèn)題之一。為了能夠激發(fā)學(xué)生學(xué)習(xí)該課程相關(guān)知識(shí)的興趣、提升學(xué)生課堂參與度,本文以算法設(shè)計(jì)與分析中的“貪心算法”為例,將BOPPPS教學(xué)模型應(yīng)用到算法設(shè)計(jì)與分析教學(xué)活動(dòng)中,通過(guò)對(duì)BOPPPS教學(xué)模型所包含的六個(gè)環(huán)節(jié)的應(yīng)用,達(dá)到提高算法設(shè)計(jì)與分析這門(mén)課程教學(xué)質(zhì)量的目標(biāo)。
1 BOPPPS 教學(xué)模型簡(jiǎn)介
BOPPPS教學(xué)模型是一種起源于北美的教學(xué)模式,該教學(xué)模式的主要優(yōu)勢(shì)體現(xiàn)在強(qiáng)調(diào)激發(fā)學(xué)生學(xué)習(xí)的主動(dòng)性、增進(jìn)學(xué)生的學(xué)習(xí)參與度。因此,該教學(xué)模式也是目前眾多教學(xué)模式中比較先進(jìn)且有效的教學(xué)模式之一。BOPPPS教學(xué)模型在實(shí)施過(guò)程中會(huì)將一個(gè)完整的課堂教學(xué)過(guò)程分割成六個(gè)環(huán)節(jié),如圖1所示。這六個(gè)環(huán)節(jié)分別為:導(dǎo)言(Bridge-in) 、學(xué)習(xí)目標(biāo)(Objective) 、前測(cè)(Pre-assessment) 、參與式學(xué)習(xí)(Participatory Learn?ing) 、后測(cè)(Post-assessment) 和總結(jié)(Summary) [2-5]。
在這六個(gè)環(huán)節(jié)中,導(dǎo)言的主要作用是在教學(xué)過(guò)程中激發(fā)學(xué)生學(xué)習(xí)課程相關(guān)知識(shí)的興趣、讓學(xué)生能夠充分地了解課程所要講述的主題以及課程相關(guān)知識(shí)的重要性,在這一環(huán)節(jié)中,可以通過(guò)敘述和課程相關(guān)的故事、播放視頻、老師提問(wèn)問(wèn)題學(xué)生回答問(wèn)題等方式來(lái)進(jìn)行課程的導(dǎo)入;學(xué)習(xí)目標(biāo)的主要作用是在教學(xué)過(guò)程中讓學(xué)生充分且清晰地了解課程要到達(dá)一個(gè)什么程度的教學(xué)目標(biāo),便于學(xué)生在學(xué)習(xí)相關(guān)知識(shí)過(guò)程中掌握重點(diǎn)、難點(diǎn)知識(shí),在這一環(huán)節(jié)中,可以通過(guò)板書(shū)或PPT展示等方式來(lái)呈現(xiàn);前測(cè)的主要作用是在教學(xué)過(guò)程中讓教師能夠充分地了解學(xué)生對(duì)與課程相關(guān)的基礎(chǔ)知識(shí)的掌握程度,以便能夠根據(jù)學(xué)生的具體掌握程度調(diào)整后續(xù)教學(xué)內(nèi)容的相關(guān)細(xì)節(jié),在這一環(huán)節(jié)中,可以采用一些簡(jiǎn)單的小測(cè)試或教師提問(wèn)問(wèn)題學(xué)生回答問(wèn)題等方式進(jìn)行[6-8]。
參與式學(xué)習(xí)的主要作用是在教學(xué)過(guò)程中讓學(xué)生積極參與教學(xué)活動(dòng)中,并高質(zhì)量地完成課程學(xué)習(xí),在這一環(huán)節(jié)中,可以采用專(zhuān)題研討、小組討論、實(shí)際案例分析等方式讓學(xué)生積極主動(dòng)地參與學(xué)習(xí)活動(dòng)中,這樣不僅能夠加深學(xué)生對(duì)所學(xué)課程相關(guān)知識(shí)的理解程度,同時(shí)也強(qiáng)化了學(xué)生的語(yǔ)言表達(dá)能力、溝通能力以及相互之間的合作能力等素質(zhì)的培養(yǎng);后測(cè)的主要作用是在教學(xué)過(guò)程中讓教師準(zhǔn)確地評(píng)估學(xué)生是否精準(zhǔn)地達(dá)到了學(xué)習(xí)目標(biāo),在這一環(huán)節(jié)中,可以通過(guò)一些簡(jiǎn)單的小測(cè)驗(yàn)、教師提問(wèn)問(wèn)題學(xué)生回答問(wèn)題或做與本節(jié)課知識(shí)相關(guān)的習(xí)題等方式對(duì)教學(xué)效果進(jìn)行評(píng)估,并根據(jù)評(píng)估結(jié)果進(jìn)行教學(xué)反思,以便能夠及時(shí)、高效、精準(zhǔn)地調(diào)整下一步的教學(xué)內(nèi)容,從而更好地達(dá)成課程教學(xué)目標(biāo);總結(jié)的主要作用是在教學(xué)過(guò)程中對(duì)所講述課程內(nèi)容的重點(diǎn)知識(shí)以及難點(diǎn)知識(shí)進(jìn)行簡(jiǎn)要的概括,以此加深學(xué)生對(duì)所學(xué)重點(diǎn)知識(shí)以及難點(diǎn)知識(shí)的印象,在這一環(huán)節(jié)中,可以利用PPT展示等方法開(kāi)展此環(huán)節(jié)[9]??偟膩?lái)看,BOPPPS教學(xué)模型在教學(xué)過(guò)程中不但能夠有效地激發(fā)學(xué)生學(xué)習(xí)知識(shí)的興趣、通過(guò)課堂互動(dòng)的方式提高學(xué)生參與度,還能有效、充分地幫助教師了解學(xué)生在課程學(xué)習(xí)后達(dá)到了一個(gè)什么程度的學(xué)習(xí)效果,進(jìn)一步為提升教學(xué)質(zhì)量做了堅(jiān)實(shí)的鋪墊[10]。
2 BOPPPS教學(xué)模型在算法設(shè)計(jì)與分析教學(xué)中的應(yīng)用
BOPPPS教學(xué)模型是教師在教學(xué)活動(dòng)中較為常用且有效的教學(xué)模式之一。據(jù)此,本文在借鑒現(xiàn)有文獻(xiàn)[2-10]的基礎(chǔ)上,以算法設(shè)計(jì)與分析課程中“貪心算法”為例,將BOPPPS教學(xué)模型應(yīng)用到算法設(shè)計(jì)與分析教學(xué)活動(dòng)中。貪心算法內(nèi)容抽象且較難理解,是算法設(shè)計(jì)與分析課程中的重點(diǎn)、難點(diǎn)內(nèi)容之一,因此在課前學(xué)生應(yīng)做到提前預(yù)習(xí)本次課的相關(guān)知識(shí)內(nèi)容,以便學(xué)生在教學(xué)活動(dòng)中能夠?qū)λ鶎W(xué)知識(shí)有更深層次的理解。
2.1 導(dǎo)言
有效的課程導(dǎo)入能夠調(diào)動(dòng)學(xué)生對(duì)課程相關(guān)知識(shí)的學(xué)習(xí)興趣,從而進(jìn)一步激發(fā)學(xué)生主動(dòng)獲取與課程相關(guān)知識(shí)的欲望。為了能夠高效地調(diào)動(dòng)學(xué)生學(xué)習(xí)本次課程相關(guān)知識(shí)的興趣,首先給出如下問(wèn)題的描述,假設(shè)1元、2元、5元、10元、20元、50元、100元的紙幣張數(shù)不受限制,現(xiàn)在要用這些面值的紙幣來(lái)支付一件K 元的商品,應(yīng)如何選擇不同面值的紙幣來(lái)支付才能使得所需紙幣的張數(shù)最少?在學(xué)生明確問(wèn)題描述的基礎(chǔ)上,要引導(dǎo)學(xué)生為了盡可能多地減少所使用紙幣的數(shù)量,應(yīng)盡可能地優(yōu)先使用大面值的紙幣,也就是說(shuō)首先應(yīng)盡可能多地使用100元紙幣來(lái)進(jìn)行支付商品,以此類(lèi)推,直至所選紙幣面值達(dá)到K元為止。進(jìn)一步向?qū)W生說(shuō)明,這個(gè)方法其實(shí)就是貪心算法,從而引出了本節(jié)課的教學(xué)內(nèi)容“貪心算法”。利用具有實(shí)際應(yīng)用背景的問(wèn)題為基礎(chǔ)引出教學(xué)內(nèi)容不僅能夠激發(fā)學(xué)生學(xué)習(xí)課程相關(guān)知識(shí)的興趣,還能讓學(xué)生知道課程的重要性以及在現(xiàn)實(shí)生活中如何應(yīng)用。
2.2 學(xué)習(xí)目標(biāo)
在學(xué)習(xí)目標(biāo)環(huán)節(jié),通過(guò)PPT展示的方式讓學(xué)生了解課程學(xué)習(xí)的目標(biāo)。本次課的學(xué)習(xí)目標(biāo)可以概括為以下幾個(gè)方面:
1) 知識(shí)目標(biāo):了解貪心算法的概念;掌握貪心算法的基本要素;掌握貪心算法的設(shè)計(jì)策略。
2) 能力目標(biāo):能夠利用貪心算法的設(shè)計(jì)策略解決實(shí)際問(wèn)題。
3) 情感目標(biāo):通過(guò)對(duì)貪心算法的學(xué)習(xí),培養(yǎng)學(xué)生具有嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度、一定的創(chuàng)新思維以及獨(dú)立思考的基本能力。
2.3 前測(cè)
在前測(cè)環(huán)節(jié),以提問(wèn)的方式了解學(xué)生對(duì)與本次課程相關(guān)的基礎(chǔ)知識(shí)的掌握情況。首先,讓學(xué)生回答一些與上一章所學(xué)知識(shí)相關(guān)的問(wèn)題,例如動(dòng)態(tài)規(guī)劃算法的概念描述是什么、動(dòng)態(tài)規(guī)劃算法的基本要素有哪些以及0-1背包問(wèn)題的問(wèn)題描述是什么,這一過(guò)程不但能夠讓教師清晰地了解學(xué)生對(duì)基礎(chǔ)知識(shí)或之前學(xué)過(guò)的知識(shí)的掌握情況,還能幫助學(xué)生鞏固所學(xué)過(guò)的相關(guān)知識(shí);其次,隨機(jī)抽查學(xué)生課前預(yù)習(xí)的情況,這樣有助于教師根據(jù)學(xué)生的實(shí)際預(yù)習(xí)情況更好地調(diào)整后續(xù)教學(xué)的細(xì)節(jié),以便能夠高效地完成本次課的相關(guān)教學(xué)內(nèi)容。
2.4 參與式學(xué)習(xí)
在參與式學(xué)習(xí)環(huán)節(jié),首先給出貪心算法的概念,在給出貪心算法的概念后指出貪心法一般可以用于求一個(gè)問(wèn)題在某種意義下的最優(yōu)解,并讓學(xué)生結(jié)合導(dǎo)言環(huán)節(jié)的實(shí)例分組討論哪些問(wèn)題適合用貪心算法解決。經(jīng)過(guò)學(xué)生討論后,可以對(duì)學(xué)生進(jìn)行提問(wèn),抽查學(xué)生討論的情況,基于學(xué)生討論的情況指出適合采用貪心算法解決的問(wèn)題應(yīng)該具備最優(yōu)子結(jié)構(gòu)性質(zhì)和貪心選擇性質(zhì),進(jìn)一步給出這兩個(gè)性質(zhì)概念的描述。以上設(shè)計(jì)能夠有效地培養(yǎng)學(xué)生獨(dú)立思考的基本能力,激發(fā)學(xué)生主動(dòng)學(xué)習(xí)算法設(shè)計(jì)與分析的興趣,同時(shí)也強(qiáng)化了學(xué)生之間的溝通交流能力、語(yǔ)言表達(dá)能力以及合作能力等綜合素質(zhì)的培養(yǎng)。
在給出貪心算法的概念描述以及貪心算法的基本要素后,給出背包問(wèn)題的描述。并基于背包問(wèn)題的描述進(jìn)一步結(jié)合以下實(shí)例:背包容量為100千克,物品個(gè)數(shù)為3個(gè),這三個(gè)物品的重量分別為30千克、50千克、70千克,這三個(gè)物品的價(jià)值分別為90元、100元、130元,讓學(xué)生思考如何選擇物品裝入背包,能夠使得裝入背包中的物品的總價(jià)值最大。經(jīng)過(guò)學(xué)生思考后,以提問(wèn)的方式了解學(xué)生的思考結(jié)果,并指出如果用貪心算法解決該問(wèn)題,應(yīng)每次選單位重量?jī)r(jià)值(即價(jià)值與重量的比值)最大的物品放進(jìn)背包可以得到問(wèn)題的最優(yōu)解。進(jìn)一步讓學(xué)生分組討論,如果是0-1背包問(wèn)題,以上實(shí)例用貪心算法是否能夠得到最優(yōu)解。經(jīng)過(guò)學(xué)生討論后,通過(guò)邊啟發(fā)邊講解的方式指出,對(duì)于該實(shí)例如果是0-1背包問(wèn)題,貪心算法裝入背包的價(jià)值為190元,但最優(yōu)值是220元。最后結(jié)合以上實(shí)例指出,貪心算法并不一定能夠讓所有的問(wèn)題都能得到整體最優(yōu)解,貪心算法是否能夠得到一個(gè)問(wèn)題的優(yōu)化解,需要經(jīng)過(guò)嚴(yán)格的證明。
在學(xué)生掌握基本概念的基礎(chǔ)上,以應(yīng)用范例的方式對(duì)所學(xué)的知識(shí)進(jìn)行進(jìn)一步鞏固。在PPT上展示“活動(dòng)安排問(wèn)題”范例,并對(duì)活動(dòng)安排問(wèn)題的問(wèn)題描述做詳細(xì)講解,在此過(guò)程中可以邊舉例、邊講解、邊提問(wèn),這樣能夠充分讓學(xué)生參與到課堂教學(xué)中,加深學(xué)生對(duì)活動(dòng)安排問(wèn)題的理解。
在學(xué)生充分理解活動(dòng)安排問(wèn)題的基礎(chǔ)上,讓學(xué)生結(jié)合背包問(wèn)題思考如何用貪心算法思想解決活動(dòng)安排問(wèn)題。經(jīng)過(guò)學(xué)生思考后,以提問(wèn)的方式了解學(xué)生對(duì)該問(wèn)題的解題思路,并基于學(xué)生的反饋結(jié)果,對(duì)該問(wèn)題進(jìn)行講解。在講解過(guò)程中,應(yīng)以逐步引導(dǎo)的方式指出,對(duì)于該問(wèn)題的貪心思想可描述如下:為了能夠選擇出最多的相容活動(dòng),每次對(duì)活動(dòng)進(jìn)行選擇時(shí),應(yīng)選擇活動(dòng)結(jié)束時(shí)間最少的活動(dòng),這樣才能使剩余的可安排活動(dòng)時(shí)間盡可能地極大化,以便接待更多的相容活動(dòng)。在指出該問(wèn)題的貪心思想后,給出該問(wèn)題的貪心算法描述,并對(duì)算法的描述進(jìn)行詳細(xì)的解析,在解析過(guò)程中,可以結(jié)合具體活動(dòng)安排的實(shí)例進(jìn)行講解,以便學(xué)生對(duì)算法的描述能夠獲得更深層次的理解。在給出算法的描述后,以提問(wèn)的方式讓學(xué)生對(duì)算法的時(shí)間復(fù)雜性進(jìn)行分析,這樣不但能夠復(fù)習(xí)時(shí)間復(fù)雜性的分析理論、方法以及技術(shù),還能進(jìn)一步加深學(xué)生對(duì)活動(dòng)安排問(wèn)題算法思想的理解。
最后,設(shè)置思考環(huán)節(jié),讓學(xué)生思考如何對(duì)活動(dòng)安排問(wèn)題的貪心算法的正確性進(jìn)行證明,經(jīng)過(guò)學(xué)生思考后,給出相應(yīng)的證明。此環(huán)節(jié)不但能夠讓學(xué)生多方位參與到教學(xué)活動(dòng)中,從而掌握相關(guān)知識(shí)、高質(zhì)量完成課程學(xué)習(xí),還能在一定程度上培養(yǎng)學(xué)生的創(chuàng)新能力。
2.5 后測(cè)
在后測(cè)環(huán)節(jié),通過(guò)練習(xí)題的方式檢驗(yàn)是否達(dá)到學(xué)習(xí)目標(biāo)。在做練習(xí)題之前,首先讓學(xué)生總結(jié)貪心算法與動(dòng)態(tài)規(guī)劃算法的相同之處與不同之處,進(jìn)一步給出如下習(xí)題:有一批集裝箱需要裝到一艘載重量為G 的輪船。在這些集裝箱中,每個(gè)集裝箱都有相應(yīng)的重量,第n 個(gè)集裝箱的重量可表示為wn,在裝載體積沒(méi)有受限制的情況下,應(yīng)如何裝載才能將盡可能多的集裝箱裝上輪船。
2.6 總結(jié)
在總結(jié)環(huán)節(jié),利用PPT展示的方式總結(jié)本節(jié)課的主要內(nèi)容。首先,圍繞應(yīng)用范例活動(dòng)安排問(wèn)題對(duì)貪心算法的概念、貪心算法的基本要素、貪心算法設(shè)計(jì)策略等內(nèi)容進(jìn)行概括,以此來(lái)加深學(xué)生對(duì)相關(guān)知識(shí)的記憶;其次,讓學(xué)生自我總結(jié)學(xué)習(xí)收獲以及學(xué)習(xí)心得,以作業(yè)形式上交,這樣有助于幫助教師掌握學(xué)生在本次課的收獲,以便為后續(xù)教學(xué)做準(zhǔn)備,從而達(dá)到進(jìn)一步提高教學(xué)質(zhì)量的目標(biāo)。
3 應(yīng)用反思
探索更加高效的算法設(shè)計(jì)與分析課程教學(xué)模式,一直都是計(jì)算機(jī)科學(xué)與技術(shù)、物聯(lián)網(wǎng)工程、軟件工程等相關(guān)專(zhuān)業(yè)教師努力的方向之一。當(dāng)BOPPPS教學(xué)模型應(yīng)用到算法設(shè)計(jì)與分析課程教學(xué)活動(dòng)中,要達(dá)成高質(zhì)量的教學(xué)目標(biāo),還應(yīng)注意以下幾個(gè)要點(diǎn):1) 無(wú)論是教師還是學(xué)生,在課前都要做好充分的教學(xué)準(zhǔn)備。2) 要做到有效的課程導(dǎo)入。3) 能夠讓學(xué)生清晰地明確學(xué)習(xí)目標(biāo)。4) 要通過(guò)學(xué)生目前知識(shí)的儲(chǔ)備情況調(diào)整教學(xué)活動(dòng)的細(xì)節(jié)。5) 要充分利用小組討論等方式讓學(xué)生積極參加到教學(xué)活動(dòng)中。6) 要設(shè)計(jì)合理的、有效的教學(xué)效果后側(cè)環(huán)節(jié)。7) 通過(guò)總結(jié)環(huán)節(jié)要讓學(xué)生對(duì)所學(xué)知識(shí)的印象更深刻。8) 在實(shí)際教學(xué)活動(dòng)中,BOPPPS教學(xué)模型的六個(gè)環(huán)節(jié)的順序可根據(jù)實(shí)際教學(xué)需要進(jìn)行調(diào)整。
4 結(jié)論
算法設(shè)計(jì)與分析是高等院校計(jì)算機(jī)科學(xué)與技術(shù)、物聯(lián)網(wǎng)工程、軟件工程等專(zhuān)業(yè)教學(xué)中的重要課程之一,學(xué)好算法設(shè)計(jì)與分析不但能夠鞏固之前所學(xué)過(guò)的一些課程,還能為學(xué)生學(xué)習(xí)后續(xù)相關(guān)課程打下堅(jiān)實(shí)的基礎(chǔ)。為了達(dá)到提高算法設(shè)計(jì)與分析課程教學(xué)質(zhì)量的目標(biāo),文章以“貪心算法”為例,將BOPPPS教學(xué)模型應(yīng)用到算法設(shè)計(jì)與分析的實(shí)際教學(xué)活動(dòng)中,在實(shí)際教學(xué)中BOPPPS教學(xué)模型更強(qiáng)調(diào)的是將學(xué)生作為教學(xué)活動(dòng)過(guò)程中的主體身份,能夠有效地將學(xué)生在學(xué)習(xí)過(guò)程中的被動(dòng)接受轉(zhuǎn)變?yōu)橹鲃?dòng)參與;除此之外,BOPPPS教學(xué)模型還為教師在教學(xué)活動(dòng)過(guò)程中提供了具體的實(shí)施步驟,這樣不僅讓教師明確了在課前備課過(guò)程中需要做哪些準(zhǔn)備,還能夠讓整個(gè)教學(xué)活動(dòng)更加系統(tǒng)化、條理化、完備化。綜上,將BOPPPS教學(xué)模型應(yīng)用到實(shí)際的教學(xué)活動(dòng)中,更能充分調(diào)動(dòng)學(xué)生學(xué)習(xí)課程相關(guān)知識(shí)的積極性,增強(qiáng)學(xué)生主動(dòng)學(xué)習(xí)課程相關(guān)知識(shí)的欲望,從而高效地提升教師的講授效果以及學(xué)生的學(xué)習(xí)效果,進(jìn)一步達(dá)到提高教學(xué)質(zhì)量的目標(biāo)。