孔維廣,魏媛媛,李 帆,鄧在輝,陳常念
(武漢紡織大學 數(shù)學與計算機學院,湖北 武漢 430074)
普通高校計算機專業(yè)的學生必須打下堅實的計算機程序設計基礎,C語言是許多高校的第一門計算機程序設計課程。由于C語言本身的特點以及課時的限制,許多學生尤其是地方高校的學生在學習的過程中遇到較多的問題,學習效果不理想[1]。如何利用有限的資源因材施教,積極探索先進的教學方法來提高教學質量將是研究的重點。國內外產生了大量的研究成果,這些工作可分為政策型研究和教學型研究兩種,其中教學型研究主要是從具體的計算機教學過程入手進行教學方案的創(chuàng)新[2]。文獻[3]在C語言程序設計教學過程中對計算思維進行新的解構,以適用于目標教學;文獻[4]將計算思維融入教學案例設計和啟發(fā)式C語言語法教學;文獻[5]主要研究CDIO模式在C語言教學模式上的應用,這些研究都要求堅實的程序設計基礎知識。本文研究的重點是如何改進教學過程,讓地方院校的學生高效地獲得扎實的基礎知識。
地方院校的部分學生高中階段的數(shù)學物理基礎參差不齊,邏輯和抽象思維能力不足,缺乏良好的學習習慣,但C語言程序設計教學組織未按零起點來安排,加上課時數(shù)有限,導致教學效果不理想。
從學生的角度來看,C語言程序設計學習過程中存在的主要問題有知識點理解和記憶困難,有限的課時內學習效率偏低,課后練習困難大,綜合練習困難更大,同時日均代碼量和最大程序代碼行數(shù)均不足。導致出現(xiàn)這些問題的一部分原因是學生的自主學習能力不足,主要原因是教學方法未達到因材施教的效果。
DEIPE 是 演 示(demonstration)、 講 解(explanation)、 模 仿(imitation)、 獨 立 實 踐(practice)和強化(enhancement)這幾個單詞的縮寫,將教學過程分成5個串行環(huán)節(jié),如圖1所示。
圖1 DEIPE示意圖
演示環(huán)節(jié)主要任務是讓學生快速明白本次教學要研究的問題、問題解決方案和解決方案的效果。在C語言程序設計課程中,對研究問題的選擇實際上就是案例的選擇,而本次教學任務所要教授的主要知識點均蘊藏在此案例的解決方案中,因此該環(huán)節(jié)的要點是精選合適的案例。
在案例演示結束之后,學生應該已經明白本次學習要解決的問題以及問題解決方案所得到的正確結果,然后進入講解環(huán)節(jié),此環(huán)節(jié)包含本次課程要傳遞給學生的所有知識點以及分析在案例的解決方案中如何對知識點進行組合運用。
前兩個環(huán)節(jié)以教師為主導,由教師控制案例的選擇、知識點的講解和分析,學生以接受和理解為主。模仿環(huán)節(jié)則將教學主角讓給學生,讓學生動手,完成案例的解決方案。C語言程序設計非常適合這種情景,在學生聽懂解決某個問題的程序后,讓其動手完成這個程序往往存在各種各樣的障礙,模仿環(huán)節(jié)則是消除這種障礙的主戰(zhàn)場。教師在模仿環(huán)節(jié)的角色轉化為檢查和監(jiān)督,可以對整體教學效果和個體學習效果進行階段性檢查,并進行反饋,如可以發(fā)現(xiàn)和解決個體所遇到的個性化障礙,也可以發(fā)現(xiàn)和解決整體性的困難和障礙。模仿環(huán)節(jié)是本教學方法中最為關鍵的環(huán)節(jié)。
模仿環(huán)節(jié)成功結束表示學生已經基本掌握本次教學知識點,緊接而來的是獨立實踐環(huán)節(jié),也就是給學生一個類似的任務,由學生當場獨立解決。學生在前一環(huán)節(jié)模仿的基礎上,加以變通即可獨立完成新的任務,學生成為學習的主角,遇到問題既可以自行返回到上一環(huán)節(jié)尋求幫助,又可以找教師尋求幫助;教師在此環(huán)節(jié)的任務是指導,即在學生遇到變通運用障礙的關鍵點上指導其變通運用,若發(fā)現(xiàn)整體性的問題可返回到相應環(huán)節(jié)進行補充講解。獨立實踐環(huán)節(jié)的要點是選擇合適的任務并合理安排任務數(shù)量。
獨立實踐環(huán)節(jié)的成功結束可以判定學生已掌握此次教學知識點。前4個環(huán)節(jié)在時間上應相對緊湊,以對抗人類的遺忘曲線。對于獨立知識點的教學而言,一般應以前4個環(huán)節(jié)能夠在一個課堂教學單位中完成作為教學安排的原則。
強化環(huán)節(jié)是獨立實踐環(huán)節(jié)的延伸,一般體現(xiàn)為課后作業(yè),此環(huán)節(jié)在時間上覆蓋兩次教學活動的時間間隔,其難度與前面環(huán)節(jié)相比可以略有梯度,讓學生在強化的過程中感受到自己的進步,從而最大程度地激發(fā)學習興趣。
DEIPE教學方案的5個環(huán)節(jié)具有嚴格的前后邏輯關系,在后繼環(huán)節(jié)遇到障礙可以回溯前導環(huán)節(jié),這種回溯既可以在教師的指導下完成,又可以由學生自主完成。模仿、獨立實踐和強化3個環(huán)節(jié)中學生的參與程度逐漸提高,啟發(fā)和研討活動則在獨立實踐和強化兩個環(huán)節(jié)中廣泛存在。一個完整流程完成之后,學生往往能達到對當次知識點的充分掌握。
武漢紡織大學將C語言程序設計分為I、II兩個階段,在第一學期開設48課時的C語言程序設計(Ⅰ),重點教授獨立的知識點;在第二學期開設32課時的C語言程序設計(Ⅱ),重點通過案例教學提升綜合編程能力。配套的支撐措施包括采取小班實驗室教學的形式組織課堂教學;平時作業(yè)采用可重復刷分的在線練習系統(tǒng);考試方式采取機考方式。
以while循環(huán)為例說明獨立知識點的教學情況,教案設計流程如下。
1)演示。
問題選擇為“使用格雷戈里公式求π的近似值”,演示while循環(huán)實現(xiàn)程序,并觀察不同精度的計算結果。這一環(huán)節(jié)告訴學生今天要解決的問題是什么,因為學生很容易理解求π的近似值這個問題,但對計算機解決此問題的方法還一無所知,所以均表現(xiàn)得興趣盎然。
2)講解。
此環(huán)節(jié)要講解主要的知識點,如循環(huán)的意義、循環(huán)流程圖的表示方法以及while語句表示循環(huán)的技巧與語法,配合1~2個畫流程圖和寫語句的練習來理解;然后進入演示程序,講解演示程序的流程圖和語句表示,讓學生能讀懂演示程序。
3)模仿。
此環(huán)節(jié)要求學生當場在限定的時間內完成演示程序的流程圖和代碼并運行出結果。此環(huán)節(jié)會遇到各種問題,因此也是排除問題的主戰(zhàn)場,教師的重點是盡可能發(fā)現(xiàn)問題并當場解決問題,提前完成的學生還可以進行調整精度的試驗。
4)獨立實踐。
此環(huán)節(jié)要求學生當場完成求階乘程序和統(tǒng)計整數(shù)位數(shù)程序。此階段學生會有主動思考,教師的主要任務是幫助學生跨越障礙。
5)強化。
此環(huán)節(jié)要求學生課后作業(yè)完成判斷素數(shù)程序和多次猜數(shù)游戲程序,還有一些選做題。此階段學生會有主動探究,教師的主要任務是檢查作業(yè)情況,解決發(fā)現(xiàn)的問題并交流有創(chuàng)意的解決方案。檢查作業(yè)的工作可以交給在線練習系統(tǒng),通過系統(tǒng)對學生作業(yè)給出評分,作為平時成績的依據(jù)。由于練習可以反復刷新,并且期末考試的編程題就是機考模式,能極大地提高學生練習的積極性。
在綜合編程能力教學階段,采用基于鏈表的綜合應用案例,如基于鏈表的學生信息管理系統(tǒng),涵蓋讀寫文件、記錄的增刪改查等功能,代碼總量一般在300行以上,完善的代碼可達到1 000行以上。案例被分解成5個模塊,分別是增加記錄、讀寫文件、刪除記錄、修改記錄和查詢記錄,每個模塊在一次教學單元中完成演示、講解和模仿3個環(huán)節(jié),完成以后再進行整個案例的獨立實踐,也就是完成一個新的基于鏈表的信息管理系統(tǒng),并要求學生在課后自行進行反復練習與改進。第2學期的期末考試設置為在3小時內當場完成一個基于鏈表的信息管理系統(tǒng)。經過這個案例教學過程,學生的單個程序代碼量迅速上升,多數(shù)學生的程序代碼能達到500行以上,設計中大型程序的畏難心理消除,編程能力得到極大提升。
根據(jù)學習金字塔理論不同方式的學習效果[6],DEIPE教學方案在演示和講解環(huán)節(jié)采用的基本屬于被動學習方法,模仿環(huán)節(jié)屬于金字塔的“實踐”方式,獨立實踐環(huán)節(jié)和強化環(huán)節(jié)屬于金字塔的“應用”學習方式,在學習金字塔中均屬于兩周后學習內容平均保存率比較高的方式,見表1。
表1 DEIPE教學環(huán)節(jié)與學習金字塔理論對照
DEIPE教學方案支持“做中學”和“實際演練”,符合流行的CDIO理念,并且能很好地支持項目驅動式教學[7]。
武漢紡織大學數(shù)計學院C語言程序設計課程組由5名教師組成,教師團隊由課程組教師以及另外的10名教師組成,所有教師至少具備5年以上C語言教學經驗,部分教師具備15年的C語言程序設計教學經驗。從2015年至今,3年完整的以DEIPE教學方案為主要內容的教學改革取得了良好效果。通過廣泛調查,師生的主觀感受發(fā)生巨大的變化,主要變化見表2。
表2 DEIPE教學方案推行前后師生的主觀感受對照
在考試成績方面,以武漢紡織大學數(shù)計學院2014級全體學生(368人,課程教學改革前)和2017級全體學生(384人,課程教學改革第3年)的第一學期期末考試卷面分分布比例數(shù)據(jù)作一個對比,試卷題型和分值相同,都是選擇20分,填空10分,判斷10分,程序填空20分(2題),程序設計40分(4題),試卷難度相當。卷面得分分布比較情況見表3,可以看出,高分區(qū)人數(shù)比例增多,低分區(qū)人數(shù)比例減少。
表3 教學改革前后第一學期期末考試卷面分分布比例抽樣對照
C語言程序設計課程實踐性強,通過DEIPE教學方案能夠顯著提高學習效果以及學生的年度總代碼量和最大單個程序代碼量,有利于計算思維培養(yǎng)和創(chuàng)新能力培養(yǎng),符合教學方法的發(fā)展趨勢,符合新時期培養(yǎng)目標的要求[8],對類似院校的C語言程序設計課程教學具有較好的參考意義。