徐建軍 周會平 陳振邦
(國防科技大學計算機學院,湖南 長沙 410073)
計算機程序設計是國防科技大學(以下簡稱“我校”)的一門公共基礎課程,受疫情影響,2020 年春季學期該課程全部采用線上教學。首先,與傳統課堂教學相比較,線上教學的教學方式和效果受到很多因素的影響和制約,例如通信網絡和教學平臺難以持續穩定、師生在線上交互不方便、居家學習的干擾因素較多(教學效果很大程度上與學生的自律性有關)等。其次,計算機程序設計是一門實踐性非常強的課程,其核心教學目標是教會學生編寫程序,培養學生用計算機程序進行問題求解的能力,線上教學也應該始終圍繞這個出發點來進行。
針對以上教學過程中可能存在的問題、客觀條件的限制,以及計算機程序設計課程的核心教學目標,課程組組織集體備課,確定了“五位一體”線上翻轉課堂的基本教學思路,對教學內容和教學方式進行了適應性調整,基于互聯網、自研自建的多個教學輔助平臺和信息化資源,進行了一系列的線上教學改革探索,取得了令人滿意的教學效果。
我校計算機程序設計目前教授的是C++語言,該語言的特點是內容龐雜、知識點零散,同時對編程實踐要求高?;陂_展線上教學的特定需求以及已有的信息化教學資源,課程組確定了開展“五位一體”線上翻轉課堂教學的基本教學模式。
所謂線上翻轉課堂教學,是指基于網絡和信息化手段開展翻轉課堂教學。如圖1 所示,所謂“五位一體”指的是:在課前要求學生自學配套的MOOC 課程,預習教材對應章節,并總結自學過程中遇到的問題;課堂上檢驗自學成果,針對一個實際案例引導學生得出問題求解步驟,總結本堂課的核心知識點,并進行限時的編程練習,對學生的完成情況進行點評和答疑;課后基于網絡實訓平臺布置編程實踐題目,平臺可以對學生的代碼進行自動評測,以獲得及時反饋;通過多種線上交互方式為學生提供全程的答疑輔導,并錄制系列微課便于學生復習鞏固;最后,通過網絡模擬測驗、學情數據分析等信息化手段跟蹤學生的學習掌握情況,督促重點學生,形成教學閉環。下面介紹具體的教學實施環節。

圖1 “五位一體”的線上翻轉課堂教學
上課之前,教師給學生發送電子版的教材和學習參考資料,通過班級微信群等方式預告本次上課的主要內容,要求學生在課前做好預習和準備工作。課程組在“學堂在線”網站上開設了配套的計算機程序設計MOOC 課程,MOOC 課程的內容完全覆蓋了本課程的所有知識點。在上課之前要求學生必須看完本次上課相關章節的教學視頻,完成MOOC 課程上發布的相關練習題。通過這些準備工作,學生已經基本了解和掌握了本堂課的主要知識,同時還要準備1~2 個自學過程中遇到的問題,通過金山共享文檔的形式提交,以待課堂上與教師進行交流。這些準備工作都為翻轉課堂教學的順利開展奠定了良好的基礎。
我校2020 年春季學期指定的教學平臺是雨課堂,雨課堂將信息技術手段融入PowerPoint 和微信,支持彈幕、投稿、隨機點名等多種互動方式,為開展混合式教學提供了有效的解決方案。但雨課堂在大規模訪問時,視頻和語音直播的效果難以滿足要求,所以還要配套一個視頻會議平臺以便于課堂直播,實際選擇的平臺包括騰訊會議、Zoom、騰訊課堂、釘釘等。
課堂上首先通過課前測試的方式檢驗學生課前自學成果,并提出本次課要解決的問題及重難點。然后,結合本次課的授課內容引入一個現實案例。這些案例都來源于實際的工程技術問題,例如:線性擬合、牛頓迭代、計算地球大圓距離、信息加密、地形導航、DNA分析、地震監測等。授課時圍繞如何求解這些真實的問題,啟發學生一步步思考。在這個實戰化訓練過程中,讓學生體驗如何把一個現實問題轉化成計算機求解的步驟,以此來培養學生針對實際問題的分析能力和求解能力,從而把編程知識的講授植入問題求解能力的訓練過程中。
在進行具體教學時,教師講授時間盡量不超過課堂時間的一半。要將更多時間留給學生做課堂編程練習,一般每次課教師都會結合課程內容設計兩道左右的編程練習題,每道題限定10~15 分鐘完成。我校開發部署了Trustie 網絡教學平臺(https://www.trustie.net/),教師可以基于該平臺發布編程題目和設計測試用例。學生先在自己計算機的IDE 開發環境中按要求編寫測試好程序,再提交代碼到Trustie 網絡平臺,平臺可以在線進行自動評測,只有所有測試用例通過才算完成。平臺給學生、教師的反饋非常及時,教師可以在課堂上及時掌握學生的學習情況。針對學生的完成情況和提交的代碼,教師通過視頻會議平臺進行講評和總結,通過IDE工具與學生一起調試程序,指出其中普遍存在的問題并分析原因。在剩余時間中,學生可以通過語音交流、共享屏幕等方式就自己的問題與教師進行交流和研討。最后,教師進行課程總結,梳理重難點,布置課后作業,并預告下次課的內容。
針對線上教學的特點,授課過程中教師要多與學生進行線上互動,以集中學生的注意力和獲得學習反饋。學生可以通過雨課堂彈幕、文字聊天室、班級微信群等多種方式與教師和助教交流。
畢竟課堂時間非常有限,而學習程序設計的核心是多做編程實踐,很多知識點只有通過大量的編程實踐才能掌握。所以,除了課堂上的編程練習,每個教學班都基于我校自研的EduCoder(https://www.educoder.net/)和Trustie 兩個教學平臺,布置了配套的課后編程實踐作業。
EduCoder 編程實訓平臺可以實現對于每個知識點的檢測和訓練。該平臺是一個游戲闖關式的實訓環境,全部是程序設計題目,只有測試用例都通過才能過關獲得經驗值,如果是看參考答案過關則要扣經驗值。網站上還提供很多與本單元相關的背景知識,便于學生自學。課程組在EduCoder平臺上自建了9大實訓、49道關卡、300 多個測試用例,涵蓋了課程教學的全部授課內容。此外,多個教學班還在Trustie 平臺上布置了一些開放性、綜合性比較高的編程實踐題目,內容與每次上課內容密切相關,這些題除了基礎知識題目,還有部分難度較大的拓展提高題目。
教師和助教主要是在班級微信群、答疑論壇里為學生開展全程答疑輔導。除了在課堂上來不及回答的問題,教師還通過共享文檔和網絡投票等方式收集學生的問題,然后把這些問題分配給各個助教,再通過視頻會議和班級微信群等方式為學生答疑解惑。LearnerHub答疑論壇是我校開發的一個專門性學習問答平臺(http://learnerhub.net/),課程組要求所有助教必須注冊該論壇,要經常性地在該論壇上回答學生提出的問題,同時共享一些學習資源。
在課程后期,授課教師還組織了兩次課堂上的“群體化答疑”,即學生以分組的形式提出問題,然后把這些問題分配到其他小組,由其他組的學生回答,教師在這個過程中起引導和輔助的作用。這種方式達到了讓學生互相學習的目的,取得了非常好的效果。此外,我們還針對學生反映的共性問題錄制了“程序設計拾遺”系列微課,方便學生自學和鞏固。
在線上教學過程中,由于居家學習無人監督,少部分自律性不強的學生與教師和助教的交流不夠積極,完成作業也比較拖拉。所以教學過程中必須加強對學生學習情況的跟蹤,尤其是要重點關注那些學習情況不太理想、平時與教師交流也不夠積極的學生。除了雨課堂生成的課堂統計和分析數據,課程組每周還通過腳本程序自動統計Trustie 和EduCoder 上編程實踐作業的完成情況,以可視化圖表的形式直觀反映學生的學習情況,跟蹤學生學習狀態。根據平臺數據分析學生學習行為,適時調整教學進度,并對重點人員進行跟蹤督促。
綜上所述,在本次線上翻轉課堂教學過程中,課程組通過自建或采用已有的EduCoder編程實訓、Trustie 編程實踐題目、微課等網絡教學資源,充分利用視頻會議平臺、雨課堂、金山共享文檔、LearnerHub 答疑社區、自編跟蹤分析工具等信息化手段,順利完成了本學期的課程教學。
課程開始時進行了線上教學需求的問卷調查。課程完結后,組織了線上教學效果的總結調查。從調查結果來看,學生普遍對此次計算機程序設計課程的線上教學效果高度肯定(5 分制評分的平均得分為4.35)。很多學生對這種翻轉課堂的教學模式印象深刻,認為在網絡環境下課堂學習更專注、交流互動更及時、課后學習更自由。對于計算機程序設計這門課,相較于傳統的課堂教學,有82.36%的學生更傾向于線上線下混合式教學,甚至是完全的線上網絡教學。

表1 部分調查結果
對翻轉課堂教學要求的課前預習工作,88.18%的學生全部完成或基本完成。每次完成這些課前準備工作,平均需要2.04個小時。對課程布置的課后實訓作業,每周平均完成時間需要6.46小時。
此外,學生普遍認為此次線上教學采用的課堂共享屏幕、課堂限時編程測試、自學MOOC 課程、視頻回放等教學手段的效果比較好。通過這門課的學習,學生覺得在C++編程語言學習、編程思維訓練和程序設計調試等方面收獲較大。
通過此次教學實踐,筆者認為對于計算機程序設計這門課程,線上教學和翻轉課堂相結合的教學模式是完全合適的。課前學生通過自學預習課程內容,課上教師基于視頻直播平臺梳理知識點、進行編程練習指導和交流互動,課后利用網絡教學平臺進行編程實踐訓練,全程綜合使用多種線上交流方式開展答疑和輔導,達到了預期的教學目的。
但是,線上教學的客觀條件在某些方面也確實影響了教學效果。如圖2所示,教學調查的統計結果顯示,學生認為影響學習效果的前三項因素包括:不能面對面跟教師、助教和同學交流,網絡和教學平臺不穩定,居家學習無人監督(自己不夠自律)。

圖2 影響教學效果的關鍵因素調查結果(多選題)
雖然通過網絡進行交流能夠克服時空和地域的限制,但是線上教學由于不能與學生直接面對面互動,代碼分析和程序調試等教學環節不方便開展,教師無法直接及時了解學生的學習狀態,學生一直面對屏幕學習也容易產生疲勞。所以,教師可以通過共享桌面、遠程調試等技術手段在線上與學生一起分析程序代碼,幫助學生解決編程過程中出現的問題。同時,在課堂教學過程中需要多安排問答、投票、簡單測試等方式與學生交互,一般建議10~15 分鐘安排一次,通過交互了解學生的學習情況,活躍課堂氛圍,緩解疲勞。
另外,由于課堂時間有限,課后教師仍然需要通過班級微信群、答疑論壇等多種方式同學生持續交流。如圖3的調查結果所示,在線上教學交互方面,大部分學生認為有效的交流方式包括:視頻會議平臺上直接語音或文字交流、課堂編程練習、課堂投票測試等。

圖3 線上教學的有效交流方式調查結果(多選題)
由于網絡不穩定、學生無法準時到課等不可控因素,線上教學要求必須錄制教學視頻,然后分享給學生,方便學生課后回放觀看。由于居家學習無人監督,少部分自律性不強的學生與教師和助教的交流不夠積極,完成作業也比較拖拉。所以網絡教學過程中必須通過一些信息化手段加強學情跟蹤,尤其是要重點關注那些學習情況不太理想、平時交流也不夠積極的學生。
此外,從教學調查反饋結果來看,學生希望教師能夠增加課堂編程練習,講解習題難題,適當拓展教學內容,提高網絡平臺穩定性,提供更多學習資源等。有些學生期望助教能進一步加強交流、答疑和輔導工作。這些都是未來在教學實施過程中需要加強和改進的環節。
此次新冠肺炎疫情對各個高校的教學實施提出了很多挑戰,但同時也為教學內容改革和教學模式創新提供了機遇。在這次集中的線上教學過程中,針對計算機程序課程的特點和需求,我校探索了“五位一體”的線上翻轉課堂教學,充分利用了互聯網上的各種網絡教學平臺,并自研自建了多個信息化課程資源,綜合運用了多種教學手段和方式,取得了良好的教學效果。未來,我們將結合教學實施過程中存在的問題,進一步研究線上教學的改進措施。