前言:想要寫出一篇引人入勝的文章?我們特意為您整理了混合教學模式下的程序設計課程范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:按照金課的建設要求,文章提出把混合式教學模式引入“C++程序設計”教學中,利用MOOC平臺、翻轉課堂工具、程序自動評判平臺等信息化教學工具,實施小班化教學、知行結合的機房教學等舉措,以編程實踐、分組討論、彈幕、投稿等方式增強學生參與感,并將敏捷開發的價值觀和原則應用于編程實踐中,提升學生的自信心和成就感。實踐結果表明,該教學模式能有效提高學生對理論知識的掌握以及實踐能力,對比線下教學具備明顯的優勢。
關鍵詞:線上線下混合式教學;MOOC;SPOC;翻轉課堂
為了切實提高學生的編程能力,南京理工大學計算機學院根據教育部“淘汰‘水課’、打造‘金課’”的要求[1],開始在多門編程能力相關課程中實施線上線下混合式教學模式[2],以期達到課程的高階性、創新性和挑戰度,打造出“以學生為中心”的系列金課,其中,“C++程序設計”作為計算機大類全體大一新生的程序設計入門課,與第二年暑期的“C++課程設計”共同完成的C++語言及其程序設計的教學內容,對學生編程興趣、軟件基礎能力、系統能力等方面的培養起到了奠基作用,自然成為了教學改革的先鋒之一。
一、教學組織
在“C++程序設計”課程中,課程團隊以“金課”的高階性、創新性和挑戰度為標準設計課堂教學:不僅要達到掌握堅實的理論基礎的目標,更要培養學生應用、分析、評價甚至創造的能力;采用先進的信息技術手段,增加師生、生生互動,并滿足程序設計課程的需求;以學生發展為中心,根據學生的學習狀況,實時調整課程進度和重點;在實踐和作業中設有一定難度的內容,并以循序漸進的方式引導學生進行深入研究。
(一)信息化教學工具的選取在“C++程序設計”課程的混合式教學實踐中,課程團隊采用了“MOOC+SPOC+翻轉課堂+機房”的模式。課程團隊教師在智慧樹平臺建設了MOOC課程“程序設計基礎”,并在該MOOC課程基礎上建設了SPOC校內課。翻轉課堂采用了“雨課堂”工具實現課堂的組織:測驗、投稿、彈幕等,同時采用了自建的“程序提交與自動評判平臺”實現課堂編程、提交、判分。該平臺由團隊教師以Moodle[3]為核心建立,不僅可以實現普通的OnlineJudge功能(根據用例判斷完整程序的正確性),還創新性地實現部分程序的運行,例如函數的正確性判定。所有的線下課堂教學在計算機機房進行,每個學生分配一臺有C++開發環境的聯網計算機。
(二)教學流程的組織結合信息化教學環境,課程團隊在教學中,實施小班化教學、實踐與理論結合的機房教學等教學方式,將教學活動擴展到課前、課中和課后,并通過教學組織實現課程的高階性和挑戰度。每次課前,教師都會將預習要求(觀看SPOC的視頻、閱讀資料、完成測試等)和學習目標通過“雨課堂”發給學生,并收集學生的學習信息(學習時間、測試結果等)。在課前的學習活動中,希望學生能夠記住相應語法規則,并能讀懂、對比相關的C++程序,這在Bloom模型[4]中屬于記憶、理解和初步應用部分,即低階目標。課堂中,則是課程向高階目標邁進的階段。首先,是基本概念查缺補漏的前測環節。在簡單、快速的知識點回顧中,課程團隊利用“雨課堂”的客觀題(單選、多選、填空)功能檢驗低階目標的達成度。這些客觀題以C++基本語法和規則的概念、應用為主。當某個知識點的正確率不高時,教師將以案例的形式厘清概念,以確保80%以上的學生達成低階目標。然后,進入“參與式的程序設計案例分析與實踐”環節。C++語法和規則的學習都是為能夠編寫程序解決問題而服務的,因此,參與編程實踐才是真正實現分析、評價、創造這些高階目標的唯一途徑。編程實踐利用“程序提交與自動評判平臺”進行,學生完成設計、編碼、調試后,提交程序,根據返回結果可知程序的正確性。將敏捷開發的價值觀和原則應用于編程環節中,將任務分解,建立不同層次和不同階段的任務目標,以循序漸進地提高難度的方式,保持學生的自信心,并使其在教師指引下完成具有挑戰度的工作,從而讓學生對于有一定難度的問題,“跳一跳能夠得著”[1],夠著后又能獲得較大的成就感。部分實踐通過分組的方式進行,讓學生在團隊討論中實現思維碰撞,從而產生智慧的“火花”。同時,在實踐環節中,學生還可通過彈幕、投稿等方式,提出自己的疑惑,展示自己的成果,使得教師可以及時進行引導式解惑,并發現典型問題和優秀樣例,以此進行解析和講評。這些翻轉課堂的手段,不但調動了學生參與的積極性,還增加了師生、生生之間的互動。課后,通過“雨課堂”推送任務。任務以學生課中的“雨課堂”和“程序提交與自動評判平臺”的統計數據為依據進行設計,強化薄弱部分,并適當難度進階。
(三)具體案例在此,以“C++程序設計”中的教學單元“分支語句”的教學實施為例,來說明教學流程的組織情況。分支語句”教學單元的設置在“數據類型和表達式”教學單元之后。該單元的教學目標為:掌握if語句的語法,尤其是能夠將多分支語句中的else匹配對應的if,以規范的書寫形式編寫分支結構的程序,且能注意內嵌語句的限制問題。在課程組織的前測環節,針對單元知識點設計選擇題,尤其關注難點“if與else的配對”問題,結合測試題的解析,確保學生對基本語法的掌握。在“案例分析與實踐環節”中,以二元一次方程求解作為核心問題,課程團隊設計了遞進式的任務目標。在“分支語句”之前,學生只學習了C++的基本類型和表達式,最初的任務就從表達式入手,實現一元一次方程ax+b=0的求解(暫時不考慮a為0的情況)。第二階段任務,考慮a為0的情況,將基本分支結構運用到問題求解中。第三階段任務是考慮更為復雜的二元一次方程ax2+bx+c=0的求解。在講授庫函數sqrt()的使用方法后,讓學生分組討論該問題需要考慮的各種情況(a為0、b為0、一個根、兩個根、復數根等),并使用多分支結構編程。對比投稿的程序,看哪組考慮的情況更全面,程序更完整。同時,從投稿中挑選典型問題,例如:對于ifelse的多條內嵌語句不加括號使之稱為一條復合語句、搞不清楚else到底和哪個if配對、不注意縮排和對齊等。最后,總結實踐環節中的通用性錯誤,要求學生在課后首先將課上所編程序進一步完善,再完成相關編程作業。
二、教學效果
在2019—2020學年第一學期,南京理工大學計算機學院為計算機大類全體大一學生共7個班級開設了“C++程序設計”課程。所有班級均為小班化機房授課,其中,8403班開展了線上線下混合式教學模式,其他6個班級均為線下授課。2020年1月,完成了期末測試。最終成績由3個部分組成:期末筆試、期末上機測試和平時成績。其中,期末筆試由選擇題、讀程序題、填程序題和編程題組成,共100分,7位教師集中流水閱卷;上機測試包含3道題,每道題100分,共計300分,OnlineJudge自動判分;線下授課的平時成績由考勤和作業組成,混合式教學的平時成績由課堂情況(出勤、課前測、投稿情況)、線上情況(視頻觀看、章節測驗、編程作業)組成。由于平時成績的評判標準不同,因此,只將期末上機測試和期末筆試成績進行對比,班級平均成績對比結果分別如圖1和圖2所示。從圖中可以明顯看出,混合式教學模式下的8403班,無論是筆試,還是上機測試,成績都明顯高于其他班級。上機測試平均分高于其他班級7.2~38.69分,筆試平均分高于其他班級5.81~12.44分。且8403班課程及格率為100%,無一人掛科。從對比數據中,我們可以分析出:課堂的“前測環節”夯實了學生對理論知識的掌握,“分析和實踐環節”提高了學生針對問題設計、編寫、調試程序的能力。同時,基于敏捷開發的價值觀和原則的遞進式任務設計,幾乎讓所有學生都能“夠得著”,即使是中學從未接觸過計算機編程的學生,也不會因為畏難情緒而放棄學習。因此,在程序設計類課程中,運用本文所描述的線上線下混合式教學模式,能夠有效地培養和提高學生操作各項軟件的基礎能力,對比純線下教學具備明顯的優勢。
三、總結與展望
在這次的線上線下混合式教學中,課程團隊仍然遇到了一些問題:部分學生仍然不習慣于視頻學習,導致在課堂上花費大量的時間進行“查缺補漏”,進而縮短了實踐環節的時長。在未來的工作中,課程團隊還將致力于平臺的融合,并利用更多監督或獎勵機制激勵學生保質保量地完成課前學習,建設更具有挑戰性和趣味性的C++練習庫,進一步調動學生的積極性。
參考文獻:
[1]吳巖.建設中國“金課”[J].中國大學教學,2018(12).
[2]張策,徐曉飛,張龍,等.利用MOOC優勢重塑教學實現線上線下混合式教學新模式[J].中國大學教學,2018(5).
作者:衷宜 陸建峰 趙學龍 單位:南京理工大學