摘 要:C語言作為編程語言的基礎(chǔ)課程,是高等院校計(jì)算機(jī)相關(guān)專業(yè)的必修課,其目標(biāo)是培養(yǎng)學(xué)生的計(jì)算機(jī)思維能力以及解決問題的能力[1]。但在傳統(tǒng)教學(xué)模式下,學(xué)生缺乏練習(xí),缺乏興趣。因此,筆者根據(jù)在講授C語言過程中出現(xiàn)的問題,結(jié)合學(xué)生特點(diǎn)和專業(yè)定位,進(jìn)行深入思考,提出了教學(xué)模改革創(chuàng)新,將傳統(tǒng)的“48+16”教學(xué)模式改為“64學(xué)時(shí)理論實(shí)踐同步”的教學(xué)模式。本文深刻總結(jié)了傳統(tǒng)教學(xué)模式中存在的弊端,詳細(xì)闡述了教學(xué)模式改革中各項(xiàng)改革實(shí)施細(xì)節(jié)。
關(guān)鍵詞:C語言;能力培養(yǎng);教學(xué)改革
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:As the basic course of programming languages,C Language is a compulsory course for computer-related majors in colleges and universities.It aims to cultivate the student's ability of thinking and solving problems in the field of computer science.But,in the traditional teaching mode,students do not have enough practice and enthusiasm.Thus,Based on the problems existing in C Language teaching process,the paper integrates the student's characteristics with the major orientation,and accordingly proposes a teaching mode reform and innovation,which converts the traditional "48+16" teaching mode into the "64-hour theory-practice paralleled" teaching mode.This paper summarizes the drawbacks in the traditional teaching mode,and elaborates on implementation in the teaching mode reform process.
Keywords:C language;ability training;teaching reform
1 引言(Introduction)
C語言程序設(shè)計(jì)作為編程語言類的基礎(chǔ)課程,在高等院校計(jì)算機(jī)相關(guān)專業(yè)開設(shè),該門課程作為計(jì)算機(jī)相關(guān)專業(yè)編程語言的基礎(chǔ)課程[2,3],是非常好的入門選擇課程,它不僅僅能培養(yǎng)學(xué)生的專業(yè)技術(shù),使之能夠有一技之長,還能培養(yǎng)學(xué)生的計(jì)算機(jī)思維能力,使之能夠用計(jì)算機(jī)的思維進(jìn)行分析問題和解決問題。該門課程結(jié)合軟件、硬件,在學(xué)科設(shè)置中起到舉足輕重的作用[4]。
2 C語言教學(xué)現(xiàn)狀及存在的問題(C Language teaching status and problems)
目前全國高校采取的教學(xué)模式均為傳統(tǒng)教學(xué)模式,課程一共64學(xué)時(shí),其中48—52學(xué)時(shí)在教室進(jìn)行,設(shè)置12到16學(xué)時(shí)的實(shí)驗(yàn)。該種教學(xué)模式主要是“教師講解,學(xué)生聽課”為主。C語言因其豐富的數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)、運(yùn)算符,可以操作硬件,不依賴硬件,目標(biāo)代碼高效以及可移植性強(qiáng)等特點(diǎn),使得在學(xué)習(xí)和講授的過程中理論性太強(qiáng),造成教學(xué)效果不理想的狀態(tài)[5,6]。分析存在的問題主要有以下幾點(diǎn):
(1)教學(xué)目標(biāo)不明確
編程類課程的目標(biāo)是能夠讓學(xué)生通過一個(gè)學(xué)期的學(xué)習(xí)掌握一門計(jì)算機(jī)語言,理解計(jì)算機(jī)的運(yùn)行方式、計(jì)算機(jī)語言的本質(zhì)特征,培養(yǎng)計(jì)算機(jī)思維能力,為后續(xù)的課程做好準(zhǔn)備。絕不僅僅是通過期末考試,拿到好成績;通過計(jì)算機(jī)等級(jí)考試,拿到證書。因課時(shí)的有限性,教師在講授過程中重點(diǎn)講解考試涉及章節(jié),如順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、函數(shù)等,而對(duì)指針、結(jié)構(gòu)體、預(yù)處理等章節(jié)的講解會(huì)降低深度。給學(xué)生造成學(xué)習(xí)課程是為了考試,而非完整掌握一門語言的精髓這樣的錯(cuò)覺。在學(xué)期末學(xué)生對(duì)部分章節(jié)內(nèi)容只有簡單的了解,沒有深刻理解。
(2)理論學(xué)時(shí)多,實(shí)踐學(xué)時(shí)少
該門課程一共64學(xué)時(shí),其中理論學(xué)時(shí)48,實(shí)踐學(xué)時(shí)16。按照課程比例,學(xué)生上三次課才能上一次實(shí)驗(yàn),也就是說兩周內(nèi)有三次理論課,一次實(shí)踐課。學(xué)生需要在兩個(gè)學(xué)時(shí)內(nèi)對(duì)六個(gè)學(xué)時(shí)的理論知識(shí)進(jìn)行練習(xí)和總結(jié)。C語言的理論知識(shí)本身就很零散和復(fù)雜,如果沒有足夠充分的復(fù)習(xí),學(xué)生在上機(jī)時(shí)已經(jīng)不知道要對(duì)哪些知識(shí)點(diǎn)進(jìn)行驗(yàn)證和練習(xí)。直接導(dǎo)致的結(jié)果就是學(xué)生將書上的例題照搬到Visual Studio 2010環(huán)境中看看結(jié)果,至于涉及的知識(shí)點(diǎn)全然不知。
(3)理論教學(xué)依賴教材,創(chuàng)新差,缺乏互動(dòng),學(xué)生學(xué)習(xí)興趣淡薄
不論是哪一種版本的教材,為了結(jié)構(gòu)的完整性,章節(jié)設(shè)置基本都為緒論-算法-基本結(jié)構(gòu)-數(shù)組-函數(shù)-指針-結(jié)構(gòu)體-文件-預(yù)處理-位運(yùn)算,設(shè)計(jì)的案例單一,經(jīng)典算法較多,實(shí)用性差,且隨書PPT大都是課本的復(fù)制。教師在講授過程中依賴教材和PPT,導(dǎo)致學(xué)生對(duì)課堂內(nèi)容缺乏興趣,互動(dòng)少,對(duì)一些經(jīng)典案例也只是死記硬背經(jīng)典算法,缺乏自主創(chuàng)新。
(4)實(shí)踐環(huán)節(jié)任務(wù)單一,缺乏創(chuàng)新動(dòng)力,且指導(dǎo)能力有限
鑒于課時(shí)的有限,教師在安排實(shí)踐任務(wù)時(shí)盡可能地讓學(xué)生對(duì)理論知識(shí)進(jìn)行練習(xí),如此一來學(xué)生專注于基本知識(shí)的練習(xí)和簡單案例的驗(yàn)證,沒有更多的時(shí)間對(duì)新問題新案例進(jìn)行思考及編程實(shí)現(xiàn)。而且開設(shè)該門課程的所有專業(yè)實(shí)踐內(nèi)容一樣,很大程度限制了將所學(xué)專業(yè)與該課程結(jié)合的力度。
C語言的語法非常謹(jǐn)慎,細(xì)微的錯(cuò)誤都會(huì)導(dǎo)致編譯出錯(cuò)等一系列的問題,在實(shí)踐環(huán)節(jié)當(dāng)中,學(xué)生初次接觸編程語言,對(duì)編程語言以及編程環(huán)境不熟悉,在編程過程中出現(xiàn)的問題千奇百怪,而且學(xué)生對(duì)調(diào)試程序的過程還沒有接觸。如果前期實(shí)踐過程中不能及時(shí)解決學(xué)生編程出現(xiàn)的問題,會(huì)直接導(dǎo)致學(xué)生對(duì)編程產(chǎn)生抵觸情緒。而高校一般課堂容量在80到160,一名指導(dǎo)老師想要及時(shí)解決每位同學(xué)的問題難度系數(shù)非常大。
(5)考核方式中欠缺對(duì)實(shí)際編程能力的考核
根據(jù)調(diào)研,目前全省高??己朔绞酱蠖嗖扇〉姆绞綖椤捌谀┕P試成績+平時(shí)成績”,比例一般在80%—20%到70%—30%,其中平時(shí)成績中涉及出勤、作業(yè)和實(shí)驗(yàn)報(bào)告及表現(xiàn)。從中可以看出考核中不能體現(xiàn)學(xué)生的編程能力,計(jì)算機(jī)思維能力,語法的深刻認(rèn)知以及正確編寫能力,亦不能考查學(xué)生在實(shí)際項(xiàng)目中需要的任務(wù)分工以及團(tuán)隊(duì)合作能力。如此,學(xué)生重在學(xué)習(xí)期末涉及章節(jié)及知識(shí)點(diǎn),對(duì)實(shí)踐環(huán)節(jié)不重視,計(jì)算機(jī)思維能力不能得到鍛煉,編程能力不能得到提升,創(chuàng)新能力不能得以提高。
3 C語言教學(xué)改革措施(C language teaching reform measures)
通過在傳統(tǒng)教學(xué)模式的教學(xué)工作中出現(xiàn)的問題,通過不斷探索,深刻認(rèn)識(shí)到要想提升學(xué)生能力,唯有進(jìn)行教學(xué)改革,找到適合課程、學(xué)生和老師的教學(xué)模式,才能培養(yǎng)出經(jīng)濟(jì)社會(huì)需求的人才。下面詳細(xì)敘述教學(xué)改革的措施:
(1)課堂模式改革
進(jìn)行課堂翻轉(zhuǎn),將原有的“48+16”學(xué)時(shí)的課堂結(jié)構(gòu)改革為全程機(jī)房上課。機(jī)房需要同時(shí)滿足教室上課和機(jī)房實(shí)踐的需求,須有投影儀、屏幕、黑板等基本設(shè)施滿足對(duì)理論性知識(shí)的講解和說明,須能夠滿足學(xué)生一人一臺(tái)電腦進(jìn)行獨(dú)立編程的環(huán)境,同時(shí)還需要有教學(xué)軟件能夠滿足教師對(duì)學(xué)生機(jī)的控制、監(jiān)控、下發(fā)作業(yè)、回收作業(yè)、回答問題、學(xué)生個(gè)人演示等功能。
翻轉(zhuǎn)課程既能夠滿足教師對(duì)理論知識(shí)的講解,又能滿足學(xué)生對(duì)所學(xué)知識(shí)及時(shí)上機(jī)編程驗(yàn)證深刻理解。
50分鐘的課堂分為三個(gè)環(huán)節(jié),前15分鐘為理論知識(shí)講解環(huán)節(jié),在該環(huán)節(jié)教師對(duì)本節(jié)課的理論知識(shí)進(jìn)行深入淺出的講解,并通過與實(shí)際生活相貼切的例子幫助學(xué)生更好地理解知識(shí)點(diǎn)的社而至以及知識(shí)點(diǎn)的原理。通過案例講解培養(yǎng)學(xué)生運(yùn)用計(jì)算機(jī)思維解決問題的能力;中間25分鐘為學(xué)生上機(jī)操作環(huán)節(jié),在環(huán)節(jié)學(xué)生不僅可以對(duì)正確的C語言語句進(jìn)行練習(xí),還可以在編程過程對(duì)可能出現(xiàn)的錯(cuò)誤進(jìn)行學(xué)習(xí),以此更加深刻理解正確的C語言語句。最后10分鐘要求學(xué)生對(duì)編程中出現(xiàn)的錯(cuò)誤以及錯(cuò)誤的原因進(jìn)行總結(jié),教師對(duì)學(xué)生編程中出現(xiàn)的錯(cuò)誤進(jìn)行匯總,如此一來可以對(duì)錯(cuò)誤印象深刻。
如在輸入輸出函數(shù)中,正確的語法應(yīng)該為:
scanf("sum=%d\n",∑);
printf("sum=%d\n",sum);
學(xué)生通過理論知識(shí)的學(xué)習(xí)對(duì)語法的認(rèn)識(shí)不夠深刻,在實(shí)際編程中可能會(huì)出現(xiàn)的部分錯(cuò)誤書寫方式有:
scanf("sum=%d\n",sum);
scanf("sum=%d\n,"∑);
scanf("sum=%d\n,∑");
scanf("sum=%d\n"∑);
scanf("sum=%d\n",∑);
scanf("sum=%d\n",∑);
scanf("sum=%d\n,∑);
printf("sum=%d\n"sum);
printf("sum=%d\n,sum");
通過在Visual Studio 2010環(huán)境中進(jìn)行語句的編寫和編譯,學(xué)生在編譯調(diào)試的過程對(duì)語句的嚴(yán)謹(jǐn)會(huì)有更加深刻的理解和掌握。前期編程提升了學(xué)生的興趣,一方面能夠在后續(xù)的過程中更加熟練的編程,另一方面學(xué)生對(duì)編程不會(huì)抵觸,更愿意通過編程展示自己的能力,從而進(jìn)一步提升自己。
(2)教學(xué)案例改革
在我校開設(shè)C語言課程的系部有:機(jī)械工程系、電子工程系、自動(dòng)化系、材料工程系、經(jīng)濟(jì)與管理系等,在教學(xué)過程中用的教學(xué)案例如果能夠根據(jù)不同的系部專業(yè)特征設(shè)計(jì),學(xué)生能夠感到所學(xué)課程不僅僅是通過考試獲得證書,更重要的是能夠?qū)⑺鶎W(xué)知識(shí)結(jié)合自己專業(yè)有所應(yīng)用。如電子工程系的學(xué)生對(duì)位運(yùn)算的應(yīng)用比較多,那么在教學(xué)中可以將該部分內(nèi)容設(shè)置更多實(shí)際案例進(jìn)行深度講解。
(3)教學(xué)方法改革
在傳統(tǒng)教學(xué)方式中,教師大都依賴教材所用案例,解法也都是經(jīng)典算法。實(shí)際上在學(xué)生初次學(xué)習(xí)的過程中重點(diǎn)是對(duì)C語言結(jié)構(gòu)的認(rèn)知,并非對(duì)經(jīng)典算法死記硬背。
教師在設(shè)置案例的時(shí)候需要從實(shí)際出發(fā),從生活中考慮,將生活中的例子用C語言的方式表達(dá)出來,學(xué)生可以更加容易理解語言的精華。另外,對(duì)于特定案例,無需要求學(xué)生全部按照經(jīng)典算法來實(shí)現(xiàn),在學(xué)生能夠掌握經(jīng)典算法的基礎(chǔ)上要求學(xué)生可以通過自己的思考用C語言表達(dá)出來。
比如在講解循環(huán)結(jié)構(gòu)時(shí),可以讓學(xué)生求1到10的和,也可以通過學(xué)生去操場跑步的場景引導(dǎo)學(xué)生對(duì)于循環(huán)需要考慮的問題。
在講解案例的過程中根據(jù)所學(xué)知識(shí)點(diǎn)由淺入深循序漸進(jìn)進(jìn)行講解,如設(shè)置案例:輸出九九乘法表。
分析:
第一步:輸出“*”
實(shí)現(xiàn)方式:
printf(“*”);
輸出結(jié)果見圖1:
(4)指導(dǎo)環(huán)節(jié)改革
大部分高校依然存在師生比很大的現(xiàn)象,也就是課程的課容量很大,通常在80—120,教師無法對(duì)實(shí)踐環(huán)節(jié)中學(xué)生出現(xiàn)的問題進(jìn)行詳細(xì)深入的解答。一旦學(xué)生在實(shí)踐環(huán)節(jié)感到吃力,會(huì)對(duì)編程產(chǎn)生抵觸情緒,不利于課程的學(xué)習(xí)。
為此,可以采取以下幾種方式進(jìn)行:
一是減少課容量,設(shè)置在20—30人比較合適。
二是對(duì)學(xué)生進(jìn)行分組,對(duì)出現(xiàn)的問題先組內(nèi)解決,組內(nèi)無法解決的問題尋求其他小組的幫助和老師的幫助。
三是為每個(gè)班級(jí)配備實(shí)驗(yàn)助手,實(shí)驗(yàn)助手一般是高年級(jí)或者喜愛編程者,通過在實(shí)驗(yàn)助手和老師共同努力下提高實(shí)踐環(huán)節(jié)的效率。
(5)考核方式改革
提高編程考核成績比重,設(shè)置考核組成比例為:期末:平時(shí):編程為3:2:5。
以往的考核重在期末筆試成績和平時(shí)實(shí)驗(yàn)報(bào)告上,缺乏對(duì)實(shí)際編程能力的考核。在本次改革中不僅要對(duì)理論知識(shí)的掌握的情況進(jìn)行考核,還要對(duì)學(xué)生的編程能力進(jìn)行考核。主要通過兩種方式,一是在重要章節(jié)設(shè)置大作業(yè),可以對(duì)學(xué)生分組,3—5人一組比較合適;二是在學(xué)期接近尾聲之際設(shè)置課程大作業(yè),該大作業(yè)將多個(gè)章節(jié)知識(shí)點(diǎn)融合,通過大作業(yè)對(duì)學(xué)生的實(shí)際編程能力進(jìn)行考核。
4 結(jié)論(Conclusion)
筆者總結(jié)了在《C語言程序設(shè)計(jì)》課程的教學(xué)工作中出現(xiàn)的問題,結(jié)合問題進(jìn)行了深入思考,提出了《C語言程序設(shè)計(jì)》教學(xué)模式改革,詳細(xì)闡述了教學(xué)模式改革中各項(xiàng)措施的具體實(shí)施細(xì)節(jié),如課堂模式、教學(xué)案例、教學(xué)方法、指導(dǎo)環(huán)節(jié)、考核方式等,旨在提升學(xué)生在學(xué)習(xí)過程中興趣和成果,鍛煉學(xué)生的實(shí)際操作能力,培養(yǎng)學(xué)生的計(jì)算機(jī)思維能力和分析問題解決問題的能力。
參考文獻(xiàn)(References)
[1] Ying Li,Shimin Zhang,Meihua Wang.Teaching Study on C Language Program Design Course Based on Computational Thinking[A].Information Engineering Research Institute,USA.Proceedings of 2nd International Conference on Simulation and Modeling Methodologies,Technologies and Applications(SMTA 2015)[C].Information Engineering Research Institute,USA:2015:4.
[2] LIU Shukun,CHEN Zhen,TANG Jinpeng.The Improved Methods of Teaching Practice Based on C Language Programming[A].計(jì)算機(jī)科學(xué)與電子技術(shù)國際學(xué)會(huì)(Computer Science and Electronic Technology International Society).2013年教育技術(shù)與管理科學(xué)國際會(huì)議論文集[C].計(jì)算機(jī)科學(xué)與電子技術(shù)國際學(xué)會(huì)(Computer Science and Electronic Technology International Society),2013:4.
[3] Ruilian Hou 1,a,Aizhang Guo 1,b 1 School of information,Shan Dong Polytechnic University Jinan,China. Research of the Teaching Model Reform of C Language Program[A].Information Engineering Research Institute, USA.Lecture Notes in Information Technology—Proceedings of 2012 2nd International Conference on Future Computers in Education(ICFCE 2012)[C].Information Engineering Research Institute,USA:2012:5.
[4] 曾慶尚,高慧,梁振軍.C語言程序設(shè)計(jì)的實(shí)踐教學(xué)改革與探索[J].大學(xué)教育,2014(6):116-117.
[5] 查建中.工程教育改革戰(zhàn)略“CDIO”與產(chǎn)學(xué)合作和國際化[J].中國大學(xué)教學(xué),2008(5):16-19.
[6] 張吳波,史旅華.建立開放的實(shí)驗(yàn)體系,提高C語言教學(xué)質(zhì)量[J].大學(xué)教育,2014(4):134-135.
作者簡介:
申月莉(1989-),女,碩士,助教.研究領(lǐng)域:信息安全.