摘 要:針對眾多高校 C 語言課程教學(xué)中的痛點問題,分析 C 語言教學(xué)的現(xiàn)狀,提出三段式逆向教學(xué)設(shè)計思路,介紹具體教學(xué)設(shè)計實踐。
李培, 計算機教育 發(fā)表時間:2021-09-10
關(guān)鍵詞:逆向設(shè)計;C 語言;課堂創(chuàng)新;教改實踐
0 引 言
首屆全國高校教師教學(xué)創(chuàng)新大賽已經(jīng)啟動,正如大賽通知所說“引導(dǎo)高校教師潛心教書育人,形成卓越教學(xué)的價值追求和自覺行動,打造高校教學(xué)改革的風(fēng)向標(biāo),全力推進(jìn)高等教育的 ‘質(zhì)量革命’”。說到質(zhì)量革命,應(yīng)當(dāng)圍繞課程的痛點問題,以如何開展教學(xué)幫助學(xué)生在最短的時間內(nèi)獲得最大的學(xué)習(xí)能力,最高效地達(dá)成學(xué)習(xí)目標(biāo)為目標(biāo),借助各種平臺工具,運用不同的教學(xué)手段,因地制宜地開展課程創(chuàng)新改革。
1 C語言課程教學(xué)的現(xiàn)狀剖析
C 語言作為程序設(shè)計語言的常青樹,在 2021 年 1 月最新發(fā)布的 TIOBE 編程社區(qū)全球開發(fā)語言排行中繼續(xù)保持第一,它不但擁有眾多其他語言無法比擬的優(yōu)點,而且有著非常廣泛的應(yīng)用領(lǐng)域。目前很多高校都開設(shè) C 語言課程,并且多數(shù)工科專業(yè)學(xué)生要學(xué)習(xí) C 語言,但是開設(shè)多年來,依然面臨部分學(xué)生興趣不高、上課時好像還可以聽懂,而課后自己要么編不出程序,要么編出的程序調(diào)試不出來,最終難以達(dá)到課程目標(biāo)的情況,特別是目前多數(shù)院校選擇采用在線評測平臺進(jìn)行期末考試,評判方式及規(guī)則導(dǎo)致成績兩極分化,出現(xiàn)無法執(zhí)行的代碼判零分導(dǎo)致的極低成績,反映出學(xué)生動手編程調(diào)試能力不合格;部分題目僅僅是對日常練習(xí)題稍加變化,得分率就明顯下降,反映出學(xué)生缺少舉一反三的思維和應(yīng)用能力 [1]。
以 C 語言課程大綱中的要求為例:通過本課程的學(xué)習(xí),學(xué)生理解和掌握結(jié)構(gòu)化的編程思想和編程方法,掌握 C 語言的程序結(jié)構(gòu)和語法規(guī)則,具備程序設(shè)計的能力,培養(yǎng)學(xué)生使用計算機解決實際問題的能力。以逆向設(shè)計的思路思考最終課程大綱目標(biāo)的達(dá)成,結(jié)合教學(xué)現(xiàn)狀進(jìn)行課程的教學(xué)創(chuàng)新改革實踐,需要依托新的教學(xué)理念,借助新的平臺工具,具體在每一節(jié)課的三段式逆向教學(xué)設(shè)計中,重點需要達(dá)到以下幾個要求:培養(yǎng)學(xué)生對程序設(shè)計的興趣;培養(yǎng)學(xué)生實際動手編程、調(diào)試能力;培養(yǎng)學(xué)生熟練掌握經(jīng)典例題;培養(yǎng)學(xué)生在經(jīng)典例題基礎(chǔ)上的舉一反三能力。
2 三段式逆向教學(xué)設(shè)計思路
教學(xué)創(chuàng)新改革的目標(biāo)決定了以學(xué)生為中心,更要求教師圍繞課程的痛點問題以及課程效果評價進(jìn)行有效的教學(xué)設(shè)計。一方面,教師扮演的是設(shè)計師的角色,基本的工作就是精致地設(shè)計課程和學(xué)習(xí)體驗活動,以滿足特定的教學(xué)需求;另一方面,教師扮演的是評估師的角色,診斷學(xué)生需求以指導(dǎo)教學(xué),使教師、學(xué)生以及他人更好地檢查是否已經(jīng)達(dá)到預(yù)期的目標(biāo)。
堅持目標(biāo)導(dǎo)向、問題導(dǎo)向、結(jié)果導(dǎo)向的教學(xué)設(shè)計,與傳統(tǒng)的以固定的教材、擅長的教法以及常見的活動相比,本質(zhì)上是需要進(jìn)行逆向設(shè)計。按照逆向設(shè)計的思路,教師將一節(jié)課的教學(xué)設(shè)計分為 3 個階段:第 1 個階段為確定預(yù)期結(jié)果的階段,要確定本節(jié)課結(jié)束后學(xué)生應(yīng)該理解什么知識,掌握什么技能,達(dá)到什么水平;第 2 階段為確定評價方法的階段,要確定本節(jié)課后應(yīng)該如何評價學(xué)生的學(xué)習(xí)達(dá)到了預(yù)期地結(jié)果,有哪些證據(jù)可以公平且明確地證明;第 3 階段為設(shè)計學(xué)習(xí)體驗和教學(xué),要確定最適合的教學(xué)方式方法、資源和工具。最終,教師通過學(xué)生需要掌握的知識和技能來思考指導(dǎo)學(xué)生做什么,哪些活動可以使學(xué)生獲得所需的知識和技能,提供的資源是否合適高效 [2-4]。
同時,可以通過 6 個方面對設(shè)計及效果進(jìn)行核查和評估,包括:①能解釋,即能歸納總結(jié)解釋概念;②能闡明,即能具體闡述現(xiàn)象、事實; ③能應(yīng)用,即能在合適的情境中有效使用知識; ④能洞察,即能批判性地看待分析;⑤能發(fā)現(xiàn),即能在經(jīng)驗基礎(chǔ)上發(fā)現(xiàn)價值;⑥能自知,即能準(zhǔn)確認(rèn)識自己,反思學(xué)習(xí)。
3 三段式逆向教學(xué)設(shè)計實踐
將三段式逆向教學(xué)設(shè)計應(yīng)用于 C 語言課程教改創(chuàng)新實踐,以設(shè)計一節(jié)基于該理念的課堂教學(xué)為例,選擇 C 語言 3 種基本結(jié)構(gòu)中在教學(xué)中涉及的最后一種結(jié)構(gòu),也是難度升級的一個結(jié)構(gòu),即循環(huán)結(jié)構(gòu),具體主題為循環(huán)結(jié)構(gòu)典型應(yīng)用——窮舉法。
在學(xué)習(xí)本節(jié)內(nèi)容之前,學(xué)生已經(jīng)掌握 C 語言中基本數(shù)據(jù)類型的內(nèi)容以及順序、選擇結(jié)構(gòu)的程序設(shè)計,并在此基礎(chǔ)上能夠針對一些簡單應(yīng)用編寫程序。本節(jié)課所在的章節(jié)是 C 語言 3 種基本結(jié)構(gòu)中最后一種循環(huán)結(jié)構(gòu),學(xué)生已經(jīng)完成實現(xiàn)循環(huán)結(jié)構(gòu)的 3 種語句學(xué)習(xí),能夠使用 while 語句、dowhile 語句、for 語句實現(xiàn)循環(huán)結(jié)構(gòu)及循環(huán)嵌套,能夠解決一些簡單的循環(huán)嵌套問題,已經(jīng)在程序設(shè)計和實現(xiàn)方面有了很大的進(jìn)步,但是循環(huán)嵌套還需要加強。面對一些課內(nèi)未涉及的問題時,還不能做到通過自行分析問題,獲取編程求解的算法思路,期待通過學(xué)習(xí)掌握這類問題的思路和方法以及全面掌握循環(huán)結(jié)構(gòu)典型問題,進(jìn)一步體會計算機編程豐富的應(yīng)用。
具體三段式逆向教學(xué)設(shè)計的整體思路:要理解并掌握窮舉算法,才能夠利用計算思維的思想將其轉(zhuǎn)換為程序設(shè)計代碼,在實現(xiàn)過程中不乏較為隱蔽的條件或技巧,因此,需要按照由淺入深的步驟,從算法理解著手,從簡單實現(xiàn)著手,逐步提升難度,特別是借助一些經(jīng)典有趣的問題,激發(fā)學(xué)生的興趣,使其迎難而上,掌握升級版的循環(huán)結(jié)構(gòu)典型題,從而能夠解決更多循環(huán)結(jié)構(gòu)應(yīng)用問題,并通過分析改造程序,進(jìn)一步培養(yǎng)學(xué)生優(yōu)化程序設(shè)計的能力。
3.1 第 1 階段詳細(xì)設(shè)計
按照知識目標(biāo)、能力目標(biāo)和情感目標(biāo)明確本節(jié)課的最終教學(xué)目標(biāo)。
(1)知識目標(biāo):①鞏固循環(huán)語句的使用;② 鞏固循環(huán)嵌套的使用;③掌握窮舉法解決問題的方法;④能夠?qū)Τ绦蜻M(jìn)行優(yōu)化。
(2)能力目標(biāo):①培養(yǎng)學(xué)生的計算思維能力,理解計算思維與數(shù)學(xué)思維的關(guān)聯(lián);②培養(yǎng)學(xué)生的科學(xué)精神和敬業(yè)精神,通過程序優(yōu)化,培養(yǎng)工匠精神;③培養(yǎng)學(xué)生歸納總結(jié)、舉一反三的能力。
(3)情感目標(biāo):①正確認(rèn)識計算機的特性,進(jìn)而充分發(fā)揮計算機的優(yōu)勢為人類服務(wù);培養(yǎng)創(chuàng)新思維的能力,追求真善美;理解解決問題要思路開闊,只有想不到的,沒有做不到的;通過不同解題方法的對比分析,深入理解自然辯證法中對立統(tǒng)一的關(guān)系。
由于學(xué)生的基礎(chǔ)參差不齊,在課前自學(xué)后預(yù)計 90%~100% 的學(xué)生可以理解窮舉法的解題思路,通過整理筆記的方式發(fā)現(xiàn)規(guī)律;在老師詳細(xì)分析講解后預(yù)計 80%~90% 的學(xué)生可以掌握窮舉法的編程求解問題,經(jīng)老師指導(dǎo)、小組合作完成當(dāng)堂任務(wù),70%~80% 的學(xué)生可以掌握優(yōu)化或多種方法編程求解,其中,50% 以上的學(xué)生能夠做到對同類型問題的舉一反三,10%~20% 左右的學(xué)生甚至聯(lián)想拓展算法應(yīng)用,可以挑戰(zhàn)高難度應(yīng)用問題(課后的最強大腦問題),能從較為新穎的角度解決問題等。10%~20% 的學(xué)生掌握起來會有些吃力,必須加強練習(xí),配有一定的課外輔導(dǎo)與答疑,才可以達(dá)到課程對本章節(jié)的掌握要求。
3.2 第 2 階段詳細(xì)設(shè)計
首先,針對課程目標(biāo)提高學(xué)生運用 C 語言編程解決實際問題的能力,最終課程期中、期末考核為在線評測平臺 PTA 實時評測,因此除了實驗課,平時考核也應(yīng)重點以此平臺為實踐考核平臺。在理論課堂上,一方面重點借助該平臺進(jìn)行考核,另一方面重視動手實踐操作。
針對本節(jié)課內(nèi)容,教學(xué)設(shè)計重點利用該平臺用于課堂教學(xué)效果的評測,包括課前測、隨堂測和課后測,方便實時查看學(xué)生的提交情況(時間、得分、測評結(jié)果、查重等),全面了解正確提交前的整個過程,一次成功還是多次成功?直觀展示出錯及改正的過程,查看錯誤信息,第一時間檢驗授課效果,及時發(fā)現(xiàn)問題,隨時查看個人代碼,共同探討并加以解決。對該平臺不便考查的小組合作完成類任務(wù),采用編譯環(huán)境下運行調(diào)試通過,配合結(jié)果截圖作為驗證標(biāo)準(zhǔn)。
整節(jié)課借助 PTA 平臺并通過學(xué)習(xí)通小組任務(wù)進(jìn)行知識目標(biāo)和能力目標(biāo)的考查,同時,借助學(xué)習(xí)通調(diào)查問卷和最強大腦討論題對能力目標(biāo)及情感目標(biāo)進(jìn)行補充考核。工具方面,利用筆記本或手機端的編譯器實現(xiàn)課堂現(xiàn)場代碼的編寫、調(diào)試及運行,完成 PTA 考核及學(xué)習(xí)通小組任務(wù)的提交 [5]。
3.3 第 3 階段詳細(xì)設(shè)計
本階段最重要的創(chuàng)新在于以能力為導(dǎo)向,變傳統(tǒng)的理論課只講不做為邊講邊做,圍繞課程目標(biāo)對學(xué)生實際編程水平的要求,全程將理論與實際操作相結(jié)合,任務(wù)驅(qū)動。
首先,圍繞本節(jié)課要講的窮舉法,選取 3 個具有代表性的趣題,分別是雞兔同籠問題、換硬幣問題、百錢白雞問題。由課前編程求解的雞兔同籠問題引出窮舉法的思想,并提供代數(shù)求解的思路。課上由老師提供三重循環(huán)求解換硬幣問題的基本思路,并進(jìn)行編碼及環(huán)境演示,由學(xué)生小組討論編寫求解代碼,引導(dǎo)嘗試用二重循環(huán)、一重循環(huán)實現(xiàn),并圍繞不同的代碼進(jìn)行執(zhí)行次數(shù)的討論,從而理解代碼優(yōu)化的意義。在此基礎(chǔ)上,讓學(xué)生嘗試完成百錢白雞問題的代碼補充,從而加深學(xué)生對窮舉法求解的全面認(rèn)識,使其掌握分析問題的嚴(yán)謹(jǐn)思維。最后,所有學(xué)生完成 PTA 平臺上的換硬幣問題作為本節(jié)課的考核,評測問題增加了約束條件和輸出要求,結(jié)束前圍繞 PTA 平臺上未通過評測學(xué)生的報錯信息,集體討論當(dāng)堂解決,課后進(jìn)行慕課平臺作業(yè)、PTA 實驗任務(wù)完成情況、學(xué)習(xí)通拓展窮舉問題討論及上課效果的調(diào)查。
對課堂上的應(yīng)用問題直接動手編程求解,課上老師演示加小組合作實際操作;對易于接受和獨立掌握的內(nèi)容,通過課前測試考查簡單總結(jié),作為課上的“小菜”,而將難度較大、適合討論研究且需要啟發(fā)的內(nèi)容精講精練,充分討論,作為課上的“主菜”,充分發(fā)揮老師在課堂上的作用,不僅僅是知識的傳授者,還要扮演引領(lǐng)者、啟發(fā)者。有針對性地指導(dǎo)學(xué)生學(xué)習(xí),使其掌握有效的學(xué)習(xí)方法,達(dá)到最好的學(xué)習(xí)效果;同時,布置進(jìn)階型任務(wù),激發(fā)學(xué)生挑戰(zhàn)的欲望,滿足不同學(xué)生的學(xué)習(xí)需求,達(dá)到個性化定制學(xué)習(xí)的目的。
整堂課以能力為導(dǎo)向,圍繞課程目標(biāo)對學(xué)生實際編程水平的要求,全程將理論與實際操作相結(jié)合。通過精心設(shè)計核心問題,圍繞核心問題代碼開展代碼編寫、補充、改造、分析及查錯改錯等全環(huán)節(jié)的練習(xí),利用代碼之間的聯(lián)系,實現(xiàn) 50min 除了講解討論分析,還完成了多個代碼編寫調(diào)試的實際操作。課堂設(shè)計思路如圖 1 所示,每個學(xué)生參與完成 3 個完整代碼,學(xué)習(xí)掌握 2~4 種代碼實現(xiàn)思路,從而真正提升程序設(shè)計語言類課堂的教學(xué)質(zhì)量。
整節(jié)課的全部問題都通過學(xué)生實際動手編程、調(diào)試,最終運行得到正確結(jié)果;同時,課前、課中、課后及學(xué)期末都在 PTA 平臺進(jìn)行及時的教學(xué)目標(biāo)評估用于反饋,提供教學(xué)反思及改進(jìn)參考。
3.4 效果評估
本節(jié)課后實驗在 PTA 平臺上布置基礎(chǔ)實驗(必做)和拓展實驗(選做)兩套題目,結(jié)合課堂教學(xué),學(xué)生完成情況理想,達(dá)到了課程對循環(huán)基本結(jié)構(gòu)、循環(huán)嵌套及窮舉法的掌握要求。在學(xué)期末的統(tǒng)一機考中,作為難點的循環(huán)嵌套知識點平均得分率只有 60%,而采用三段式逆向教學(xué)設(shè)計授課班級的該知識點得分率達(dá)到了 80% 以上,表明本節(jié)課從教學(xué)目標(biāo)逆向分析設(shè)計,借助典型 應(yīng)用題,對循環(huán)嵌套在實際應(yīng)用中強化鞏固,對該難點的突破取得了一定成效。同時,在學(xué)期末的統(tǒng)一機考中,該教學(xué)設(shè)計實踐應(yīng)用提升了學(xué)生舉一反三的能力,使得該班整體成績優(yōu)秀且高分人數(shù)大幅增加。
借助信息化平臺和工具,課程教學(xué)全程都有記錄留存,教學(xué)評價兼顧形成性評價和總結(jié)性評價,隨時可導(dǎo)出加以計算,通過整合所有的數(shù)據(jù),形成完整的可查、可分析、可回溯、可存檔的全套考核資料,可以對學(xué)生整個課程的學(xué)習(xí)過程進(jìn)行全面評價,針對個人和班級進(jìn)行有針對性的全面分析,可適當(dāng)應(yīng)用一些算法,另外加入監(jiān)控機制,及時進(jìn)行教學(xué)預(yù)警。
4 結(jié) 語
教學(xué)改革創(chuàng)新實踐對照前述的 6 個方面進(jìn)行檢查,有針對性的教學(xué)設(shè)計達(dá)到了能解釋、能闡明、能應(yīng)用、能洞察、能發(fā)現(xiàn)、能自知的目標(biāo)。
縱觀計算機歷史長河,很多編程語言都曾輝煌過,但都是曇花一現(xiàn),終究走向沒落,唯獨 C 語言在計算機行業(yè)中始終處于重要地位,作為科技強國的重要組成部分,計算機科學(xué)的發(fā)展至關(guān)重要,而讓我們的學(xué)生真正掌握 C 語言,適應(yīng)國家發(fā)展的需要,教學(xué)改革創(chuàng)新實踐勢在必行。相信在未來課程教學(xué)中仍會不斷涌現(xiàn)新的問題,唯有大膽創(chuàng)新實踐才能使 C 語言課程教學(xué)目標(biāo)達(dá)成情況不斷提升。
論文指導(dǎo) >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >