劉玉文,陳春燕,翟菊葉,楊 樞
(蚌埠醫學院 衛生管理學院,安徽 蚌埠 233030)
《C語言程序設計》是信息類專業的必修課,也是其它理工科專業的基礎課,具有簡單易學、功能強大、執行效率高等特點。在課程體系中,C語言是一門基礎語言,對后續課程的學習起著關鍵性的作用。如今,新冠肺炎疫情給我國教育系統帶來了前所未有的壓力,尤其對高等學校來說表現尤為突出。因高校學生人數多,地緣分布廣,疫情防控難度較大,各高校為了能夠順利開展教學任務,保障“停課不停學”,紛紛開展了線上教學活動。但是我國從未嘗試過如此大規模的線上教學,各高校都沒有成熟的線上教學經驗。在這種情況下,如何有效開展C語言線上教學,保障教學質量成為了一個值得研究的問題。
線上教學與線下教學相比有著明顯的缺陷[1],比如,師生信息傳遞不流暢、課堂缺乏監督、教師指導效率低、線上考核不真實等,極大地影響了課堂教學效果。當然,線上教學也有自身優勢,我國也在大力發展在線教育[2],比如在線課堂、MOOC等,除此之外,大量教育學者也進行了一系列線上教學研究,取得了一定的成果,如馬駿等[3]提出了一種基于任務驅動的C語言程序設計課程教學方法,該方法結合C語言的特點,引入任務驅動式教學模式,通過對教學內容、教學對象和教學大綱的設計,促使學生在較短時間內能夠從整體上靈活掌握C語言的主要知識點。李國強[4]以C語言程序設計課程為例,提出了一種問題驅動的在線資源輔助教學方法,該方法以流行的MOOC在線教學資源為基礎,結合PTA在線測試平臺和云課堂,把課堂實踐與在線資源充分結合起來,有效地培養了學生的編程思維,提高了學生的編程水平。趙媛等[5]提出了一種以計算思維為導向、以MOOC為平臺的多維度C語言程序設計教學思路,該思路以實戰化案例問題為牽引、以能力培養為目標,把傳授知識與思維訓練相結合、編程語言與程序設計相結合、自主學習與平臺引導相結合,增強了知識單元趣味性、教學案例實戰化,極大地提高了學生學習的主動性和創新意識。從以上成果看,雖然我國線上課堂發展迅速,但這些線上教學形式通常都是作為線下課堂的一種補充,無法滿足純線上教學的需要。
基于此,本文結合線上教學的優缺點,把任務驅動模式與《C語言程序設計》課程線上教學相結合,提出了一種基于任務驅動的《C語言程序設計》在線教學方法。該方法把教學內容進行模塊分解,創建學習任務,以學生為中心進行自主學習,通過網絡實現了課堂的翻轉,把線上教學的不利因素降到了最低。本文以譚浩強編著的《C語言程序設計》(第四版)第6.5節For語句這一節的內容為例來介紹在線課堂的開展過程。
線上教學中,由于教師和學生物理位置不同,不方便及時觀察指導,而且線上約束性不強,學生的行為無法被有效感知[6],一味地按照“教師線上講課,學生線上聽講”的模式授課,可能達不到預期的教學效果,在這種背景下,采用任務驅動教學方法最為合適。任務驅動在線教學設計包括教學目標設計、教學模式設計及教學流程設計。
教學目標包括知識與能力目標和育人目標兩種,根據教學大綱的要求設計如下:
(1)知識與能力目標:通過本節的學習,讓學生掌握For循環的結構、定義、原理及循環過程;掌握二重循環的執行過程;掌握break、continue語句在循環中的作用;能用任意一種循環解決常見的實際問題;熟悉循環結構的多種形式及不同形式的應用場景;熟悉循環的嵌套;熟悉不同循環結構之間的差別;了解循環結構在多種語言中的應用;了解C語言在人工智能、軟件開發中的應用;了解常見的C程序軟件。
(2)育人目標:把課程思政融入教學內容,通過融合介紹我國信息技術的發展成就,激發同學們愛國主義熱情。另外,通過自主學習和實驗協作提升同學之間的互幫互助、團結協作以及感恩意識,從而促進人際交往、與人溝通能力的提升。
任務驅動模式是一種以學生為中心,以教師為引導,學生獨立完成任務的教學模式。該模式的優點是能夠充分發揮學生的自主學習意識,提高實踐創新能力。任務驅動模式設計包括教師教學流程設計和學生學習流程設計。在教師教學流程設計中(圖1),教師根據教學目標和教學內容提出學習任務。在學生領取任務后,學生根據自身情況進行自主學習。教師在線指導,解答學生出現的問題,并對出現多的問題進行總結,幫助學生構建知識體系。

圖1 教師任務驅動教學流程設計
學生的任務驅動學習流程設計如圖2所示。學生得到學習任務后,根據任務目標進行知識回顧和自主學習,按要求完成任務后,同學和教師之間對任務中存在的問題進行交流探討,并在教師的協助下完成知識體系的構建。

圖2 學生任務驅動學習流程設計
根據教學模式設計中的教師教學流程設計和學生學習流程設計,基于任務驅動的線上教學整體流程概況起來包括五個環節:(1)情境的創設,(2)提出任務,(3)學生完成任務,(4)課程總結與評價,(5)實驗延伸。整體流程細節如圖3所示。

圖3 整體教學流程設計
在創設情境環節,教師把課堂思政與課堂引入相結合,在課堂引入的同時,讓學生感受我國信息科技發展成果,提升愛國主義熱情。在任務實施前,教師先總體介紹本節課主要學習內容和重難點知識。隨后提出學習任務,教師把事先分解好的學習任務進行布置,并設置學習要求,學生根據自身實際領取任務,并按照要求完成學習任務。在學生完成任務的過程中,采用的學習形式包括師生探討,生生探討,網絡查詢等方式,學生完成任務后,提交學習任務。教師根據學生課堂討論情況以及任務完成情況,總結學生中存在的普遍問題,并對問題進行概括講解,幫助同學構建知識體系。完成課堂教學后,對課堂效果進行評價,評價包括自我評價、學生評價、專家評價等。為了拓展學生的知識體系,教學流程還安排了課堂延伸,拓展學生的知識面,促進學生能力的增長和思維的發散。
教學實施是按照教學流程設計把教學目標、教學內容進行課堂實踐的過程。教學實施包括課前教學資料準備和課堂教學。教學環境采用學習通教學軟件平臺和QQ群平臺,實驗軟件使用VC++6.0。
教學資料包括思政教育資料、教學資料、教學視頻及學習任務等。本文以For語句這一節的內容為例來介紹在線課堂的開展過程,圍繞著本章節內容,具體材料準備如下:
(1)課程思政教育材料準備:編程語言在人工智能和信息技術中起著非常重要的作用,智能系統的開發離不開編程語言。所以,課程思政教育材料的準備圍繞著我國人工智能技術的發展來進行搜集,教師從網絡上檢索下載了“我國人工智能發展及歷史機遇”的音像視頻,供學生觀看學習,讓學生了解C語言重要性的同時增長愛國熱情。
(2)教學資料準備:課前在學習通平臺上傳課程思政資料、教學課件、教學大綱、教學進度、作業習題、參考資料等學習資源。
(3)教學視頻制作及上傳:根據教學大綱及教學課本,組織教學視頻的錄制。教學視頻以短視頻的方式錄制重點內容。這一節共錄制了4個視頻:分別是For循環、循環控制、二重循環、循環的嵌套。每個視頻15分鐘左右,并上傳到學習通平臺。
(4)課堂任務準備:把課堂教學內容進行模塊分解,建立學習任務。任務包括:觀看視頻、課堂練習、上機實驗等。課堂任務設計原則是:內容難易結合、以易為主、突出重點、強調實效。本節課課堂任務中,課堂練習設置3個,難度逐漸遞增,要求每個同學至少完成一個。上機實驗也設置3個,要求與課堂練習相同。準備完畢后,把課堂練習和實驗上傳到學習通平臺。
課堂教學中的任務實施過程主要包括網絡考勤簽到、學生自主在線學習、課堂作業、上機實驗、教師在線答疑等。具體細節如下所示:
(1)課前預告:為了讓學生及時進入在線課堂,上課前10分鐘在QQ群內通知學生,告知學生本次課的學習過程、學習內容及學習方式等。
(2)學習通簽到:在學習通平臺內設置課堂簽到,組織學生在上課前五分鐘內完成簽到。為了約束學生,在課程的中間和后半段,在QQ群內進行兩次隨機點名,保證學生的課堂出勤率,并以簽到和隨機點名結果作為學生的課堂考勤成績。
(3)任務分配:上課前組織學生觀看“我國人工智能發展及歷史機遇”視頻,教師通過直播的方式把思政視頻內容與新課內容相融合,進行課堂引入,概況本章節的重難點知識,指導學生在線理論學習,并下達本次課的學習任務。教學視頻觀看率必須達到100%;課堂練習至少完成一個,并按照教學大綱要求算入平時成績,為了激發學生熱情,完成越多,分數越高;上機實驗至少完成一個,同樣,也按照教學大綱要求算入實驗成績。
(4)學生自主在線學習:自主學習的時間大致為60分鐘,學生根據教師分配的視頻學習任務,登錄學習通平臺進行自主在線學習。因為課堂時間有限,所以原則上學生應該在規定的時間內完成教學視頻的觀看。教師在后臺實時監測,對進度較慢的同學適當的進行監督提醒。
(5)課堂作業及上機實驗:學生自主在線學習完成后,教師提醒學生進入課堂作業環節。課堂作業時間為25分鐘,在最后5分鐘內,要求學生把課堂作業完成結果上傳學習通和QQ群,這樣一方面能夠讓學生進行自我展示,提升自信;另一方面,學生之間可以進行成果借鑒,督促或促進學生之間的學習交流。教師根據學生完成情況,對普遍存在的問題進行總結和在線指導。課堂作業完成后,進入上機實驗環節。上機實驗時間為30分鐘,同樣在最后5分鐘提交實驗程序源碼和結果。實驗環節中學生的問題最多,教師隨時在線指導,解答學生的問題。
(6)布置作業及批改:本次課結束前,根據課程的重點內容和學生知識掌握情況,在學習通上布置一定量的課后作業,以鞏固課堂知識。作業的原則是難易結合,盡量覆蓋課堂知識要點、盡可能的涵蓋課堂上學生普遍存在的問題。學生在規定的時間內完成并提交作業,提交完后教師進行批改,并對批改結果進行在線反饋,給出分數和評語,幫助學生進一步構建知識體系。
(7)課后總結:課堂結束后,對本次課的課堂教學情況進行總結。本次課的內容較難,知識量也較大,但從課堂提問、自主學習、課堂任務以及課后作業情況來看,學生對循環過程基本都能掌握,達到了教學目標,但在二重循環解決復雜問題方面學生還存在著一些困難,比如算法建模不清晰,實驗結果和標準答案存在差異等,這個問題可以通過加強練習來解決。
為深入了解本次課的教學效果,總結教學經驗,對本次課的教學過程進行了評價,評價包括自我評價、學生評價和教學督導專家評價。
自我評價從課堂監控、視頻收看、課堂作業、課堂互動、實驗操作、課后作業等幾個方面來進行。課堂監控評價包括學生考勤和學生在線情況兩方面,從后臺記錄數據和隨機點名來看,本次課學生考勤簽到和學生在線情況較好,無缺課、遲到、早退現象的發生;視頻平均收看率達到98.7%;學生都能根據自身的情況完成教師設定的課堂任務,課堂作業總體完成率達95.1%;學生能夠在線回答教師的問題,并積極參與互動討論,課堂效果較好;學生作業完成率達100%,平均成績90.7;學生實驗總體完成率達96.7%,平均成績91.6。從各項課堂指標分析來看,本節課達到了良好的教學效果。
課后通過網絡向學生發放了調查問卷,調查學生對本節課在線教學的評價,評價內容包括教學內容準備、教學方法,過程組織、任務難易程度、內容接受程度、內容深度、教師積極性、課堂效果等幾個方面。從評價結果看,學生們都給予了較高的評分,但在內容深度上評分稍低,原因是在教學設計時考慮到線上教學的困難,適當地降低了教學難度,最大限度保障所有同學都能學得好。
為了監督線上教學秩序,保障教學效果,學校成立了線上教學督導專家組,在全校范圍內開展線上巡回督導活動。教學督導的兩名專家也對本次課進行了在線觀摩督導,并按照教學評價表進行了量化打分,各項指標的平均分如表1所示。

表1 教學督導專家評分結果
從評價結果來看,平均總分為93.8,達到了優秀標準,說明學校教學督導專家對本文提出的基于任務驅動在線教學方法具有較高的認可度。
從自我評價、學生評價和督導專家評價結果來看,本文方法在C語言程序設計課程的在線教學中達到了較好的教學效果,主要體現在課堂出勤率高,課堂作業、課后作業、實驗完成度好。通過在線課堂記錄數據與近三學年線下課堂教學數據對比(表2),其中,前三學年的數據是以往學生在校上課時(線下)的學情數據,且都沒有采用任務驅動教學方法,而2019~2020學年的數據是疫情期間線上授課的學情數據,學生在家上網課,采用的教學方式是在線任務驅動教學模式。
從表2中可以看出,2019~2020學年的C語言程序設計課程學生在線出勤率很高,一方面說明學校各級領導高度重視疫情期間的線上教學工作,從各個層面加強了對學生的監管;另一方面也說明本課程的線上教學具有較強的約束性和吸引力。課堂作業方面與其它學年差別不大,說明課堂作業完成情況達到了線下教學的水平。課后作業成績方面也和往年持平或稍有提高,說明作業完成效果也較好。從實驗成績來看,稍稍低于前三年的平均成績(91.8),分析原因可能是與缺乏教師的現場指導有關,但從總體情況來看實驗成績與往年基本在同一水平線上。所以,綜合對比歷年教學數據,可以得出本課程的教學效果基本達到了線下教學水平。

表2 課堂教學數據對比
本課程的最大特色是利用課程特點,把教學內容進行模塊分解,采用任務驅動和混合教學的教學模式進行教學,充分發揮了線上教學的優勢,最大限度的降低了線上教學的各種影響。從教學評價和教學效果來看,本課程的在線教學達到了教學大綱的各項要求。但從教學效果來看,實驗成績較往年稍有下降,原因是缺乏教師的現場指導,降低了實驗指導效率。線上教學能不能進一步提高學生的實驗效果呢?可以從以下幾個方面進行嘗試:鼓勵學生、激發學生實驗學習的積極性;合理安排實驗難度,難易得當,貼近學生能力實際;優選幾個實驗能力強的學生與教師一起組成線上指導小組,及時解決同學在實驗操作過程中出現的問題,提高指導效率。
本文把任務驅動模式引入到C語言程序設計課程教學中,實踐探索了基于任務驅動的C語言程序設計在線教學方法,實現了教學課堂的翻轉,經過教學評價和教學數據對比,本文教學方法都達到了良好的效果。因為缺乏高效的在線指導,本文教學方法中的實驗教學環節存在著一定的局限,影響了學生實驗能力的提升,如何提高在線教學中的實驗教學效果是下一步需要進行探索的問題。