

文章編號:1672-5913(2015)07-0099-03
中圖分類號:G642
摘要:針對程序設計課程存在的理論與編程實踐學時安排矛盾以及實驗教學中師生配比不夠、實驗輔導不足等問題,提出加強預習干預引導、實戰演練、課堂教師輔導和實驗指導以及增加學生分組互助學習、學生討論、成果演示等手段,結合目前國內外取得良好教學效果的翻轉課堂教學法、微課視頻資源實現翻轉教學,并擬在小班試點改進后推廣。
關鍵詞:程序設計課程;翻轉課堂;微課視頻;小班教學
0 引 言
為了全面貫徹落實《教育部關于全面提高高等教育質量的若干意見》(教高[2012]4號)精神,不斷深化本科人才培養模式改革,構建研究型大學本科人才培養新體系,培養高素質拔尖創新人才,《電子科技大學本科人才培養方案修訂指導意見》以通識課程、學科基礎課程、學科拓展課程、專業核心課程、實踐類核心課程、個性化課程6個課程模塊的構建為核心,推動課程的整合和優化,搭建個性化、多元化的人才培養平臺,促進學生全面、個性發展,其理工類課程模塊與學時要求如圖1所示。
基于學校的培養理念,計算機科學與工程學院將培養目標定位在培養掌握計算機基本理論和基本知識,接受從事研究與應用計算機的基本訓練,具有研究和開發計算機軟、硬件基本能力的高級人才。程序設計課程是計算機專業的核心基礎,涉及程序設計語言(C語言)、數據結構、算法設計與分析、面向對象語言(C++/C#/Java)、設計模式和軟件工程等多門課程。我們分析當前教學中存在的如課程分割零碎、課程之間連貫性差、不同課程內容重復較多、對后續課程支撐力度不大、教學手段落后與師資隊伍建設不足等問題,在課程、實驗和團隊建設等方面做了一系列研究探索,如采用遞增式的項目驅動教學分級培訓學生程序設計技能,組建程序設計基礎團隊,重新設計與整合關聯課程,采用自動化批改程序軟件,建立題庫與項目庫等方案,并在小班連續2年進行試點,取得良好效果,2014年開始在全年級推廣。
1 推廣后的程序設計課程現狀與調查分析
1.1 推廣后的程序設計課程現狀
小班試點在舊有培養方案的基礎上進行,C語言和C++課程內容有整合,但仍然與其他班級一樣分開教學和參加統一的期末考試,便于與其他班級對比教學效果。2014年,我們基于新的培養方案在全年級進行合并后的程序設計語言教學,同時面臨如下現狀。
(1)內容多,時間緊,以前的兩門課程合并成為一門課程之后,課時數量是以前一門課程的課時數量,而不是兩門課程課時數量的總和。
(2)導論課沒有打下基礎,如對于計算機硬件及工作流程的初步認識、內存管理方式的理解、鼠標鍵盤的熟悉、操作系統和辦公軟件的熟悉與使用等。
(3)課程合并后,兩門課程的教師總數增加,班級人數由120人以上/班減少為70人/班,達不到學校120人/班配置助教的條件,沒有助教,作業批改量大,上機輔導忙不過來,上機考試監考教師人數不夠。實踐證明,每次實驗課教師能夠輔導到的學生人數不超過10人。
1.2 推廣后的程序設計課程調查
課程結束后,7個班的7名教師和480名學生分別發放調查問卷,其中回收的有效反饋調查表為教師7份,學生186份。
1)教師調查反饋。
(1)合并后教學時間緊,學生掌握所有內容有難度,存在部分學生學習積極性不高,如上課玩手機和到課率不高等情況。
(2)每班上機相關練習題、實驗、綜合實驗均超過20題,有的班級達到50道題以上。上機題目兼具應用性和趣味性。
(3)導師輔導的上機訓練題量大。
(4)基礎類型的實驗和練習題完成情況良好,綜合性的實驗和練習題只有部分學生能夠完成。
2)學生調查反饋。
(1)有編程基礎的學生在高中階段學習過的編程語言種類有8種,66%的學生學習過C/C++,普遍表現出對目前教學狀況非常滿意,在教師指導下比高中學習得更深入,能夠學習到很多原理性的東西;同時也表示希望能夠給予更多的課后學習指導,提供工程訓練機會。有編程基礎的部分學生仍然感覺上課速度快。
(2)沒有編程基礎的學生認為目前教學難度合適的達73%,較難/難的達22%,簡單的達5%:普遍希望教師講解得更細致,課堂上能夠演示編程過程,再多增加上機輔導、上機作業和練習題,能夠有項目實踐機會。
1.3 推廣后的期末考試情況與教師試卷分析總結
推廣后的期末考試分數對比見表1。
表1的平均比例表明不及格率占比最高,接近1/3,90分以上占比最低,不到10%;同時表明不同班級差別比較大,教師的教學經驗對于學習效果很重要,如教師l有多年C語言和C++語言教學經驗,其余的教師只從事C語言或者C++語言教學,因此雖然使用同樣的教材,但是由于教學經驗、教學手段、學生不同,使得學生掌握情況不同。教師6強調大學階段的學習自覺性,對學生管束比較少,教學方式比較靈活,最終考試效果最差,不及格率達到44.8%,說明學生學習自覺性差,教師的恰當約束對于當前環境下的學生學習非常有必要。
7位教師總結學生的失分點基本一致,主要集中在填空題的細節問題、讀程序、寫程序和判斷題,恰好是編程訓練沒有過關的體現,這也和各位教師根據考試情況的反思總結一致。教師都反映需要加強編程練習、上機輔導、課上程序演示、程序設計思維訓練,但又都覺得編程練習已經很多,上機量也很大,但訓練效果卻不明顯。以冒泡排序為例,教師上課講,中期考核,期末復習,但是該內容在期末考試中仍然是大的失分點且全年級都呈現這樣的現象,這說明在學習過程中有的學生不認真做,有的學生做了但沒有真正理解和掌握算法原理、編程基礎、調試技術。
教師反思其中一個大的矛盾是理論教學與實踐教學的學時需求矛盾:①不講或者簡單講解基礎理論及細節,學生只能依葫蘆畫瓢而無法舉一反三,理論基礎不穩固則技術不深人,有程序設計基礎的學生則不能進行深入學習;②詳細深入講解需要花費大量時間;③無編程基礎的學生對理論學習普遍不感興趣且由于缺乏經驗,對教師講解的理論理解不夠深入,教師在課堂上沒有時間進行反復講解,而學生不得不在應用過程中根據需要反復學習這些基礎知識。
為解決這些矛盾,各個教師根據教學經驗各有取舍,其中教師5與教師7是以實踐為主與理論講授為主比較突出的2個代表。教師5采用以上機實驗為主、理論教授為輔的教學方式,設計上機相關題目超過50題且上機演示編程過程,編程輔導時間多,同時另外找了優秀學生一起對學生進行上機輔導,但期末筆試90分以上的占比9.2%,不及格率為27.7%。教師7以理論講授為主,對于上機實驗輔導嚴格按照培養方案的16學時,期末筆試考試成績表明學生上機實驗過少,理論掌握并不扎實,90分以上的占比為0.00%,不及格率仍然達到23.1%。以上情況說明“單腳大跨步”的教學方式效果欠佳,但兩者結合教學又存在學時數不夠的現實問題,此外還存在如下問題:學生認為最難的不是理論學習,而是將理論應用于實際;不少學生需要督促,自覺性差,而教師只有一人,怎么辦?
2 改進措施
針對程序設計課程在全年級推廣后出現的問題,程序設計教學團隊教師積極思考、討論并試圖尋找能夠解決現存問題的教學方法。戴爾的經驗之塔說明單純的課堂教學平均只能夠達到20%的效果,而具有主動學習的參與、討論、演講等教學方法可以達到50%-90%的教學效果。既要在有限的時間內傳授基礎理論,深入講解原理和運行機制且可以在實踐過程中能夠隨時查閱學習基礎理論,又要在教師人數有限的條件下給予足夠的上機實驗演示和輔導,教師就需要將一些以記憶和理解為主的知識點放到課前讓學生預習,課堂上以項目驅動的方式引導學生加強編程練習并給予輔導。此外,對于一些需要深入分析的問題則可在學生預習的情況下,在課堂上以分組或者集體討論的方式解決,但存在部分學生不預習而等待教師上課講解或者學生預習目的性不強、自學能力不夠等問題。教學團隊教師經過調研發現,最近幾年在國內外逐步發展的翻轉課堂教學恰好滿足有教學理論研究支撐和國內外優秀教學經驗借鑒等條件,具體方案如下。
(1)將理論知識的講解以微課的形式錄制成視頻,達到學生在教師引導條件下自學的效果,同時在學生完成預習作業后,檢驗其學習效果以便于學生根據自身情況決定是否還需要反復看視頻鞏固學習;教師也可以通過學生完成預習作業的情況制訂課堂活動安排,協助學生更好地掌握知識。
(2)教師將分析問題、設計思路、流程圖繪制、編程、編譯鏈接、調試等演示案例的完整過程錄制成視頻,讓學生可以反復觀看臨摹,解決初期沒有教師在身邊編程入門難的問題,達到課堂演示編程的效果,避免課堂上編程占用時間過多、編程代碼文字過小后排學生看不清楚等問題。
(3)在課堂上指導學生進行編程練習,解決學生視頻學習過程中的疑問、討論解決實際項目問題的方法及方案的選擇。
(4)鼓勵優秀學生幫助其他同學,對于幫助其他同學的學生給予平時成績加分,解決缺乏編程輔導的問題。
(5)在現有培養方案條件下擬用部分班級試點進行翻轉教學,部分班級不采用,然后進行效果對比和進一步分析與改進,使其更適合當前的本科教學。
3 結語
基于“全面發展的創新教育”人才培養理念培養高素質拔尖創新人才,除了構建合理的人才培養體系外,還需改進對學生培養更直觀有效的課程教學。翻轉課堂教學以實踐理論“戴爾的經驗之塔”和布魯姆認知教育目標分類模型理論為基礎,強調學生在教師的指導下學習,學生是教育的主體,教師的教是為了不教,自主學習具有無可替代的價值。翻轉課堂教學法以學生為主體進行研究,能夠在有限的教學時間內達到傳授知識、教授技能、培養自學能力的目的,可操作性強,是解決現有程序設計課程改革問題的有效方法,但效果和存在的問題還有待多次試點改進及全面推廣后具體分析及解決。