(安徽大學(xué)計算機科學(xué)與技術(shù)學(xué)院,安徽 合肥230601)
《匯編語言程序設(shè)計》作為計算機科學(xué)與技術(shù)專業(yè)的核心基礎(chǔ)課程,綜合了計算機硬件和軟件技術(shù),具有很強的系統(tǒng)性,是培養(yǎng)學(xué)生專業(yè)技能水平的重要課程[1]。近年來,為了提高教學(xué)質(zhì)量,激發(fā)學(xué)生學(xué)習(xí)興趣,我們嘗試使用了“互動式編程”教學(xué)法進(jìn)行授課,具體為:教師首先通過一個簡短的實踐編程練習(xí)來引入新的課程內(nèi)容,在此基礎(chǔ)上,通過擴展練習(xí),強化所學(xué)知識。然后,教師繼續(xù)下一個知識點,循環(huán)重復(fù)。為了幫助學(xué)生構(gòu)建不同知識點間的關(guān)聯(lián),在課后,通常會安排一些具有一定綜合性的編程練習(xí)作業(yè),教師將會根據(jù)學(xué)生的反饋,在課堂上有針對性地進(jìn)行補缺補差。雖然這種互動式教學(xué)法比傳統(tǒng)的填鴨式教學(xué)法更為有效,但仍存在一些問題。比如:在最初的幾次理論課中,如果有的學(xué)生無法理解一些基礎(chǔ)概念,他們將難以順利完成隨后的編程練習(xí)。對這些學(xué)生來說,這門課很快就陷入了一種惡性循環(huán):脫節(jié)——表現(xiàn)不佳——缺乏自信——進(jìn)一步脫節(jié)。
為了能夠增強學(xué)生對課程內(nèi)容的參與度,提高學(xué)生的學(xué)習(xí)主動性,早在2000年,Lage等人就提出了“翻轉(zhuǎn)課堂”的概念[2];2012 年,Bergmann 等人將這一概念成功應(yīng)用到化學(xué)教學(xué)中[3]。目前,隨著基于網(wǎng)絡(luò)授課技術(shù)的成功開展,翻轉(zhuǎn)課堂教學(xué)模式在北美的教育機構(gòu)中獲得了廣泛的關(guān)注,且涵蓋了不同學(xué)科與不同教學(xué)對象。教學(xué)實踐驗證,采用了這種教學(xué)模式的班級具有失敗率低、教學(xué)手段靈活、學(xué)生學(xué)習(xí)效果好等優(yōu)點。因此,翻轉(zhuǎn)課堂教學(xué)模式已經(jīng)成為教育技術(shù)領(lǐng)域的一個主要趨勢[4]。本文中,作者根據(jù)《匯編語言程序設(shè)計》課程特點,結(jié)合多年教學(xué)經(jīng)驗,提出了基于結(jié)對編程的翻轉(zhuǎn)課堂教學(xué)模式。
在傳統(tǒng)的以教師為中心的課堂上,普遍采用的是“傳遞→接受→模仿”教學(xué)模式。該模式通常采用理論講授、課后作業(yè)、編程練習(xí)及綜合實踐等環(huán)節(jié)實施教學(xué),其優(yōu)點是教師可以較好地把握教學(xué)過程的組織、問題的解決及進(jìn)度控制等,便于在實驗教學(xué)中發(fā)揮教師的主導(dǎo)作用。然而,該模式卻降低了學(xué)生在教學(xué)實施過程中的認(rèn)知主體地位,遏制了其主觀能動性與創(chuàng)造性的發(fā)揮[5]。因此,傳統(tǒng)教學(xué)模式所帶來的弊端是:逐步養(yǎng)成學(xué)生的思維惰性,使其形成對教科書與教師講授內(nèi)容的盲目“崇拜”,嚴(yán)重阻礙了他們發(fā)散思維與逆向思維的訓(xùn)練。相較于傳統(tǒng)教學(xué)模式,在翻轉(zhuǎn)課堂上,教學(xué)實施步驟發(fā)生了較大改變,兩者的主要區(qū)別如圖1所示。
圖1 傳統(tǒng)教學(xué)模式與基于結(jié)對編程的翻轉(zhuǎn)課堂模式區(qū)別示意圖
在結(jié)對編程翻轉(zhuǎn)課堂教學(xué)模式下,教師在課前以預(yù)先錄制的視頻的形式“講授”課程,并把課堂的時間花在讓學(xué)生參與涉及協(xié)作和互動的主動學(xué)習(xí)活動上,即傳統(tǒng)被動授課被推到課外,在課堂上通過結(jié)對編程實現(xiàn)學(xué)生的主動學(xué)習(xí)活動。所謂“結(jié)對編程”是指兩位程序員結(jié)成一互助對,一人輸入代碼,一人口述程序,兩人使用同一臺電腦進(jìn)行編程。結(jié)對編程最大的優(yōu)點是可以促進(jìn)參與項目的程序員水平的快速提高。兩名程序員在進(jìn)行程序編寫的時候,水平較低的一方能夠在水平略高的程序員影響下,潛移默化地學(xué)到一些新的知識與技術(shù);同時,水平高的一方也同樣因為不斷地把自己的想法說出來而理清了自己的思路。
作為課前教學(xué)的主要實施內(nèi)容,我們預(yù)先錄制了視頻講座。該視頻按教學(xué)進(jìn)度一共包含了18個子視頻(授課內(nèi)容如表1所示),每個子視頻的時間約為90分鐘,主要包括理論的講解、代碼的分析、示例程序的編譯和執(zhí)行等,所有視頻上傳到學(xué)校網(wǎng)站,學(xué)生可以自由地進(jìn)行在線學(xué)習(xí)。
表1 預(yù)先錄制視頻主要授課內(nèi)容
同時,我們?yōu)槊總€視頻都準(zhǔn)備了相應(yīng)的自測題,這些自測題包括5個選擇題,5個填空題及5個判斷題。在學(xué)生進(jìn)行完視頻學(xué)習(xí)之后,這些自測題被用來進(jìn)行學(xué)習(xí)效果的評估。學(xué)生的測試結(jié)果將被記錄并發(fā)送到教師客戶端,以便教師對學(xué)習(xí)情況進(jìn)行總體的把握。如果學(xué)生對測試結(jié)果不滿意,可以重新觀看視頻并進(jìn)行測試,新的測試結(jié)果將會覆蓋老的測試結(jié)果。
每次課的前15分鐘被用來對課前視頻內(nèi)容進(jìn)行復(fù)習(xí),教師的主要任務(wù)分為兩部分:一是提綱挈領(lǐng)地對本次課的教學(xué)內(nèi)容進(jìn)行說明,講解重、難點問題及編程時可能面臨的一些問題,并提供一些解決方案;二是根據(jù)學(xué)生觀看視頻時的自測試結(jié)果,對普遍存在的一些理論問題進(jìn)行講解,分析產(chǎn)生錯誤的原因。這一環(huán)節(jié)是結(jié)對編程的基礎(chǔ),具體實施時間將根據(jù)學(xué)生的反應(yīng)進(jìn)行動態(tài)調(diào)整。
隨后,以結(jié)對編程為課堂主動學(xué)習(xí)活動的具體實施方式,時間大約為60分鐘。結(jié)對編程是對初學(xué)者非常有效的一種學(xué)習(xí)方式,同時也是一個積極合作的學(xué)習(xí)過程,已經(jīng)獲得專業(yè)人士的認(rèn)可和推薦。在具體實施中,兩個學(xué)生共同使用一臺電腦,他們其中的一個負(fù)責(zé)代碼的輸入(即“操作者”),另一個口述代碼(被稱為“導(dǎo)航器”)。編程過程中,兩人要進(jìn)行不間斷的交流,程序的設(shè)計方案由“導(dǎo)航器”主導(dǎo),該學(xué)生只進(jìn)行口述而不實際輸入代碼;鍵盤操作則由“操作者”實現(xiàn)。由于人的思維速度是高于代碼的輸入速度,因此,在“操作者”進(jìn)行代碼輸入的同時,“導(dǎo)航器”不僅可以檢查代碼是否準(zhǔn)確,還可以有空閑時間做額外的思考,如:代碼效率、程序框架的優(yōu)化等。反過來,作為新手的“操作者”在輸入代碼的同時也在進(jìn)行著學(xué)習(xí),其編程水平將會在“導(dǎo)航器”的影響下潛移默化地提高著。另外,在課堂中,“操作者”與“導(dǎo)航器”的選擇是隨機的,這樣學(xué)生們可以接觸到更多的同學(xué)和編程風(fēng)格。在編程對象上,每次課我們會依據(jù)教學(xué)大綱要求,將先前使用的課堂編程練習(xí)和課后作業(yè)進(jìn)行整合,形成具有一定綜合性與難度的結(jié)對編程訓(xùn)練集。這一環(huán)節(jié)中,教師的主要任務(wù)是回答學(xué)生在編程中所遇到的問題,同時對學(xué)生的程序框架進(jìn)行指導(dǎo)。
結(jié)對編程結(jié)束后,會組織一個15分鐘左右的互動交流環(huán)節(jié),讓每組學(xué)生說明實驗結(jié)果與所遇到的問題及解決辦法。不同組的學(xué)生可以對所遇到的問題提出不同的解決方案,也可以闡述自己在程序設(shè)計中的心得體會。教師在這一環(huán)節(jié)中的主要任務(wù)是針對學(xué)生的發(fā)言進(jìn)行點評,糾正一些錯誤的編程習(xí)慣,對一些好的設(shè)計思路進(jìn)行肯定。該環(huán)節(jié)雖然時間不長,但卻是對結(jié)對編程效果的升華,學(xué)生通過前期編程時的思考、同學(xué)間的交流及教師的點評,對所學(xué)內(nèi)容將會產(chǎn)生更深刻的理解與認(rèn)識。
每一次課結(jié)束的時候,教師則會安排下一次課的視頻講座學(xué)習(xí)任務(wù)。學(xué)生們被要求在規(guī)定的時間內(nèi)完成指定視頻的學(xué)習(xí)與自測試。為了保證學(xué)習(xí)效果,學(xué)生們被要求要記下觀看視頻時出現(xiàn)的問題,同時,未能按時提交自測題的學(xué)生,在課程開始的時候?qū)艿浇處煹木?,并以降低他們課堂參與分?jǐn)?shù)作為懲罰。
考核主要由兩部分組成:筆試測試和編程測試。其中,筆試測試占30%,編程測試占40%,兩者總和占學(xué)生最后成績的70%。平時測試題的成績、課前復(fù)問成績、課堂參與度等占30%。
(一)學(xué)生具有很高的參與熱情。在新的教學(xué)模式實施過程中,筆者觀察到在結(jié)對編程中學(xué)生的參與度非常高。學(xué)生們在一起研究教師所布置的任務(wù)之后,他們將會進(jìn)行充分的討論。當(dāng)編程遇到困難時,他們會主動和其它同學(xué)或教師進(jìn)行溝通。在以前的教學(xué)中,學(xué)生們不愿意、也不情愿就編程問題向其它同學(xué)尋求幫助,生怕別人嘲笑,而在結(jié)對編程的教學(xué)模式下,不同小組之間引入了競爭氛圍,學(xué)生們?yōu)榱巳〉美硐氲木幊绦Ч?dāng)他們遇到問題時,更愿意尋求他人幫助。隨著課程的深入,同學(xué)關(guān)系通過這種練習(xí)更加鞏固,配合也更加密切,逐步形成了一個團結(jié)向上的學(xué)習(xí)群體,營造出了良好的學(xué)習(xí)氛圍。
(二)學(xué)生的自信心得到了提高。由于視頻授課的靈活性,使得學(xué)生們在學(xué)習(xí)方法上發(fā)生了變化:學(xué)生們更傾向于自主學(xué)習(xí)。在之前的教學(xué)班級中,一些基礎(chǔ)較弱的學(xué)生因為無法理解教師課堂上講授的內(nèi)容而難以順利完成之后的編程練習(xí),久而久之,這些學(xué)生因為“自卑”而不愿意與教師或其它同學(xué)進(jìn)行溝通,自信心受到了很大的打擊。而在翻轉(zhuǎn)課堂中,這些學(xué)生通過課前的努力,有機會像其他優(yōu)秀的同學(xué)一樣做好上課的準(zhǔn)備,因此他們有信心解決在組隊編程期間遇到的問題。在實施過程中,我們發(fā)現(xiàn),有些成績相對較差的學(xué)生在程序編寫速度、錯誤的判斷及所展現(xiàn)出的求知欲超出了教師的意料,學(xué)生的自信心得到了空前的提升。
(三)提升了團隊合作精神。結(jié)對編程在課堂上的使用,使得學(xué)生之間隨時、隨地開展合作成為可能。傳統(tǒng)教學(xué)中,學(xué)生們在課堂上的任務(wù)主要是認(rèn)真聽取教師的講授,而課下合作的意識也不是十分強烈。而在結(jié)對編程的翻轉(zhuǎn)課堂的模式中,為了解決一些問題,同一組兩個不同的學(xué)生間或不同組之間的溝通需求變得越來越強烈。這種合作模式促進(jìn)了學(xué)生們深入理解、運用所學(xué)知識的能力;同時,共同的目標(biāo)、共同的努力以及成功所帶來的滿足感將會深化學(xué)生對開展團隊合作重要性的認(rèn)識,對于培養(yǎng)學(xué)生良好的協(xié)作精神與溝通協(xié)調(diào)能力具有重要的推動作用。
(四)促進(jìn)學(xué)生創(chuàng)新能力的提升。結(jié)對編程的翻轉(zhuǎn)課堂教學(xué)通過改變“教”與“學(xué)”在教學(xué)過程中的比重,強調(diào)學(xué)生的認(rèn)知主體地位,注重“自主獲取、自主探索、自主發(fā)現(xiàn)”能力的鍛煉,通過學(xué)生與教師、學(xué)生與學(xué)生間的交流互動,將會有力促進(jìn)學(xué)生創(chuàng)造與創(chuàng)新性思維的發(fā)展。
(一)對任課教師提出了更高的要求。翻轉(zhuǎn)課堂順利實施的前提是課前為學(xué)生準(zhǔn)備豐富教學(xué)素材,因此,教師需要花費大量的時間與精力去準(zhǔn)備視頻和課堂資料,這無疑增加了教師的備課負(fù)擔(dān)。另外,為了保證教學(xué)效果,大多數(shù)學(xué)生在進(jìn)行團隊編程時需要教師的密切監(jiān)控和監(jiān)督,因此,教師必須確保團隊在結(jié)對編程會話中要按預(yù)先設(shè)定的規(guī)則與目標(biāo)去執(zhí)行編程工作。有些個性較強的學(xué)生會忽略小組的另外一名成員,而進(jìn)行獨立代碼編寫,這種情況下,教師應(yīng)立即進(jìn)行干預(yù)才會起到真正的教學(xué)效果,這同樣也增加了教師在課堂上的教學(xué)壓力。另一方面,在課程開始前,如果學(xué)生沒有觀看視頻或做其它相關(guān)課程準(zhǔn)備,編程教學(xué)將會很難實施。為了避免這種可能發(fā)生的情況,我們在視頻后專門設(shè)置了自測試環(huán)節(jié),然而,這種做法依然難以從根本上解決這一問題。我們通過對學(xué)生的調(diào)查發(fā)現(xiàn),實施結(jié)對編程的翻轉(zhuǎn)教學(xué)中最大的障礙是心理上的問題:將傳統(tǒng)授課模式轉(zhuǎn)換成翻轉(zhuǎn)課堂授課模式做法本身就是一種新的挑戰(zhàn),而這種挑戰(zhàn)必然帶來學(xué)生甚至包括部分教師在內(nèi)的教學(xué)要素的變革,這種變革會使得大家本能地產(chǎn)生一些抵觸情緒。因此,如何提高對翻轉(zhuǎn)課堂有益性的認(rèn)識并獲得大家的認(rèn)可,也是任課教師需認(rèn)真考慮的一項長期工作。
(二)學(xué)生的理論學(xué)習(xí)難度增加。在傳統(tǒng)的課堂講授式授課模式中,由于教師與學(xué)生面對面,因此,在講授過程中,當(dāng)學(xué)生發(fā)現(xiàn)問題時,可以及時反饋給教師,而教師也可以有針對性地進(jìn)行解答。在翻轉(zhuǎn)課堂中,基礎(chǔ)理論學(xué)習(xí)是通過視頻完成的,當(dāng)學(xué)生在學(xué)習(xí)過程中碰到問題時,往往不能及時解決。隨著時間的推移,學(xué)生們解決問題的愿望也會變得越來越弱,甚至不再想解決。為了改變這種狀況,有的學(xué)生提出希望教師能夠提供視頻講座中使用的補充材料,如源代碼和幻燈片等,我們認(rèn)為這確實是一種很好的方案。另一個建議是把每個視頻的長度限制在10分鐘以內(nèi),同時配以更加精簡的學(xué)習(xí)目標(biāo),讓學(xué)生學(xué)習(xí)的目的性更強。雖然上述方法可以在一定程度上緩解學(xué)生學(xué)習(xí)壓力,但難以從根本上解決問題。因此,尋找一種更有效的實時解決問題的方式,降低學(xué)生的學(xué)習(xí)難度是一件值得深思的事情。
(三)課堂組織形式需多樣化。目前,課堂主要以結(jié)對編程為主要實施形式,課程后期,當(dāng)有些學(xué)生的新鮮感消失時,他們對課程的參與度明顯下降,表現(xiàn)為:編程效率不高、溝通交流減少、對錯誤發(fā)現(xiàn)速度變慢等。為了改變這一情況,保持課堂組織形式的多樣化將有利于提高學(xué)生的學(xué)習(xí)興趣。首先,在編程的難度上要逐漸提高。隨著學(xué)生掌握的知識越來越多,基礎(chǔ)越來越扎實,一些簡單的程序?qū)λ麄円呀?jīng)沒有太大的挑戰(zhàn)性,因而,很容易滋生驕傲情緒。逐漸加大編程難度與綜合度,讓學(xué)生不停地去發(fā)現(xiàn)并解決一些新的問題,這將有利于調(diào)動學(xué)習(xí)積極性與主動性,培養(yǎng)創(chuàng)新能力。另外,可以在結(jié)對編程的基礎(chǔ)上,適當(dāng)?shù)亻_展一些編程競賽和小游戲,對于促進(jìn)學(xué)生間的協(xié)作,提高學(xué)習(xí)興趣也是一種可行的嘗試。
基于結(jié)對編程的翻轉(zhuǎn)課堂教學(xué)模式對傳統(tǒng)《匯編語言程序設(shè)計》課程教學(xué)提出了一種新的思路。課程視頻不僅可以使學(xué)生充分地準(zhǔn)備課堂內(nèi)容,教師在課堂授課重心的改變意味著他們有額外的時間給學(xué)生開展更有用、更有吸引力的學(xué)習(xí)活動;而且還可以使那些基礎(chǔ)較弱但勤奮的學(xué)生能夠以自己的方式進(jìn)行學(xué)習(xí),使他們也能夠像優(yōu)秀的學(xué)生一樣在課堂中表現(xiàn)出充分的自信。另一方面,結(jié)對編程活動的開展,使學(xué)生間有了更多的互動和學(xué)習(xí)的機會,這將有利于提高學(xué)生團隊合作意識。總的來說,該翻轉(zhuǎn)教學(xué)模式能夠使學(xué)生以更高的熱情參與到教學(xué)活動中來,教師將從傳統(tǒng)教學(xué)方法中知識的講授者轉(zhuǎn)變?yōu)榉D(zhuǎn)課堂中學(xué)生的輔導(dǎo)者與合作者;結(jié)對編程的具體實施,對提高學(xué)生學(xué)習(xí)方動性與創(chuàng)新性也起到了重要的促進(jìn)作用。
參考文獻(xiàn):