張 平,劉福東
(中國人民解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué),河南 鄭州 45000)
問題導(dǎo)向教學(xué)法是一種啟發(fā)式教學(xué)方法,其思想是教師將教學(xué)內(nèi)容以問題的形式呈現(xiàn)在學(xué)生面前,讓學(xué)生在尋求、探索解決問題的思維活動中,掌握知識、發(fā)展智力、培養(yǎng)技能,進(jìn)而培養(yǎng)學(xué)生自己發(fā)現(xiàn)問題、解決問題的能力。問題導(dǎo)向教學(xué)方法將解決問題作為教學(xué)的基本過程,可以采用教師帶領(lǐng)學(xué)生解決課題、教師和學(xué)生共同解決問題和學(xué)生獨(dú)立探索解決問題等不同方式,使教學(xué)成為有明確目的、能發(fā)揮學(xué)生主觀能動性的過程[1]。
以網(wǎng)絡(luò)技術(shù)為核心的信息技術(shù)飛速發(fā)展,推動著教育的變革與創(chuàng)新,給教育工作者帶來了全新的挑戰(zhàn)和機(jī)遇。信息技術(shù)改變著傳統(tǒng)的教育模式,MOOC、SPOC 迅速發(fā)展,使教學(xué)過程不再局限于教室和課堂,因此被教育工作者推崇為一把教學(xué)改革的利劍。在新的時代背景下,如何應(yīng)用這些新技術(shù)、新手段,探索新的教育教學(xué)模式,如何將新思想、新理念融入教學(xué)改革,提高教學(xué)質(zhì)量,培養(yǎng)創(chuàng)新人才,成為每個教育工作者都必須思考的問題。
數(shù)據(jù)結(jié)構(gòu)是計算機(jī)及相關(guān)學(xué)科專業(yè)的核心專業(yè)基礎(chǔ)課,對夯實(shí)學(xué)生的計算機(jī)編程基礎(chǔ)和培養(yǎng)計算思維能力起到重要的作用。數(shù)據(jù)結(jié)構(gòu)討論的理論知識和技術(shù)方法,無論對進(jìn)一步學(xué)習(xí)計算機(jī)領(lǐng)域的其他專業(yè)課程,還是對從事軟硬件項(xiàng)目開發(fā),都是重要而必備的基礎(chǔ)[2]。傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)主要存在以下問題。
(1)從教學(xué)內(nèi)容上看,數(shù)據(jù)結(jié)構(gòu)具有理論抽象程度高、應(yīng)用實(shí)踐性強(qiáng),要求“理論”緊密聯(lián)系“實(shí)踐”的特點(diǎn)。以往教學(xué)重點(diǎn)放在知識點(diǎn)的講解上,而數(shù)據(jù)結(jié)構(gòu)的邏輯性較強(qiáng),因此出現(xiàn)了原理、思想聽懂易,算法、實(shí)現(xiàn)掌握難,學(xué)生課上聽得懂、課下不會用的問題。
(2)從教學(xué)形式上看,以往的教學(xué)模式是以教師課堂講授為主,存在教與學(xué)分離的問題,教師認(rèn)真講,學(xué)生被動接受,學(xué)生的主動性、創(chuàng)造性難以激活,知識內(nèi)化滯后。師生互動少,教師難以準(zhǔn)確掌握學(xué)生的學(xué)習(xí)情況,影響課程的教學(xué)效果[3]。
(3)從教學(xué)安排上看,數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容較多,課堂主要用來講授概念和理論知識,整個課程的實(shí)踐學(xué)時較少,沒有真正做到理論在實(shí)踐的應(yīng)用,難以培養(yǎng)學(xué)生的動手能力、分析問題和解決問題的能力。
(4)數(shù)據(jù)結(jié)構(gòu)課程在大二上學(xué)期開設(shè),學(xué)生在學(xué)習(xí)方式上還沒有完全實(shí)現(xiàn)高中生到大學(xué)生的轉(zhuǎn)變,沒有完全改掉現(xiàn)行高考體制下形成的靠刷題獲取高分的不良習(xí)慣,在學(xué)習(xí)方法上還存在一定問題,需要盡早引導(dǎo)和改變。
數(shù)據(jù)結(jié)構(gòu)混合式教學(xué)模式以現(xiàn)代信息技術(shù)為依托,融入問題導(dǎo)向的教學(xué)理念,打破了傳統(tǒng)教育課堂的時空界限,將教學(xué)活動設(shè)計為課前、課堂、課后螺旋迭代上升3 個階段,使整個教學(xué)過程多維化、立體化,學(xué)生的學(xué)習(xí)體驗(yàn)更加豐富,學(xué)習(xí)與討論相結(jié)合,學(xué)習(xí)與測試相結(jié)合,學(xué)習(xí)與應(yīng)用相結(jié)合,學(xué)生全程參與到教學(xué)過程之中,成為教學(xué)活動的主體,而教師成為整個教學(xué)過程的設(shè)計者、主導(dǎo)者、推進(jìn)者和監(jiān)督者。教學(xué)過程見圖1。
圖1 基于問題導(dǎo)向混合式教學(xué)過程
整個教學(xué)過程應(yīng)用清華大學(xué)學(xué)堂在線的雨課堂作為線上教學(xué)平臺,北京大學(xué)Openjudge 作為在線練習(xí)和測試平臺,實(shí)現(xiàn)線上和線下的有機(jī)混合。
課前階段是學(xué)生的自主學(xué)習(xí)階段,主要是知識型內(nèi)容,目的是將學(xué)生的知識學(xué)習(xí)過程提前,使學(xué)生有更多的時間用于知識的理解和運(yùn)用,提高分析問題、解決問題和創(chuàng)新工作能力。
課前教師提前利用雨課堂發(fā)布教學(xué)內(nèi)容和要求,將內(nèi)容劃分為知識點(diǎn),以PPT 課件、短視頻、算法動畫演示、參考資料等形式發(fā)布給學(xué)生,這些教學(xué)資源既有自主建設(shè)的,也有名校名師的優(yōu)質(zhì)教學(xué)資源,例如浙江大學(xué)陳越教授的國家精品課程數(shù)據(jù)結(jié)構(gòu)MOOC 視頻、清華大學(xué)鄧俊輝教授的數(shù)據(jù)結(jié)構(gòu)與算法教學(xué)視頻等,結(jié)合每次課的教學(xué)內(nèi)容有選擇地推薦給學(xué)生。
課前階段的關(guān)鍵是問題的提出,這個階段主要是針對知識點(diǎn)的問題,這些問題既是對學(xué)生自學(xué)的要求、也是對自學(xué)的指導(dǎo),更是檢測自學(xué)效果的依據(jù),這就要求每個問題是明確、可回答、可操作的。因此,如何提問直接影響學(xué)習(xí)的效果,這個問題在第3 節(jié)進(jìn)行討論。
課前自主學(xué)習(xí)會根據(jù)知識的難易程度,采用個人學(xué)習(xí)、分組學(xué)習(xí)等不同形式,既能培養(yǎng)學(xué)生的自學(xué)能力,也使學(xué)生共同開展學(xué)習(xí)活動,從而實(shí)現(xiàn)一種最優(yōu)化的學(xué)習(xí)方式。
自主學(xué)習(xí)將基礎(chǔ)知識學(xué)習(xí)過程前移,使課堂有更多的時間深入應(yīng)用教學(xué)內(nèi)容。課堂上以精心設(shè)計的教學(xué)活動為載體,組織學(xué)生對課前學(xué)到的基礎(chǔ)知識進(jìn)行鞏固深入和靈活運(yùn)用,拓寬知識面。課堂教學(xué)采用雨課堂現(xiàn)場測試、提問、討論、匯報等多種方式,主要完成3 個目標(biāo):自主學(xué)習(xí)成果評測、答疑解惑、知識運(yùn)用和拓展思考,相應(yīng)形成了課堂的3 個組成部分。
2.2.1 自主學(xué)習(xí)成果評測
每次課會用15~20 分鐘,考核和測評學(xué)生自主學(xué)習(xí)的情況,既是對學(xué)生學(xué)習(xí)情況的檢查,也是激勵學(xué)習(xí)的過程。考核的形式有雨課堂的在線測試、教師的提問和學(xué)生的匯報。其中雨課堂的在線測試是一個非常好的工具,可以針對知識點(diǎn)設(shè)計題目,形式可以是客觀題,也可以是主觀題,學(xué)生現(xiàn)場答題、現(xiàn)場出分,并以可視化的形式展示答題情況,即時反饋學(xué)習(xí)效果,使教師及時了解學(xué)生的學(xué)習(xí)情況,調(diào)整課堂教學(xué)的節(jié)奏。而且,雨課堂對課程教學(xué)的數(shù)據(jù)進(jìn)行全程管理,使教師深入了解每個學(xué)生的學(xué)習(xí)動態(tài)(學(xué)習(xí)時間、學(xué)習(xí)效果、存在問題),在指導(dǎo)上做到有的放矢。
2.2.2 答疑解惑
答疑解惑是教師針對測試發(fā)現(xiàn)的典型的、普遍的、有代表性的問題,有針對性地講解,或者提出問題引導(dǎo)學(xué)生討論。教師將課程教學(xué)內(nèi)容劃分為3 級139 個知識點(diǎn),針對每個點(diǎn)設(shè)計一系列的測試題目[4],并標(biāo)注相應(yīng)要點(diǎn),通過測試可以很好地掌握學(xué)生的學(xué)習(xí)效果,即時發(fā)現(xiàn)問題,即時解決問題。
2.2.3 知識運(yùn)用
在數(shù)據(jù)結(jié)構(gòu)混合式教學(xué)模式下,將知識運(yùn)用作為教學(xué)的核心,針對每次課的教學(xué)內(nèi)容,通過設(shè)置應(yīng)用場景,提出需求,引導(dǎo)學(xué)生提煉問題,進(jìn)而分析問題、解決問題,付諸實(shí)踐,再提出新問題,使學(xué)生的思維始終和課堂節(jié)奏保持一致,處于一種螺旋上升的狀態(tài)。在教學(xué)過程中以問題為中心,形成師生互動、生生互動,以提問、討論、辯論、頭腦風(fēng)暴等多種方式,增加互動的實(shí)用性和趣味性。
課后的學(xué)習(xí)任務(wù)是融匯貫通和加深鞏固。教師每次課后會在OpenJudge 在線測試平臺上發(fā)布測試和練習(xí)題(算法和程序設(shè)計題),平臺會對學(xué)生提交的算法程序進(jìn)行測試,給出運(yùn)行測試結(jié)果,平臺會給出班級學(xué)生的答題情況列表,激發(fā)學(xué)生的競爭意識,促進(jìn)學(xué)習(xí)。教師還會在章節(jié)內(nèi)容完成后發(fā)布章節(jié)測試,檢查學(xué)習(xí)情況。在這個階段引入ACM 競賽、數(shù)學(xué)建模競賽的題目,讓有能力的學(xué)生學(xué)得更深、走得更遠(yuǎn)。
課前問題用于引導(dǎo)學(xué)生自主學(xué)習(xí),而學(xué)習(xí)主要以知識點(diǎn)的理解和記憶為主,提出的是引導(dǎo)性問題。例如在學(xué)習(xí)線性表時,首先會在一級知識點(diǎn)線性表層面上提出問題,如線性表中數(shù)據(jù)元素間是什么樣的邏輯關(guān)系?描述線性表的邏輯結(jié)構(gòu)?舉出3 個生活中可以用線性表表示的例子等。在二級知識點(diǎn)順序表層面上會提問題,如用C 語言寫出順序表的存儲結(jié)構(gòu);說明順序表的優(yōu)點(diǎn)和缺點(diǎn);什么情況下選擇使用順序表。在三級知識點(diǎn)鏈表的插入運(yùn)算時提出:實(shí)現(xiàn)在給定節(jié)點(diǎn)后插入算法,分析時間復(fù)雜度;實(shí)現(xiàn)在給定節(jié)點(diǎn)前插入算法,分析時間復(fù)雜度;如何改進(jìn)后插算法,將復(fù)雜度由O(n)降到O(1),寫出相應(yīng)算法。
課前問題實(shí)際上形成了學(xué)生自主學(xué)習(xí)的任務(wù)單,一步步引導(dǎo)學(xué)生學(xué)習(xí)教師發(fā)布的課件、視頻等教學(xué)資源,回答問題,完成任務(wù),理解和掌握課程內(nèi)容。
課堂以設(shè)定應(yīng)用場景,實(shí)現(xiàn)知識的運(yùn)用和深化為主要目標(biāo),課堂問題以應(yīng)用問題為主。例如,學(xué)習(xí)循環(huán)鏈表的時候,從猶太科學(xué)家約瑟夫的故事開始,提出約瑟夫環(huán)的問題:n個人排成一圈;從某個人開始,按順時針方向依次編號;從編號為1 的人開始順時針報數(shù),報到m的人退出圈子;下面的人再從1 開始報數(shù),報到m退出;這樣不斷循環(huán)下去,圈子里的人將不斷減少;由于人的個數(shù)是有限的,因此最終會剩下一個人;試問最后剩下的人最開始的編號。
這個問題,學(xué)生自然會考慮用循環(huán)鏈表來實(shí)現(xiàn),那么接下來,采用什么樣的存儲方式呢?選擇靜態(tài)鏈表還是動態(tài)鏈表呢?學(xué)生會有兩種不同選擇,教師再針對兩種情況分別討論。
如果選擇靜態(tài)鏈表,那么如何標(biāo)注退出的人?如何定義數(shù)據(jù)結(jié)構(gòu)?如何實(shí)現(xiàn)算法?
如果采用動態(tài)鏈表,那么如何記錄初始序號?如何處理退出的人?如何實(shí)現(xiàn)算法?
這樣分析問題、解決問題的過程實(shí)質(zhì)上就是學(xué)生理解知識、運(yùn)用知識的過程,通過這個應(yīng)用場景,學(xué)生進(jìn)一步理解了線性表的邏輯結(jié)構(gòu)、循環(huán)表的邏輯結(jié)構(gòu),針對邏輯結(jié)構(gòu)可以采用不用的存儲結(jié)構(gòu),而具體的算法實(shí)現(xiàn)要依賴于存儲結(jié)構(gòu);學(xué)會了根據(jù)具體問題的需要定義自己的數(shù)據(jù)元素和數(shù)據(jù)結(jié)構(gòu)。
在學(xué)習(xí)最短路徑時,學(xué)生在課下自主學(xué)習(xí)了最短路徑算法,課堂主要是學(xué)生的討論和應(yīng)用,讓學(xué)生分組討論旅游路線規(guī)劃問題,設(shè)計并實(shí)現(xiàn)校園游覽導(dǎo)航系統(tǒng)。學(xué)生在應(yīng)用經(jīng)典最短路徑算法的基礎(chǔ)上,還考慮了路徑的不同屬性,如人行或車行、人員的不同特點(diǎn)及時間屬性等,達(dá)到了對課程知識的深入理解和靈活運(yùn)用。
課后的問題主要包括3 個方面:實(shí)踐、測試、拓展。
實(shí)踐主要是針對知識點(diǎn)相關(guān)算法的設(shè)計與實(shí)現(xiàn),主要在OpenJudge 在線測試平臺上完成。學(xué)生在線編程、提交和測試,實(shí)時得到結(jié)果,并可以看到本班組同學(xué)的學(xué)習(xí)情況,這對學(xué)生是一個很好的激勵[5]。
測試是以單元測試形式完成的,用于進(jìn)一步了解學(xué)生對知識掌握的情況,是形成性成績的重要內(nèi)容,針對學(xué)生的學(xué)習(xí)情況,教師可以有針對性地進(jìn)行輔導(dǎo)。
拓展問題是在課堂知識掌握的基礎(chǔ)上,針對有能力的學(xué)生,讓其課后進(jìn)一步思考和探索的問題,目的在于培養(yǎng)學(xué)生的創(chuàng)新能力。比如在學(xué)習(xí)搜索算法時,引導(dǎo)有能力的學(xué)生去查閱資料,分析大數(shù)據(jù)搜索問題、搜索引擎采用的算法等。
我們2018 年在計算機(jī)科學(xué)技術(shù)和信息安全的兩個專業(yè)班開展了基于問題牽引的混合式教學(xué)模式實(shí)踐,在教學(xué)結(jié)束后與常規(guī)教學(xué)班進(jìn)行了對比,對比的內(nèi)容包括:期中和期末的平均考試成績、參加程序設(shè)計類學(xué)科競賽的人數(shù)、學(xué)生對課程學(xué)習(xí)的滿意度等幾個方面,結(jié)果見圖2 和圖3。雖然對比的內(nèi)容比較粗糙,但結(jié)果表明試點(diǎn)班的學(xué)習(xí)效果明顯優(yōu)于常規(guī)教學(xué)班。
圖2 2018 年混合式教學(xué)和常規(guī)教學(xué)效果對比圖
圖3 2019 年混合式教學(xué)和常規(guī)教學(xué)效果對比圖
將問題導(dǎo)向教學(xué)方法和線上線下混合式教學(xué)模式有機(jī)結(jié)合,可以從教學(xué)形式上和內(nèi)容上使學(xué)生真正融入整個教學(xué)過程,成為教學(xué)的主體,既有行為參與又有思維參與,打破常規(guī)教學(xué)的沉悶氣氛,形成教師與學(xué)生間的雙向交流。從實(shí)際的教學(xué)效果看,這種教學(xué)方法能有效激發(fā)學(xué)生求知欲和學(xué)習(xí)興趣,提高自主學(xué)習(xí)能力。學(xué)生在課程學(xué)習(xí)之后,能夠?qū)σ恍?shí)際問題進(jìn)行分析建模,進(jìn)而設(shè)計相應(yīng)的數(shù)據(jù)結(jié)構(gòu)和算法來解決問題,使學(xué)生在解決問題中實(shí)現(xiàn)自我提高。為了更好地滿足教學(xué)的需要,我們還需要進(jìn)一步探索和實(shí)踐:如何更好地實(shí)現(xiàn)線上和線下的結(jié)合,如何設(shè)置問題更好地引導(dǎo)學(xué)生學(xué)習(xí),如何更好地利用在線教學(xué)平臺和測試平臺的監(jiān)控數(shù)據(jù)為學(xué)生提供有針對性的指導(dǎo)等。