龐潤芳 鄭坤燦 張煥香 胡曉燕(內(nèi)蒙古科技大學(xué),包頭 014010)
高等院校C語言課程教學(xué)改革探析
龐潤芳鄭坤燦張煥香胡曉燕
(內(nèi)蒙古科技大學(xué),包頭014010)
目前我國部分高校C語言教學(xué)普遍存在重理論輕實踐的教學(xué)現(xiàn)狀,導(dǎo)致課堂枯燥乏味,學(xué)生積極性、主動性不足。本文結(jié)合我校近年來C語言程序設(shè)計課程教學(xué)實踐經(jīng)驗,從程序設(shè)計課程本身的趣味性、實用性、實踐性、挑戰(zhàn)性和創(chuàng)新性的特點出發(fā),提出了“以學(xué)生為主體,教師為引導(dǎo),案例為驅(qū)動,實踐為主線,應(yīng)用為目標”的教學(xué)體系和具體措施。
高等院校;C語言;教學(xué)改革
C語言對高校理工科的學(xué)生來說不失為一種最佳的編程入門語言,C語言程序設(shè)計的教學(xué)對信息技術(shù)能力的培養(yǎng)起到了至關(guān)重要的作用[1]。C語言程序設(shè)計經(jīng)過多年的探索和教學(xué)改革,已經(jīng)積累了豐富的教學(xué)經(jīng)驗,在軟件和硬件方面都有了較大的發(fā)展。然而隨著社會發(fā)展對計算機人才需求的進一步提高,C語言程序設(shè)計教學(xué)仍然存在很多問題,比如大多高校仍采用理論教學(xué)與實驗分離的傳統(tǒng)教學(xué)模式,重理論輕實驗,實驗時數(shù)安排不足,課堂教學(xué)模式單一僵化,學(xué)生積極性和主動性差,學(xué)生動手能力不足等等。
許多高校開始引入西方先進教育理念,基于建構(gòu)主義和CDIO工程教育理念的項目法教學(xué)方式,采用案例任務(wù)驅(qū)動的教學(xué)改革,對學(xué)生積極性、主動性和綜合應(yīng)用能力都有所提高。部分高校開始對西方教育理論消化吸收,并結(jié)合我國及自己院校特點,甚至利用微課堂,提出以學(xué)生為主體、教師為導(dǎo)向、應(yīng)用為目標、培養(yǎng)學(xué)生的實踐動手能力為著力點的教學(xué)理念和教學(xué)體系,消化CDIO工程教育理念構(gòu)建“粗、精、仿、練、操”五步教學(xué)法具有很強的可操作性,使學(xué)生既掌握基本的知識點,又掌握學(xué)習(xí)方法。這些新的教改成果與傳統(tǒng)的教學(xué)法相比有很大的區(qū)別,主要表現(xiàn)在改變了傳統(tǒng)的三個中心——由以教師為中心轉(zhuǎn)變?yōu)橐詫W(xué)生為中心,由以課本為中心轉(zhuǎn)變?yōu)橐浴绊椖俊睘橹行?,由以零散知識點的學(xué)習(xí)為中心轉(zhuǎn)變?yōu)橐詫嶋H任務(wù)目標完成為中心。
個人認為三個中心中尤其以學(xué)生中心的轉(zhuǎn)變?yōu)楦荆绾误w現(xiàn),應(yīng)該以學(xué)生主動學(xué)習(xí)的程度或占有的時間來考量。最初由于計算機資源短缺,理論課和上機是分離的,連上課演示都難以做到,因而學(xué)生計算機知識基本停留在書本上。后來上機學(xué)時逐年增加,目前上課學(xué)生可以人手一機了,所以完全可以實現(xiàn)以學(xué)生為中心的教學(xué)轉(zhuǎn)變,而且計算機本身就是實踐性極強的課程,所有程序可以直接在電腦上調(diào)試、運行并看到結(jié)果。許多學(xué)生可以在電腦上自學(xué)完成,甚至不需要老師,況且計算機語言本身提供了各種嘗試的可能,這樣既能激發(fā)學(xué)生的好奇心,又能調(diào)動學(xué)生積極性和主動性?;诖?,鐘美[4]提出“精講多練”,魯紅英[9]等在國家級精品課程“C/C++語言程序設(shè)計”建設(shè)過程中,將教師講課課時調(diào)整為課堂學(xué)時的1/3,其余2/3用于學(xué)生實踐操作。
我們在近幾年的C語言教學(xué)探索發(fā)現(xiàn),教師講課學(xué)時還可以繼續(xù)縮短,對語法少講和精講,甚至許多語法不用講,學(xué)生自己在編程時通過嘗試即能學(xué)明白,主講編程思想和方法即可。這樣,學(xué)生主動性和積極性明顯增強。本文根據(jù)我們近年來的C語言教學(xué)改革經(jīng)驗,設(shè)計了一套“以學(xué)生為主體,教師為引導(dǎo),案例為驅(qū)動,實踐為主線,應(yīng)用為目標”C語言教學(xué)模式。
C語言程序設(shè)計教學(xué)主要存在以下三個方面的突出問題。根據(jù)與相關(guān)院校的交流和查閱大量文獻調(diào)研,發(fā)現(xiàn)這些問題在許多高校C語言程序設(shè)計教學(xué)中也同樣存在。
第一,教學(xué)方法沒有創(chuàng)新。目前在C語言程序設(shè)計課程的教學(xué)中主要仍以講授為主,練習(xí)為輔。這種傳統(tǒng)的教學(xué)方式會導(dǎo)致教師與學(xué)生之間的教學(xué)互動性不足;學(xué)生的學(xué)習(xí)主動性不夠;動手能力差;個性難以發(fā)揮;更難激發(fā)學(xué)生的創(chuàng)新性。
第二,C語言概念抽象,知識點多,學(xué)生在學(xué)習(xí)中對一些復(fù)雜、靈活、綜合性的算法難以理解,獨立編程時不知從何入手,漸漸失去學(xué)習(xí)的興趣。
第三,對學(xué)習(xí)重視程度不夠。由于和專業(yè)脫節(jié),很多學(xué)生認為,這只是一門基礎(chǔ)課,在以后的學(xué)習(xí)和實際工作中作用不大,在程序設(shè)計工作崗位中很少會使用到C語言,因此從心理上抗拒這門課程的學(xué)習(xí)。
為了提高學(xué)生的學(xué)習(xí)興趣,增強學(xué)習(xí)自主性,最終達到提高教學(xué)質(zhì)量的目的,內(nèi)蒙古科技大學(xué)工程訓(xùn)練中心近年來推行了“以學(xué)生為主體,教師為引導(dǎo),案例為驅(qū)動,實踐為主線,應(yīng)用為目標”的課程教學(xué)改革研究。其中“以學(xué)生為主體”的思想主要體現(xiàn)學(xué)生學(xué)習(xí)的中心地位和主體地位,學(xué)習(xí)是學(xué)習(xí)者本人的事,應(yīng)讓他積極主動地進行,親自實踐,有問題去請教老師,而不是老師去告之,不能淪為聽課的機器。教學(xué)方法上要體現(xiàn)因材施教,對優(yōu)等生和基礎(chǔ)差的學(xué)生均要重點關(guān)注,前者以啟發(fā)和鼓勵為主,后者還要結(jié)合引導(dǎo)和督促。具體教改思路是把C語言程序設(shè)計課程的教學(xué)分為兩個階段:基礎(chǔ)內(nèi)容教學(xué)和綜合實訓(xùn)?;A(chǔ)內(nèi)容即傳統(tǒng)教學(xué)內(nèi)容,包括數(shù)據(jù)類型、表達式、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、共用體和文件等。在完成基礎(chǔ)內(nèi)容教學(xué)后,為了加強教學(xué)內(nèi)容的實用性、適用性及趣味性,結(jié)合學(xué)生的專業(yè),設(shè)置相應(yīng)的綜合實訓(xùn)項目,進一步鞏固所學(xué)的知識,提高學(xué)生編程能力。
1.C語言課程基礎(chǔ)教學(xué)內(nèi)容和方法設(shè)計
(1)教學(xué)內(nèi)容設(shè)計:知識結(jié)構(gòu)—知識點—經(jīng)典案例—小練習(xí)
根據(jù)C語言程序設(shè)計課程知識結(jié)構(gòu)的內(nèi)在聯(lián)系和教學(xué)目標,依次安排基礎(chǔ)教學(xué)內(nèi)容,提煉知識點,對主要知識點進行分類和有機重組,每組知識點設(shè)計一個相應(yīng)的經(jīng)典小案例,同時配一個有趣或有用的練習(xí)題目,如表1所示。
(2)C語言課程基礎(chǔ)教學(xué)方法設(shè)計
我們知道,傳統(tǒng)教學(xué)模式一般都以教師講授為主,學(xué)生被動的聽課,這種填鴨式的教學(xué)方式問題越來越突出,在程序設(shè)計教學(xué)中尤甚。課堂沉悶、乏味和無趣,學(xué)生昏昏欲睡,味同嚼蠟,缺乏活力,更談不上積極性、主動性和創(chuàng)新思想。程序設(shè)計本身是實踐性很強的課程,很多知識都能直接在計算機上測試驗證,很多結(jié)果都能直接在計算機上展示和完成,知識學(xué)過后立刻就能遷移到相關(guān)的生活和工程應(yīng)用中。所以程序設(shè)計課程本身就極具趣味性、實用性、實踐性、挑戰(zhàn)性和創(chuàng)新性。因此,我們抓住這一特點,進行了教學(xué)方法的重新設(shè)計,讓學(xué)生從幕后走向前臺,從被動聽講變?yōu)橹鲃訉嵺`,從實踐中學(xué)習(xí)。而老師從臺前到了幕后,當然不是變?yōu)楸粍樱歉又鲃?,重在引?dǎo)、管理、解答和評判。具體的教學(xué)過程和方法設(shè)計如圖1所示。首先,教師分配1/4學(xué)時精講,圍繞案例展開,講主要知識點、算法及實現(xiàn),然后把3/4學(xué)時用于學(xué)生動手測試、驗證、展示程序結(jié)果和嘗試新的應(yīng)用。教師在此期間進行引導(dǎo)和解決疑惑,鼓勵學(xué)生進行各種編程嘗試,對學(xué)生的積極性、主動性和創(chuàng)新行為給予及時的反饋。不過該方法用于一個教師帶1到2個班是可以的,1個班最好,我們目前調(diào)整到1個自然班大概40人,但對于3個班(100人)及以上的大班授課效果不好,答疑輔導(dǎo)不能及時解決,不適宜采用這樣的方法。
表1 基礎(chǔ)教學(xué)內(nèi)容設(shè)計
圖1 基礎(chǔ)內(nèi)容教學(xué)過程和方法設(shè)計
2.C語言課程綜合訓(xùn)練內(nèi)容和方法設(shè)計
綜合實訓(xùn)是在基礎(chǔ)內(nèi)容教學(xué)結(jié)束后,利用部分課內(nèi)時間,一般課內(nèi)4學(xué)時,持續(xù)時間在1-2周(因為C語言課程安排每周2學(xué)時),在此期間,學(xué)生要根據(jù)所選題目的難度額外安排10-15小時的課外時間,計算機使用情況是上課在機房,一人一臺電腦,課后可以使用自己的電腦,也可以在中心提供的開放機房進行。綜合實訓(xùn)的目的是通過一個綜合的專業(yè)應(yīng)用題目,培養(yǎng)學(xué)生綜合運用知識的能力、綜合程序設(shè)計能力、分析問題和解決問題能力,以及團隊合作能力。具體實施方法是:首先,教師結(jié)合學(xué)生的專業(yè)背景給出4-6個與自身專業(yè)有關(guān)的應(yīng)用題目;然后,學(xué)生5-6人為一組,在給定的題目中選擇一項,也可以自行擬定其他的題目;最后,當學(xué)生完成題目后由任課教師驗收,給出實訓(xùn)成績。在教學(xué)方法上,教師指導(dǎo)學(xué)生分析問題,查閱文獻,引導(dǎo)學(xué)生組內(nèi)討論確定算法,協(xié)助學(xué)生完成程序編寫和調(diào)試,同時對學(xué)生進行評價判斷。
3.考核方式
內(nèi)蒙古科技大學(xué)工程訓(xùn)練中心“C語言程序設(shè)計”課程考核體系是過程考核和期末考試相結(jié)合,過程考核和期末考試各占總成績的50%,在過程式考核中,出勤和課堂表現(xiàn)占20%,課外實踐(自主學(xué)習(xí)園地)占10%,實訓(xùn)項目占20%,對實訓(xùn)項目和課外實踐中表現(xiàn)特別突出的,可看出其已經(jīng)掌握基本知識和編程方法同時能夠很好的應(yīng)用于具體問題解決的學(xué)生,可以直接免試并給予優(yōu)以上的成績。期末考試的形式為機試,考察基礎(chǔ)知識和編程能力。
4.教學(xué)效果分析
我們至今已進行了三個學(xué)年的改革實踐,通過對2014-2015年第二學(xué)期的C語言課程綜合成績分析可以看到如下教學(xué)成果。
本學(xué)期選修C語言課程的學(xué)生共2501人,其中847人參與了教學(xué)改革,我們選取了平均分、不及格率、重點難點掌握程度作為評價指標,詳細結(jié)果見表2。從表中可以看出,參與改革的學(xué)生平均成績提高了近7個百分點,不及格率降低了約5個百分點,重難點理解掌握程度有了較大幅度提高。成績只是學(xué)生學(xué)習(xí)效果的一方面的反映,參與改革的學(xué)生更多的是表現(xiàn)在學(xué)習(xí)方法、學(xué)習(xí)積極性主動性和動手實踐能力方面的提高,這對學(xué)生是受益匪淺的。
表2 參與教改和未參與教改班級考試成績分析表
通過一段時間的實踐,學(xué)生積極性和主動性增強了,編程能力、綜合實踐能力和創(chuàng)新能力有了明顯提高。但問題還有不少,比如教師精講學(xué)時的控制,綜合實訓(xùn)中學(xué)生課后學(xué)時的保證,實訓(xùn)題目的難易程度等。鑒于此,我中心會在以后的教學(xué)實踐中繼續(xù)總結(jié)經(jīng)驗、不斷完善和探索新的方法,以提高學(xué)生用C語言解決實際問題的綜合能力。
[1]國家教委高教司.加強工科非計算機專業(yè)計算機基礎(chǔ)教學(xué)工作的幾點意見教育司 ([1997]155號)[EB/OL]http://dean.lzptc.edu.cn/news/news_view.asp?newsid=47.
[2]吳敏,俞瓊,許棣華,等.基于建構(gòu)主義的獨立學(xué)院C語言課程教學(xué)改革實踐[J].計算機教育,2012(22).
[3]項響琴.德國理念指導(dǎo)下的教學(xué)方法改革——以C語言課程為例[J].計算機教育,2013(21).
[4]鐘美.培養(yǎng)應(yīng)用型人才為目標的C語言教學(xué)改革[J].計算機教育,2013(16).
[5]張蕾.基于項目化教學(xué)的“C語言程序設(shè)計”課程改革[J].計算機教育,2013(2).
[6]李文娟.項目驅(qū)動模式在高職《C語言程序設(shè)計》課程教學(xué)中的應(yīng)用[J].軟件導(dǎo)刊,2014(12).
[7]胡楓.《C語言程序設(shè)計》的案例式教學(xué)的設(shè)計[J].青海師范大學(xué)學(xué)報(自然科學(xué)版),2010(4).
[8]林志陽,王兆暉,張莉.淺談《C語言程序設(shè)計》教學(xué)與實踐[J].計算機光盤軟件與應(yīng)用,2014(21).
[9]魯紅英,肖思和,孫淑霞.“C/C++語言程序設(shè)計”課程教學(xué)改革與實踐[J].計算機教育,2013(7).
[10]方紅琴.立體式C語言程序設(shè)計教學(xué)改革探討[J].計算機教育,2012(12).
[11]張麗華,葉利華.基于微課程的C語言程序設(shè)計教學(xué)改革探索[J].計算機教育,2014(6).
[12]吳永芬,陳衛(wèi)衛(wèi),李志剛,等.面向創(chuàng)新實踐能力培養(yǎng)的C語言程序設(shè)計實踐教學(xué)改革[J].計算機教育,2014(3).
Teaching Reform in C Language Course
PANG Runfang,ZHENG Kuncan,ZHANG Huanxiang,HU Xiaoyan
(Inner Mongolia University of Science and Technology,Baotou 014010,China)
There is a common phenomenon in C language teaching among some of our universities and colleges:theory is emphasized,while practice is neglected.As a result,the course is not interesting and the students are not motivated.Based on our teaching experience in the past few years,we have developed a series of new teaching principles and activities,aimed to make the course more interesting,practical,challenging and innovative.The new way of teaching is students centered,while teachers serve as facilitator and collaborator.The new way of teaching is case driven,practice focused and targeted on application.
university and college;C language;teaching reform
G642.0
龐潤芳(1973—),女,副教授,研究方向:數(shù)字圖像處理。
2014年內(nèi)蒙古科技大學(xué)教學(xué)(教改)研究項目(JY2014123);內(nèi)蒙古科技大學(xué)精品課程支持項目(JP2015009)。