韓瑞東(運城學院計算機科學與技術(shù)系,運城 044000)
淺析地方高?!禖語言程序設(shè)計》的課程教學
韓瑞東
(運城學院計算機科學與技術(shù)系,運城044000)
針對《C語言程序設(shè)計》中普遍存在的問題以及對教學現(xiàn)狀的分析,在教學過程中提出傳統(tǒng)教學與現(xiàn)代化教學手段相結(jié)合,提高課堂效率。并應(yīng)用任務(wù)驅(qū)動引導、案例式、項目、類比以及實踐教學等多種方法,激發(fā)學生的興趣,提高自主學習的積極性,以及增強學生的綜合實踐處理能力,實現(xiàn)教學目標。
教學現(xiàn)狀;教學手段;教學方法;綜合實踐
運城學院131人才專項教改項目(No.JG201642)
《C語言程序設(shè)計》不僅是計算機類相關(guān)專業(yè)的專業(yè)必修課,而且?guī)缀跏撬泄た茖I(yè)的必修課,它的作用不言而喻了。對于地方二本院校的學生來說,由于C語言難度較大,并且學生的水平參差不齊(整體水平有點低),學生接受起來十分困難,學不懂就會對這門課失去興趣。該課程是我系大一新生學習的第一門專業(yè)基礎(chǔ)課,同時是他們首次接觸的編程類語言。學習C語言,不僅能夠為以后要學的編程類、軟件類等相關(guān)課程奠定基礎(chǔ),也能為學生的就業(yè)提供一定的保障。為了提高學生的接受能力,使學生對這門課產(chǎn)生興趣,針對學生上課過程中出現(xiàn)的一些問題,通過課堂上的教學與實踐,提出了一些教學方法與建議。
我院作為一所綜合性的地方普通本科院校,當前我系開設(shè)了計算機科學與技術(shù)、網(wǎng)絡(luò)工程、信息管理與信息系統(tǒng)、數(shù)字媒體技術(shù)及通信工程5個專業(yè)。作為入門語言,C語言是各個專業(yè)開設(shè)的基礎(chǔ)專業(yè)必修課,通過對我院學生及相關(guān)C語言授課老師的調(diào)查分析,主要存在的問題有以下幾點:
(1)對學生的調(diào)研結(jié)果
學生認為C語言知識點太抽象、難懂、內(nèi)容枯燥無味、難以理解,漸漸失去興趣,失去學習的積極性。他們認為學了C語言,到底有何用,不知道體現(xiàn)在什么地方,能夠解決什么樣的問題,沒有目的。剛開始學不懂,往后就越來越聽不懂,也就不想再聽了,結(jié)果就導致了對整個課程失去學習的興趣。
(2)對教師的調(diào)研結(jié)果
教師一致認為現(xiàn)在的學生基礎(chǔ)薄弱,難教,課堂會出現(xiàn)各種問題,如一問三不知、上課睡覺、坐那發(fā)呆不聽課等。一個班真正學習的人非常少,能有20%算是不錯了。學生學習的很辛苦,我們教師教的也非常辛苦。考試后,C語言掛科的人最多。這樣,教師就有了挫敗感,上課也是為了完成相應(yīng)的教學任務(wù),沒有任何目標,也就沒有任何提高了。
針對上述出現(xiàn)的這些問題,為了提高學生對《C語言程序設(shè)計》的學習興趣與積極性,徹底改變當前“學生學的困難,教師教的更困難”這種情況,筆者著手從教材內(nèi)容安排、教學手段使用、教學方法應(yīng)用等方面做出改變,以提高自己的教學效果。
由于《C語言程序設(shè)計》面對的是沒有接觸過任何編程類語言的大一學生,所以在課堂教學中一定要從以下幾個方面進行注意。
(1)教材內(nèi)容的安排
教學內(nèi)容的安排與學生所學的專業(yè)相關(guān),專業(yè)不同,側(cè)重點也就不一樣,就需要根據(jù)所授學生的專業(yè)來對教學目標進行適當?shù)恼{(diào)整。例如,非計算機專業(yè)學生學習該課程的目的在于等級考試,往后通常不再學習編程類語言,則其側(cè)重點就在于理論與實踐培養(yǎng);對于計算機類專業(yè)學生來說,就需要重點培養(yǎng)思維能力,創(chuàng)新能力,綜合實踐能力,還有就是學生的個性化發(fā)展。除此之外,作為教師,更應(yīng)該在教學過程中對教材內(nèi)容進行篩選和重新組織,以利于個人教學工作的開展。我院作為應(yīng)用型院校,對于教學,更應(yīng)該加快課程體系建設(shè),實現(xiàn)教學觀念的改變,從而在課堂上實現(xiàn)以“教師主講”到以“學生主學”的轉(zhuǎn)變,進而實現(xiàn)從“教知識”到“培養(yǎng)學生能力”的轉(zhuǎn)變。
(2)教學手段的使用
①使用傳統(tǒng)教學與現(xiàn)代化教學手段相結(jié)合
在課堂教學過程中,單純的傳統(tǒng)教學或現(xiàn)代化教學都不能夠帶動課堂的氣氛,無法提高學生的興趣和積極性。通過課堂實踐,采用PPT、編程系統(tǒng)演示與傳統(tǒng)板書相結(jié)合的方式激發(fā)了學生學習該課程的興趣,調(diào)動了學生的學習性與積極性。對于一般的知識點采用PPT課件進行講解;對于重點與難點采用板書來講授,向?qū)W生展示思維過程,幫助學生提高抽象思維能力以及解決編程問題能力;程序演示主要是通過編寫C的程序軟件如VC 6.0++、Turbo C等從編寫、編譯、鏈接、運行、測試與調(diào)試讓學生認識并掌握整個過程。在程序的整個執(zhí)行過程中,帶領(lǐng)學生找錯,講解如何找錯與改錯,這樣學生的自主學習能力與積極性就大大地提高了,也真正實現(xiàn)了該門課程的教學宗旨,即理論與實踐相結(jié)合。
②搭建系統(tǒng)平臺實現(xiàn)網(wǎng)絡(luò)教學
C語言教學平臺即將搭建成功,該平臺為學生提供了課程簡介、課程教案、進度表、PPT課件、教學大綱、實驗大綱、經(jīng)典習題、在線測試與答疑等多種資源,為學生學好C語言提供了大大的方便,彌補了課堂時間短的不足。通過搭建這個平臺增強了學生與教師的互動,學生的自主學習能力也大大提高,豐富了教學活動。
(3)教學方法的多樣化
在傳統(tǒng)的C語言教學過程中,主要是以教師講授為主,滿堂灌的這種教學很容易使學生產(chǎn)生疲勞,沒有給學生提供一定的創(chuàng)新思考的空間,容易使學生失去學習的興趣,無法調(diào)動學生的積極性。針對C語言中的重難點等內(nèi)容,要做到應(yīng)用適當?shù)慕虒W方法來講授,以提高課堂質(zhì)量。以下幾種教學方法是我在C語言課堂上常用的,有不錯的效果。
①任務(wù)驅(qū)動式引導教學法
在教學設(shè)計中,教師要注重任務(wù)的設(shè)置,學生通過這些任務(wù)能夠進行思考與探索,掌握所授知識,讓課堂氣氛活躍起來。任何時候,問題都是超好的老師。講解一個知識點,拋出一個或幾個適度的問題都會引導學生進行深入學習。例如,在講解數(shù)組概念時,首先設(shè)置問題:編程計算10個學生的C語言平均成績。學生會按照之前所學的內(nèi)容,想到要用10個變量來定義10個學生的成績。那計算50個呢?定義50個變量就會使問題復雜化,學生此刻就會討論如何定義變量了。那計算100個呢?此時,作為教師,拋出數(shù)組的概念,分析數(shù)組的性質(zhì),這樣學生就會很容易記住并理解數(shù)組的性質(zhì),還會知道在什么樣的情況下使用數(shù)組。通過課堂實踐證明,該種方法充分激發(fā)了學生的自主性和學習積極性,提高了效率。
②案例式教學法
案例式教學法就是在講授某個知識點時,以實際生活中的例子來引入,這樣學生就會很快掌握。例如,交換兩個變量a,b。首先引入例子,如何交換白色盒與彩色盒中的粉筆呢,取出一個空盒子,把白色盒中的粉筆放入空盒子中,然后把彩色盒中的粉筆放入白色盒中,再把空盒子的粉筆放入彩色盒子中,就完成了交換?;氐嚼},學生就會進行交換了,定義第三個變量t,通過t=a;a=b;b=t;這個操作就實現(xiàn)了兩個數(shù)據(jù)的交換。再如,講授關(guān)系運算表達式,(表達式1)||(表達式2),如果表達式1的值為真,則不用計算表達式2;(表達式1)&&(表達式2),如果表達式1的值為假,則不用計算表達2的值。通過與高中物理中的斷路相關(guān)聯(lián),則很容易理解。
③項目教學法
對于我系大部分學生來說,在學完C語言程序設(shè)計后,都說聽得懂,但還是不會編程,項目教學法在很大程度上為學生解決了這個問題。該方法就是結(jié)合理論與實踐,分步講授一個完整的C項目程序,重點在于編程思想與算法分析,從而提高學生處理問題的綜合能力。在課堂初期,主要進行的簡單的編程訓練,對于不同的編程問題,首先要進行分析,然后再進行編程。重要的是編程思想,而不是編程。如判斷三個數(shù)是否能構(gòu)成三角形,并構(gòu)成哪種三角形。首先,要做的是這三個數(shù)是否能構(gòu)成三角形,然后再根據(jù)三角形的性質(zhì)構(gòu)成何種三角形,分析完后再用C語言編寫程序。在課堂后期,比如學習數(shù)組,構(gòu)造數(shù)據(jù)類型,指針等知識點時,通過簡單的實訓項目來給學生講授相關(guān)內(nèi)容,與學生共同編寫相應(yīng)的程序,后一個項目要以前一個為基礎(chǔ),循序漸進。比如學完數(shù)組后,我就要求學生編寫一個學生成績小系統(tǒng)程序,求出該班級30個學生的最高成績,最低成績,平均成績等。學完構(gòu)造數(shù)據(jù)類型時,要求在前面的基礎(chǔ)上加入學生的基本信息等,學完指針,就要利用指針對這些數(shù)據(jù)或信息進行操作,學完文件,要學會通過文件來處理這些數(shù)據(jù)等。通過這種教學方法就會使學生在課堂上變?yōu)橹黧w,而教師則作為主導。該教學方法能夠使學生有興趣地加入到課堂討論中,激發(fā)了學生的學習動力,提升了學生的積極性,增強了學生的編程處理能力。
④類比教學法
C語言中規(guī)則眾多,概念繁瑣,前后內(nèi)容緊密相關(guān),教師應(yīng)該在課堂教學中對相似的概念與規(guī)則進行對比分析,引導學生比較這些知識點的相同點與不同點,再根據(jù)某個不同點來加以區(qū)分,然后讓學生通過實例來進行歸納總結(jié),最后我再補充。只有這樣,學生就不會混淆,并很快理解并掌握這些知識點。例如,指針數(shù)組與數(shù)組指針,這兩個概念學生很難區(qū)別,難度比較大。數(shù)組指針的定義形式為int(*p)[n],指針數(shù)組的定義形式為int*p[n]。有括號與無括號怎么區(qū)分呢?學生很難弄清楚,講解時,首先讓學生了解加括號的當然優(yōu)先級高了,無括號的就[]優(yōu)先級高了。通過對概念的比較與講解,學生就會知道,數(shù)組指針只是一個指針變量,它在內(nèi)存中只占一個指針的空間;而指針數(shù)組是多個指針變量,占用多個指針的存儲空間。再比如,在解決一個編程問題時,如判斷素數(shù),有多種實現(xiàn)算法,這些算法之間既有聯(lián)系也有區(qū)別,通過對比,學生很容易理解并學會用更高效的算法實現(xiàn)編程,也就解決了整個編程問題。
⑤實踐教學法
《C語言程序設(shè)計》該課程不僅要求學生熟練掌握理論知識,而且要有很強的動手實踐能力,只聽不練完成達不到這門課程的學習目的,提高學生實踐能力的唯一辦法就是加強上機練習。在上機實驗中設(shè)置實驗題目時,為了滿足不同層次學生的接受能力,應(yīng)當設(shè)置必做與選做題型。在上實驗課之前,教師應(yīng)當充分研究上機內(nèi)容并明確上機任務(wù),讓學生不僅學生編程還要讓學生有分析算法的能力。編程完并通過測試過,還要讓學生想想所實現(xiàn)的算法是不是最優(yōu)化的,還有改進的地方?jīng)]有。每次上完實驗課后,都要書寫實驗報告來總結(jié)并鞏固所學知識。在該課程學習完以后,學生也要分組完成一個大的綜合性項目,學生分工完成所實現(xiàn)的功能,以提高學生的綜合應(yīng)用能力。
以上通過對《C語言程序設(shè)計》教學現(xiàn)狀及問題的分析,以及在課堂中教學手段與教學方法的應(yīng)用與實現(xiàn),不僅提高了學生的學習熱情,讓學生從被動學習變?yōu)橹鲃訉W習,而且加強了學生的編程處理能力,分析與解決實際問題的綜合實踐能力,以及創(chuàng)新能力,真正實現(xiàn)了該課程的教學目標。
[1]李麗娟.C語言程序設(shè)計教程(第四版)[M].北京:人民郵電出版社,2013.
[2]李麗萍,王冬梅.C語言教學改革的探索與實踐[J].遼寧工業(yè)大學學報,2009(2):136-137.
[3]王巧玲,肖媛哦,葉熹.關(guān)于C語言教學方法的探索和研究[J].井岡山學院學報,2008(6):124-126.
Teaching Status;Teaching Means;Teaching Methods;Integrated Practice
Initial Analysis on Course Teaching of C Language Program Design in Local College
HAN Rui-dong
(Department of Computer Science and Technology,Yuncheng University,Yuncheng044000)
Widespread in the C programming language and the teaching present situation analysis,proposes a combination of traditional and modem teaching methods in the teaching process,improves the classroom efficiency.Applies task-driving,case and project,comparison and practice teaching methods,stimulates the interest of students,improves the motivation of learners,and enhances student's practical ability to achieve teaching objectives.
1007-1423(2016)28-0025-04
10.3969/j.issn.1007-1423.2016.28.007
韓瑞東(1988-),男,山西運城人,碩士研究生,助教,研究方向為軟件開發(fā)技術(shù)
2016-08-23
2016-10-15