王賀哲

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