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