陳 昕, 王興芬, 焦 健, 楊大利
(1. 北京信息科技大學 計算機學院, 北京 100101;2. 北京信息科技大學 教務處, 北京 100192)
?
注重編程能力培養(yǎng)的C語言過程化考核教學改革
陳昕1, 王興芬2, 焦健1, 楊大利1
(1. 北京信息科技大學 計算機學院, 北京100101;2. 北京信息科技大學 教務處, 北京100192)
針對大一新生C語言“編程”入門較難的狀況,采用“編程”知識點逐步深入,階梯式遞進的“編程”分階段考核的方式,使學生產生對C語言“編程”的學習興趣,繼而掌握基本的“編程”技能。過程化考核改革所帶來的C語言課程教學內容、教學方法、教學手段和考核方式的創(chuàng)新,進一步激發(fā)了學生的“編程”學習興趣,增強了學生“編程”實踐的自主性和自覺性。
“編程”能力; C語言程序設計; 過程化考核
過程化管理的教學模式近年來一直是教學改革的重點[1],由于高校課程的差異,不存在一個統(tǒng)一的教學模式,需要針對課程的不同探尋摸索。
目前大多數高校將C語言作為計算機類專業(yè)程序設計基礎課程,一直存在教學與考核方法較單一的狀況。課程考核結果一般由平時成績、實驗成績和期末考試成績構成,其中期末考試成績所占比重最大,一般采用筆試的方式,試卷中的客觀題比重偏大,更為注重原理與概念。這種傳統(tǒng)考核與教學方法不僅導致學生將該門課程認識為一門理論課程,甚至產生了其對計算機類專業(yè)的“誤解”。一方面,課程的考核成績不能準確衡量學生編程能力的高低;另一方面,學生剛接觸“編程”課程就不能夠盡快適應專業(yè)實踐方式,常常導致其對計算機類專業(yè)課程學習的困難,甚至失去專業(yè)學習興趣和自信心,也就缺少了專業(yè)學習的動力和自覺性。
針對此類問題已有很多方面的研究,從諸如課程設計改革、精品課程設計和教材等多個方面實施,并取得了一定的成果[2-4]。但以上研究大多沒有考慮C語言與其他課程之間的關系,而作為一門基礎課程,這恰恰是C語言教學中所需要重點面對的問題[5]。需要指出的是,C語言教學作為一門實踐性極強的課程,其教學常需要大量實驗輔助,實驗建設一直是此方面的重點關注問題[6]。在大學教育普遍壓縮學時的情況下,采用以考代練的機考是公認的較好模式,國內已經有一些這方面的研究出現[7]。
本文從2012級C語言“編程”能力的過程化考核改革入手,針對大一新生C語言“編程”入門較難的狀況,采用“編程”知識點逐步深入,階梯式遞進的“編程”分階段考核的方式,通過C語言課程教學內容、教學方法、教學手段和考核方式的創(chuàng)新改革,課程組集體討論設計出每類知識點的綜合應用案例,運用案例和問題導向教學,進一步激發(fā)學生的“編程”學習興趣,增強學生“編程”實踐的自主性和自覺性。
我校計算機學院開設計算機科學與技術、軟件工程和網絡工程等3個本科專業(yè),C語言作為3個專業(yè)共同的專業(yè)基礎課程,課程本身承載著計算機類專業(yè)學生認識“編程”課程的特點、專業(yè)實踐基礎能力的培養(yǎng)、專業(yè)學習興趣與自信心培養(yǎng)的關鍵起點。C語言程序設計課程的目的在于使學生掌握“編程”的基本技能,讓學生具備一定的“編程”基礎,為后續(xù)專業(yè)類課程學習奠定“編程”實踐和專業(yè)知識基礎。
計算機類專業(yè)對“編程”實踐能力的培養(yǎng)要求是一致的,同時由于3個專業(yè)的定位和專業(yè)方向不同,其對C語言課程教學的要求也略有差異,表1給出了C語言課程中各個知識點對應3個專業(yè)的能力要求矩陣。從表1可看出,3個專業(yè)的C語言基本“編程”能力要求是一致的。隨著C語言課程教學內容的加深,不同專業(yè)對一些知識點要求的掌握程度出現了差異。例如,關于指針部分,軟件工程專業(yè)后續(xù)的“編程”課程是Java,對指針知識點的要求不高,做到了解即可,而計算機科學與技術專業(yè)對學生嵌入式開發(fā)有較高的要求,網絡工程則側重學生底層通信協(xié)議開發(fā)的能力,都對指針知識點的掌握要求較高。
表1 不同專業(yè)對程序設計C語言課程需求
鑒于C語言課程在計算機類專業(yè)學習的特殊性,計算機學院將C語言課程列為院級核心主干課程,成立課程組,學院從師資投入和資源方面給予重點支持。學院專門制定了相應的“研究生助課制度”,加強學生學習過程的全面指導與答疑力量。圍繞C語言課程過程化教學與考核改革,課程組制定了集體討論與備課制度。集體討論設計出每類知識點的綜合應用案例,運用案例和問題導向教學。鼓勵學生主動實踐,充分利用C語言課程的過程化教學與考核平臺資源,多練多交流,學院還專門為學生開放學院所有實驗資源,每個班級均能夠有自主管理的實驗室資源。
為達到“精講多練、邊講邊練、問題導向”的C語言課程教學的過程化改革,課程組教師走訪多個學校,在國內高校充分調研的基礎上,選擇與成都信息工程學院網絡工程學院開展深入合作與交流,共同完善并開發(fā)出了“C語言程序設計過程化考核平臺”。該平臺可以通過學生提交代碼、后臺編譯多個用例測試的方法,按照用例的比例給學生成績。該平臺的特點在于注重過程化教學與學習實踐,學生的學習過程也是專業(yè)實踐的過程,所有的知識點均可以在實踐平臺上得到運用。
課程組圍繞考核平臺規(guī)劃教學設計路線,見圖1。
圖1 過程化教學設計方案
該路線以課程目標為出發(fā)點,從問題教學出發(fā),著眼如何提高學生的編程實踐能力。在教師指導的方式下,利用模擬考試提高學生編程技能,如果學生未達到預先的課程目標則繼續(xù)強化編程實踐,反復訓練以達到最終的教學要求。在路線實施過程中結合國內同類課程改革的經驗,將提升學生計算思維能力[8]和以考試系統(tǒng)無紙化為特點[9],實現一體化的教學設計。
考慮到C語言課程綜合運用能力,結合所學理論知識,幫助學生分析問題并學會解決問題,最后達到理論與實踐的融會貫通。C語言課程需要學生能夠用C語言完成具備一定功能的軟件編制,該過程學生需要提交設計計劃,經授課教師確認開始編程實現。在本課程教學設計中,通常最終要求學生設計一個信息管理系統(tǒng)。該系統(tǒng)功能基本上需要用到C語言課程中學習到的文件、鏈表、數組和函數等知識點,學生可以在編寫程序的過程中,逐步將基礎“編程”技能提升到“編程”應用的較高層次,同時培養(yǎng)了學生的學習興趣和自覺性。
傳統(tǒng)的C語言課程考核方式不能全面考核學生知識的掌握和運用情況,一般采用筆試的方式,試卷中的客觀題比重偏大,更為注重原理與概念。往往造成“臨考突擊通過,過后即忘”的結果。該課程在開設過程中,經常出現學生在結課后仍然不具備編程的基本能力,即使考試成績合格也仍然不會編代碼。后續(xù)一些課程的教師反映,學生由于編程能力欠缺,實現基本的算法都有困難,對專業(yè)學習失去自信心,甚至出現了厭學的思想。考慮到C語言程序設計課是一門實踐性很強的課程,2012年之后對課程考核實施改革,以上機考試為手段,通過過程化考核的方式,以分階段分層次的方式,達到提高學生編程技能的目的。
在過程考核階段,當教師完成某一個階段的授課時,為學生布置測試題,學生在指定時間內完成測試并實時獲得成績。這種方式最大的好處就是學生的考試環(huán)境與平時環(huán)境完全相同,在非常熟悉的環(huán)境下完成考試過程。學生不用期末突擊學習,而是分階段完成各個知識點的學習和考試任務,分階段取得相應的成績,不僅降低了學生的學習難度,同時也有助于學生及時掌握自身編程的不足,調整學習重點,提高學習效率。
以往的課程考核總評比重中,期末成績占總成績的70%~80% ,引入過程化考核之后,教師可以分階段設置對學生考核的內容,各個階段的成績達到總成績的50%左右。表2為過程化考核引入后的具體分配方式,考慮到對學生編程能力的鞏固和提高,對期末考試權重仍有一定的要求。
C語言課程過程化考核改革中,針對這一問題采用多元化的考核方法,結合C語言的教學特點,課程組設立若干個模塊知識點,包括基本編程技能、變量使用、順序結構、分值選擇結構、循環(huán)結構、數組、函數設計、指針操作、結構體和文件,每個基本模塊又設立一般、較難和困難3個檔次。學生可以在平時有針對性地對各個知識點進行練習,加大平時課堂學習及作業(yè)等考核成績的比重,教師則根據所授課班級的專業(yè)特點動態(tài)調整知識點的難易程度。為了提高題庫的質量,課程組和學院的20多位教師先后3次對題庫進行了大規(guī)模的修改,改進后的平臺具備多次提交答案、實時查看成績的功能,極大地減少了教師批改作業(yè)和試卷的工作量。
表2 過程化考核的方式、內容及評定說明
過程化考核方法對教師的教學具有很大的促進作用。多元化的考核方法對教師提出了更高的要求,在評價學生學習效果和能力的同時,教師可以獲得反饋信息,督促教師更加合理地安排教學內容、調整教學方法。過程化考核能夠增加師生之間的互動,及時獲得教學效果反饋信息,有助于發(fā)現教學過程中存在的問題。如教學過程中發(fā)現灌輸式教學法存在問題,及時采用啟發(fā)式教學方法,甚至對某些章節(jié)采用自學方式。如數組中的排序算法,教師把要解決的問題提出來,通過例題讓學生自學并解決問題,最后,教師講解過程推導的來龍去脈,并進行應用總結。這樣以應用為目的反向教學使學生對知識點和基本原理的印象更深刻,更不易忘記。過程化考核的最終目的是培養(yǎng)學生獨立思考、研究和判斷的習慣,提升學生的整體能力。
過程化教學的教學效果評估是過程化教學的重要一環(huán)[10],無論是對實踐類教學還是理論教學,近年來都有一些完整的分析方法,其中教考分離是目前比較推崇的一種評估考核方式[11]。
課題組通過對2012—2014級計算機學院程序設計試卷分析統(tǒng)計,期末考試采用教考分離、機考試卷隨機出題的方式,計算機自動閱卷,以保證考核的客觀性、真實性。由于隨機出題的難易程度不易統(tǒng)一,為公平起見,對于考試成績偏低的學生提供二次考試的機會。從考試成績看,取得優(yōu)秀(90~100分)的學生成績比例在30%左右,不及格一般在10%以下,學生的編程能力得到了較好的提升,并且能夠真實反映學生“編程”能力的基礎與水平。
課程組對2012級學生進行跟蹤調查,分析了該年級學生后續(xù)的培養(yǎng)過程和畢業(yè)情況。從數據顯示可以看出,2012級學生的整體專業(yè)“編程”能力比以往的學生有大幅提升,其中超過50人次在國家級各類編程比賽中獲得了獎項,超過60人次主持或參與國家級和北京市級大學生創(chuàng)新計劃。由于該年級學生對于編程的興趣濃厚,進而引發(fā)其專業(yè)課程學習的熱情和考研的需求。據統(tǒng)計,該年級學生有40人達到2016年國家研究生錄取分數線,3名學生獲得免試推薦研究生資格,5名學生獲得國外攻讀研究生資格,占整個年級人數的近15%。該數據創(chuàng)下本校學生近10年考研升學新高。畢業(yè)設計能力情況和就業(yè)形勢等再次證明了基礎“編程”能力科學訓練的突出效果。
通過4年來C語言課程過程化教學與考核改革,發(fā)現多樣化的、科學的考核評價模式對激發(fā)學生的學習積極性、調動教師的教學積極性,以及推動教學內容、教學方法、教學手段和教學考核等都有積極的促進作用,最終達到提高學生“編程”實踐能力和專業(yè)學習興趣等教學效果的目的。C語言課程過程化教學與考核改革得到了學校和北京市的大力支持,分別作為校級重點教學改革項目和北京市教育教學改革項目給予了立項資助。目前,該項目已經被北京建筑大學計算機系引進并投入使用,還有部分國內高校表達了引進的意愿。該項教學改革的實際教學效果和社會示范效果已經顯現。
References)
[1] 朱征宇,王茜,楊廣超,等.一種基于全過程化管理的討論式教學模式[J]. 計算機教育,2013(3):80-84.
[2] 楊浩,張琛.《C語言程序設計》教學探討[J].福建質量管理,2015(12):196.
[3] 耿姝.普通高校“C語言程序設計”精品課程建設初探[J].工業(yè)和信息化教育,2013(5):38-46.
[4] 童占梅,冉哲.提高大學專業(yè)課程和教材質量的思考:以哈爾濱工業(yè)大學“C語言程序設計”國家精品課程為例[J].工業(yè)和信息化教育,2013(5):20-24.
[5] 蘇小紅,趙玲玲,王甜甜,等.C語言公共基礎課教學內容與教學方法的改革與實踐[J].工業(yè)和信息化教育,2014(12):70-73.
[6] 喬憲遐,楊樂.基于CDIO的C語言虛擬實驗室建設研究[J].實驗技術與管理,2015,32(10):122-123.
[7] 蘇小紅,王宇穎,王甜甜,等.面向綜合實踐能力考核的C語言編程考試自動評分系統(tǒng)[J].實驗技術與管理,2010,27(10):175-177.
[8] 汪紅兵,姚琳,武航星,等.C語言程序設計課程中的計算思維探析[J].中國大學教學,2014(9):59-62.
[9] 井超,梁志劍,靳雁霞.基于無紙化考核系統(tǒng)的C語言程序設計教學模式改革[J].計算機教育,2015(20):35-38.
[10] 李楠.程序語言設計類課程考核方案評價方法的改革與實踐[J].當代教育實踐與教學研究,2015(6):264.
[11] 陳少國.高校教考分離的優(yōu)越性及其實施途徑[J].佳木斯職業(yè)學院學報,2015(1):113.
Teaching reform of C language process assessment based on programming ability training
Chen Xin1,Wang Xingfen2,Jiao Jian1,Yang Dali1
(1. Computer School, Beijing Information Science and Technology University,Beijing 100101, China;2. Teaching Affairs Office,Beijing Information Science and Technology University,Beijing 100192,China)
From the C language programming ability of process assessment reform,this article thinks that the teacher gradually teaches programming knowledge,stage assessment of students programming ability, which can cause the students to have the interest in learning the C language programming,and then acquire the basic programming skills, because a freshman is difficult to grasp the basic knowledge of C language programming. Through the teaching reform and practice,this article indicates that the programming arising in the process of examination reform of C language teaching content,teaching methods,teaching means and examination of innovation can stimulate students’ interest in learning, and enhance their independence and self-awareness of the programming.
programming ability; C language program design; process evaluation
10.16791/j.cnki.sjg.2016.09.040
2016-04-13修改日期:2016-05-10
北京市教育教學改革項目“面向應用型人才培養(yǎng)的《程序設計基礎》課程過程化教學與考核改革”(2013-ms184);北京市教育教學改革聯(lián)合項目“首都地方院校實施‘卓越工程師教育培養(yǎng)計劃’的研究與實踐”(2013-lh20)
陳昕(1965—),男,江西南昌,博士,教授,研究方向為計算機網絡系統(tǒng)性能評價與安全
王興芬(1968-),女,山東平度,博士,教授,研究方向為電子商務安全.
E-mail:xywang@bistu.edu.cn
G642.0
B
1002-4956(2016)9-0155-04