前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的c語言程序設計主題范文,僅供參考,歡迎閱讀并收藏。
[關鍵詞]C語言程序設計 改革 實踐
引言
C語言程序設計課程足以C語言為平臺,使學生全面了解程序設計的總體思路、程序沒計的基本算法、C語言的語法規(guī)則以及使用C語言進行構化程序沒計的方法,并具有一定的程序設計和程序調試的能力,為今后使用C語言解決實際問題打下良好的基礎 由于C語言涉及的概念比較復雜,規(guī)則繁多,使用靈活,容易出錯,同時該課程又是學生首先接觸的第一門程序沒計課程,所以很多學生學習起來都感到困難和吃力.并不同程度產(chǎn)生畏懼心理。
在C語言程序設計的教學工作中,我們發(fā)現(xiàn),學生的學習熱情不高,更談不上綜合應用能力的培養(yǎng)與提高。我們C語言課程教學組通過對我校C語言程序設計課程教學現(xiàn)狀的調查分析,總結出了教學效果較差的主要原因,并從教材內(nèi)容、教學方法、教學手段和、上機實踐和考核評價體系五個方面進行了大膽的改革與實踐,并取得了較好的教學效果。
一、C語言程序設計課程教學現(xiàn)狀分析
為了實時掌握學生的真實學習情況,任課教師對學生進行了問卷調查。根據(jù)問卷結果及各位教師的教學經(jīng)驗,總結出我校C語言程序設計課程教學效果較差的主要原因有以下幾點。
(1)內(nèi)容抽象、枯燥,學生學習興趣度低。相比第一學期已經(jīng)或多或少有所接觸并有一定基礎的大學計算機課程而言,第二學期開設的程序設計課程是一種截然不同的全新的課程,出現(xiàn)了大量的新概念、新名詞和新方法。上機時好不容易敲上了一個程序,一運行就會出現(xiàn)一堆錯誤。62.4%的學生看不懂錯誤提示,84.76%的同學不會使用單步跟蹤、Watch窗口等基本調試工具,22.3%的同學竟然根本不知道這些調試工具。于是學生對該課程的學習舉步維艱,學習的熱情急速降溫。
(2)實用性不強。近80%的同學認為C語言的語法知識學了一大堆,但不知道學這些語法有什么用,和自己的專業(yè)知識有什么聯(lián)系。因此,多年積累下來,對C語言程序設計課程的普遍看法是:這是一門無用的公共課,混混過去就算了。于是,很多同學上課不聽講、下課不預習、不復習,周而復始,形成惡性循環(huán)。
(3)進度過于緩慢。C語言程序設計每周4學時,其中,2學時多媒體教室的課堂教學,2學時計算中心機房的上機實踐。計算中心機房為多個班級公用,且無屏幕轉播設施,因此教師的教學僅限于2學時的課堂教學。課時太少,加上學生興趣度低,往往一學期下來指針剛講了基本概念就結束了。有些為參加全國計算機等級二級c語言考試而努力學習的同學也因為指針內(nèi)容學習太少而難以過關。
針對上述C語言程序設計教學效果差的原因,我中心C語言課程組的各位教師認真研讀了“研究式學習”、“CDIO教學模式”、“計算思維”等理論及各種教學方法和實踐方式,借鑒了哈工大全國精品課程“C語言程序設計”課程的先進教學經(jīng)驗,并結合各位教師多年的教學經(jīng)驗,制定了C語言程序設汁課程教學體系的改革方案。該教學體系改革方案從教材內(nèi)容、教學方法、教學手段、上機實踐和考核評價體系五個方面展開。
二、編寫優(yōu)質配套教材,實施教材改革
我們按照研究性學習的內(nèi)涵編寫了《研究式學習——C語言程序設計》教材,目前正在進行面向“計算思維”的新版教材的編寫。該系列教材具備以下特點:
(1) 編寫理念科學性強
整套教材的編寫以“研究式學習”理念為指導,研究性學習是一種建構性的、追求協(xié)商的、尊重個性的、以人為本的“體驗式學習”。在2006年的《國家精品課程評估指標》中新增了一條指標:“重視研究性學習、探究性學習、協(xié)作學習等現(xiàn)代教育理念在教學中的應用;能夠根據(jù)課程內(nèi)容和學生特征,對教學方法和教學評價進行設計?!彼匝芯啃詫W習是以人為本的高等教育價值觀的體現(xiàn),是社會變革和教育發(fā)展的要求,也是精品課程的要求。研究性學習的關鍵是要在學習的各個階段提出適當?shù)难芯繂栴},以便在學習過程中為學生創(chuàng)造能親臨體驗地進行研究學習的平臺,問題的提出貫穿在課堂教學、實驗教學、課后作業(yè)、綜合性作業(yè)以及評價的整個教學過程中。我們自2004年開始就致力于打造C語言程序設計精品課程,所有的教學和改革都圍繞該指導思想進行。2007年以C語言程序設計為主體的“程序設計與計算機語言”被評為省級精品課程,2010年由教材主編主持申報到了省級質量工程教改項目“Inquiry Learning體系在程序設計課程中的運用”研究。這一系列的改革和研究都是以學生為主體,以培養(yǎng)和提高學生的計算機素養(yǎng)為最終目的而制定的。在教學過程中我們經(jīng)常與學生座談和交流,了解學生的需求,完善我們的教學,使我們的教材和教學模式能與時俱進,保持很好的前瞻性和科學性。
(2) 內(nèi)容組織創(chuàng)新性強
本教材用“提出問題—分析問題—給出相關知識—舉一反三”的研究式學習方式來組織“C語言程序設計”這門課程,在注重語言知識培養(yǎng)的同時,更注重邏輯思維能力、程序設計能力及創(chuàng)新能力的培養(yǎng)。內(nèi)容組織方式新穎,符合認識規(guī)律,富有啟發(fā)性,便于學習,有利于激發(fā)學生學習興趣及各種能力的培養(yǎng)。本教材每章都通過4個步驟來完成學習:
第1步,通過提出問題、分析問題來激發(fā)學生的興趣,引起學生的思考。
第2步,通過問題的解決、相關知識點的跟進,使學生能逐步提升程序設計的能力,掌握C語言的知識,引導學生深入思考。
第3步,用一定數(shù)量的編程實例使學生深入理解和掌握所學知識,用具有趣味性的綜合應用編程實例培養(yǎng)學生的邏輯思維能力和編程能力,挖掘學生的創(chuàng)新能力。
第4步,對每部分的知識進行小結,以便學生進一步鞏固應掌握的知識。
每章后面都有“綜合應用”部分,讓學生對所學知識的具體運用有明確的認識,并能在此基礎上進一步鞏固和提升。
三、采取多樣性方法,實施教學方法的改革
(1)任務驅動教學方法
大多數(shù)學生反映C語言概念眾多,許多知識點抽象且難以理解,學生不能將理論和實際應用結合起米, 任務驅動教學法是一種建立在建構主義學習理論基礎上的教學法,它將以往以傳授知識為主的傳統(tǒng)教學理念,轉變?yōu)橐越鉀Q問題、完成任務為主的多維巨動式的教學理念;將再現(xiàn)式教學轉變?yōu)樘骄渴綄W習,使學生處于積極的學習狀態(tài),每一位學生都能根據(jù)自己對當前問題的理解,運用共有的知識和自己特有的經(jīng)驗提出方案、解決問題。在c語言程寧沒計課中.體現(xiàn)“任務驅動”就是讓學生在一個個典型的程序“任務”驅動下,教師引導幫助學生完成一系列程序“任務”,把知識的學習和知識的應用有機地融合在一起,讓學生達到融會貫通、一點帶面的效果。例如,在講授C語言循環(huán)語句的教學時,按任務驅動教學模式不是孤立地介紹格式、作用和使用方法,而是將這一知識點設計為“計算1+2+3+……+1 00=?”這一具體的任務。首先,教師通過提出“任務”讓學生把握教學內(nèi)容,同學們會想象怎么完成這個任務,頭腦里對前而的所學內(nèi)容進行回顧,但前面學過的知識沒法完成這種任務。接下來教師再講解如何使用循環(huán)語句等具體操作方法,這樣教學,學生學得快、學得牢。通過實踐發(fā)現(xiàn)“任務驅動”法有利于激發(fā)學生的學習興趣,培養(yǎng)學生的分析問題、解決問題的能力,提高學生自主學習及與他人協(xié)作的能力,縮短了學習周期。
(2) 項目教學法
很多學生在學完C語言程序沒汁課程后,其結果是聽得懂、卻編不出程序來。針對這一情況,我們在教學過程中采用項目教學法。項目教學法是通過實施一個完整的項目而進行的教學活動,其目的是在課堂教學中把理論與實踐有機地結合起來,充分發(fā)掘學生的創(chuàng)造潛能,提高學生解決實際問題的綜合能力。在課程初期.主要是進行單項的編程練習,重在掌握C語言的基本數(shù)據(jù)類型、語句與程序結構等。在進入函數(shù)、數(shù)組、指針、結構體和文件內(nèi)容教學時,開始綜合實訓項日的編程設計,每一個實訓項日都呵以用前一個實訓項目為基礎。通過一個項目的層層遞進,引入課程內(nèi)容,使得學生的學習循序漸進,螺旋式地上升,效果很好,開闊學生的思維,使得學生在課堂上真正地成為“主體”,教師則扮演“主導”角色。該教學方法使學生積極參與到教學過程中,變被動為主動,有效地調動了學生學習的積極性,深受學生好評。
(3)比較教學法
C語言中的概念比較復雜,規(guī)則繁多.而且內(nèi)容前后聯(lián)系緊密,教學過程中教師通過對比的方式對相關的概念或類似的程序代碼進行比較,進而明確差異,然后進行歸納總結,方便學生理解,將會收到事半功倍的效果 例如,C語言中的指針是教學中的一個難點.這一部分涉及的概念較多,如指向變量的指針、指向數(shù)組的指針、指向字符串的指針、指向函數(shù)的指針等。這些概念很容易混淆,但是將這些概念對比起來講解,學生就很容易理解了。這些概念的共性都是指針,那么它們不同的地方在哪呢?關鍵在于指針變量的指向不同,指針所指向變量的數(shù)據(jù)類型決定了指針變量的用法。通過這樣的講解,概念的定義就很容易理解,概念的用法也就可以統(tǒng)一了。再如,數(shù)據(jù)的排序問題有多種算法,典型的有冒泡排序、選擇排序、插入排序等,求解方程的根的算法也有多種,有迭代法、牛頓迭代法、二分法和弦截法等。這些算法之間既有聯(lián)系又有區(qū)別,講清楚了算法的聯(lián)系和區(qū)別,也就解決了整個問題。
(4)啟發(fā)式教學法
啟發(fā)式教學法就是通過教師的啟發(fā)教學充分調動學生的積極性、主動性和創(chuàng)造性,引導學生主動學習。例如,在學習printf()和scanf()函數(shù)時,通過比較式啟發(fā)方法講解兩函數(shù)的功能、格式、使用特性等方面的異同,通過比較使學生更好地把握兩函數(shù)的特征。在學習選擇排序算法時,使用模擬式啟發(fā)方法,讓l0個學生隨機坐在相鄰的l0個位子上,然后現(xiàn)場模擬排序過程;在學習數(shù)據(jù)交換算法時,使用比喻式和問題式啟發(fā)方法,將兩個變量比喻成兩個瓶子,將里面存放的數(shù)據(jù)比喻成醋和醬油,然后提問:如果將兩個瓶子中的醋和醬油交換一下,應如何操作。
(5)“魚漁兼授式”教學方法。C語言只是一種表述工具,如果只有扎實的語法知識,沒有程序設計思想,根本就不可能寫出程序;而如果有程序設計思想,但語法知識不扎實,勢必在程序的編寫、運行過程中遇到一系列的問題,從而影響學生的學習熱情。而“魚漁兼授式”教學方法可以在基礎語法知識和程序設計方法之問找到一個平衡點,使之相輔相成。例如,在講解數(shù)據(jù)類型時著重講解為什么數(shù)據(jù)要分不同的數(shù)據(jù)類型,需要從哪幾個角度學習不同數(shù)據(jù)類型的特性;講解具體算法時著重講解遇到類似問題時應從哪些角度分析問題,用什么方法進行程序設計從而解決問題;在課前精心設計一些錯誤,尤其是邏輯錯誤,然后講解遇到錯誤可以采用什么手段去剖析、定位錯誤。
四、建立立體化教學體系,實施教學手段的改革
我們從2006年就開始了立體化教學體系的建設,我們建立了精品課程網(wǎng)站,實現(xiàn)了“在線教育”,現(xiàn)在我們課程的課件、課堂教學錄像、軟件、二級等考及相關閱讀等教學資源都放在了網(wǎng)絡上,作業(yè)也通過網(wǎng)絡來實現(xiàn)布置、提交和批閱。師生之間可以通過教學郵箱和課程論壇進行交流,任課教師可以自己定制調查問卷,隨時了解學生的動態(tài)和需求,還可以隨時進行在線測試,課程考試已經(jīng)完全實現(xiàn)了網(wǎng)絡無紙化模式。學生可根據(jù)自身的情況進行課后自主學習、自測學習、互相學習或下載資料、上交作業(yè),有助于學生的個性化發(fā)展和創(chuàng)新能力的培養(yǎng)。設計出包含驗證型、引導型、擴充型和設計型等多種類型的實驗,在實踐中充分體現(xiàn)學生的自主性,有目的、分層次地培養(yǎng)學生的實踐能力,使學生學會從實驗過程中獲取知識,積累經(jīng)驗。通過綜合設計,為學生自己構建、發(fā)展并完善自己的知識體系創(chuàng)造機會,使學生具備獲取知識和應用知識的能力,激發(fā)學生的創(chuàng)新精神,培養(yǎng)學生的團隊精神和協(xié)作能力,全面提高學生的實踐能力。
教學實踐證明:學生在課程網(wǎng)站上作業(yè)及報告的提交率達到98%以上,問卷調查的訪問量達到了85%以上,優(yōu)秀設計作業(yè)的訪問率達到90%以上,其他資料的訪問率也高于60%。由此可見,立體化教學體系很好的實現(xiàn)了不受時間、地點限制的開放式教學。
五、上機環(huán)節(jié)的改革與實踐
上機環(huán)節(jié)是教學活動的重要環(huán)節(jié),是對學生進行基本技能訓練、增強學生實踐能力的關鍵環(huán)節(jié),是培養(yǎng)學生創(chuàng)新精神的重要手段。本科實踐教學的目的是優(yōu)化學生的素質結構、能力結構和知識結構,讓其具備獲取知識、應用知識的能力和創(chuàng)新能力。對于《程序設計與計算機語言》課程,以往的實踐教學內(nèi)容和題目以驗證型和設計型為主。驗證型的題目只要求學生按照書本上的指示,輸入程序,填寫結果即可,學生處于被動接受的地位,學生覺得無趣,毫無創(chuàng)意;設計型的題目對于非計算機專業(yè)學生來說,難度太大,學生無從下手。為了全面提高學生的實踐能力和應用能力,使實踐教學能滿足不同層次學生自主學習的需求,我們制定并實施了以下改革措施:
(1)改革上機實踐的教學模式:將以理論教學為主的教學模式改為由理論教學和實踐教學相互聯(lián)系、相互交叉、彼此滲透、有機結合、同步發(fā)展的教學模式,確立了實踐教學在《程序設計基礎》課程中的重要地位。
(2)設計多種類型的實驗題目:針對學生存在基礎不同、接受能力不同、個性有差異等問題,設計出包含驗證型、引導型、擴充型和設計型共四種類型的實驗,題目盡可能做到覆蓋知識點,切合實際、生動有趣。通過完成不同類型的實驗,有目的、分層次地培養(yǎng)學生的實踐能力,使學生學會從實驗過程中獲取知識,積累經(jīng)驗。
(3)在實踐中充分體現(xiàn)學生的自主性:實驗課的實驗任務由規(guī)定實驗內(nèi)容和自主實驗內(nèi)容兩部分組成。學生在完成規(guī)定的實驗任務后,可根據(jù)自己的興趣和愛好,自主設計一些實驗任務,在教師的指導和幫助下加以完成和實現(xiàn)。通過自主學習和自主設計,能有效地培養(yǎng)學生應用知識的能力和探索精神,極大地激發(fā)學生的學習主動性。
(4) 啟發(fā)引導學生的創(chuàng)造性,培養(yǎng)學生的團隊協(xié)作精神:本課程要求學生以小組(3~5人)為單位進行綜合性程序設計,設計題目主要由學生自己按綜合設計要求來確定,每個小組推選出一名小組長,負責協(xié)調程序的開發(fā)、與教師和組員的聯(lián)系、提交總的設計報告和完整的源程序等工作。在綜合設計過程中,學生處于主導地位,是核心。學習小組的組建,綜合設計題目的選擇或確定,各組員任務的分配與協(xié)調,任務完成后的總結與成績的自評等,主要是按學生的意愿來進行。教師只負責宏觀指導和一些條件支持。當學生的選題不符合要求或系統(tǒng)功能設計不合理時,教師會立即指出,并幫助他們修改和完善;當學生調不通程序或程序中有錯誤時,教師會向他們介紹調試方法和查錯方法,教會他們調試程序。對學習好、能力強的優(yōu)秀學生,教師會注重開擴他們的思路,啟發(fā)他們的思維,引導他們?nèi)カ@取新知識、去探索新問題,激發(fā)他們的創(chuàng)新欲望,使他們能完成高水平的綜合設計。通過綜合設計,可充分體現(xiàn)以學生為中心的教學方法,為學生自己構建、發(fā)展并完善自己的知識體系創(chuàng)造機會,使學生具備獲取知識和應用知識的能力,激發(fā)學生的創(chuàng)新精神,培養(yǎng)學生的團隊精神和協(xié)作能力,全面提高學生的實踐能力,從而有效地提高《程序設計與計算機語言》課程的教學質量。
六、考核評價體系的改革
我校C語言程序設計課程的成績分為理論和實踐兩個分數(shù),各2個學分,兩項成績都合格即可獲得該課程的4個學分。其中:
理論課綜合成績(百分制)=平時(百分制)*(50%)+末考(百分制)*50%;
上機實踐綜合成績(百分制)=平時(百分制)*(60%)+綜合設計(百分制)*40%;
理論成績由平時成績和末考成績組成。其中:平時成績由上課考勤、作業(yè)提交、階段性實驗報告組成,占總成績的50%;末考指的是期末閉卷無紙化考試,末考側重于基礎知識測試,考核學生對基本概念的掌握。題型包括:判斷題、選擇題、填空題和編程題,判斷題題型重點考察學生對基本知識點的掌握程度,選擇題和填空題重點考察學生對程序的閱讀、理解和分析能力,編程題則重點考察學生編寫程序的能力。
無紙化考試采用的是我們中心自己研發(fā)的考試系統(tǒng),但該系統(tǒng)存在一點缺陷,就是編程題需要人工閱卷。因此,我們于2012年開設了一個試點班,本著提高學生編程能力的目的出發(fā),從平時的教學和最后的考試都試用了哈工大研發(fā)的《C語言編程題自動評分系統(tǒng)》。該系統(tǒng)允許學生借助于 C編譯系統(tǒng)調試程序,學生將自己編寫并調試過的程序由客戶端提交給服務器端后,服務器端立即根據(jù)學生程序的結構和語義進行評分,并將評分返回給客戶端,使學生在提交程序之后立即看到自己的分數(shù)。
上機實踐成績則由平時成績和綜合設計成績構成。其中:平時成績由上機考勤、在線單元測試組成,占總成績的60%;課程最后提交的綜合設計則占到了40%。
該考核評價體系涉及到教學實施過程中的每一個環(huán)節(jié),有利于對學生進行科學、客觀的評價,從而避免了一張考卷定乾坤帶來的弊病。
該體系在實施過程中顯現(xiàn)出了其科學性,但是目前存在的問題就是教師的負擔太重。一個學生一學期一般要提交12份報告,每位教師一般帶兩個班,每個班約88位同學,這樣每位教師一個學期只報告一項就要批閱約2000份,工作量太大?,F(xiàn)在正在努力尋求更加合理的解決方法。
七、結束語
教學實踐證明,以上改革措施能夠有效解決我校C語言程序設計教學過程中存在的問題。此教學模式下,教學內(nèi)容符合學生專業(yè)特點,能夠滿足理工科專業(yè)學生對計算機技術的需求;教學方法行之有效,教學效果有明顯提高;教學實踐方法與措施切實可行,能夠有效促進學生分析問題解決問題能力、實踐能力及團隊合作能力等能力的培養(yǎng)與提高。當然,該模式仍然存在一些不盡如人意的地方,這就需要我們堅持不懈,繼續(xù)努力去改進和完善。
項目來源:云南省高校質量工程教改項目“Inquiry learning體系在程序設計中的運用”(云教高[2010]96號)。
[參考文獻]
[1]王剛.CDIO工程教育模式的解讀與思考[J].中國高教研究,2009(5).
[2]謝延紅.C語言程序設計公共課教學模式改革與實踐[J].計算機時代,2010(12).
[3]馬新.《C語言程序設計》課程教學方法與手段的改革與實踐[J].科技信息,2010(33).
關鍵詞:C語言 程序設計 算法 興趣
中圖分類號:G64 文獻標識碼:A 文章編號:1672-3791(2012)09(b)-0164-02
《C語言程序設計》是我校計算機類各專業(yè)開設的一門專業(yè)基礎課程,也是非計算機專業(yè)理工科開設的一門公共基礎課程。主要講授C程序設計語言的基本知識和程序設計的方法與技術。通過本課程的學習,使學生掌握計算機程序設計的思想和方法,初步具有在各領域應用計算機的能力,并為后續(xù)課程的學習創(chuàng)造條件。但從教學過程來看,學生們普遍反映C語言難學,概念難理解,學完后編程不知如何入手等問題,因此,學習失去興趣,掛科率一直高居不下,使學生對該課程產(chǎn)生了畏懼心理。教師教學效果不理想。在此,結合教學實踐,根據(jù)遇到的一些問題提出自己的解決思路。
1 激發(fā)學生的學習興趣
要想學生學好C語言,提高學生的學習興趣,首先必須讓學生對課程有個全局的認識。學生在接觸一門新課程前,最關心的問題就是這門課程是學什么、學完之后可以做什么[1]。因此,在教學之初,教師應首先使學生明確學習這門課程的目的、要求以及目標,使學生初步了解該課程在本專業(yè)中處于什么位置,為什么要學習該課程,學好該課程對于個人的專業(yè)發(fā)展有什么作用,教師可以結合程序設計在本專業(yè)中應用的實例,使學生明白學習該課程的重要性和必要性,從而激發(fā)學習興趣。另外,由于C語言的概念比較抽象,在每一章初期概念講解階段,可以多舉一些與生活密切相關的例子,為概念的引入做準備,以激發(fā)學生的學習興趣。例如,在介紹數(shù)組這個概念時,由于數(shù)組是一種新的數(shù)據(jù)類型,為加深學生的理解,可以提出一個問題讓同學們思考:一個班學生的學習成績應該如何存儲呢?并提示學生這些數(shù)據(jù)有何特點,從而引出在C語言中如何存儲,從而引出數(shù)組這個概念。這種方法能夠發(fā)展學生的探索能力,避免了直接的理論說教,不僅能激發(fā)學生的學習興趣,還能加深學生對新知識點的理解。此外,在教學過程中,布置一些有趣味性的編程題目,積極鼓勵有能力的同學參加軟件設計大賽,使學生通過獨立或團體完成一個軟件設計,增強他們的學習自信,調動學習熱情,提高學習興趣。
2 注重知識的歸納總結
和自然語言一樣,許多字詞可能是相近的、相反的或者是相同的,字詞間存在著內(nèi)在的聯(lián)系[2]。在C語言中,涉及到此類的知識點時,可以采用歸納總結的方法進行教學。例如,循環(huán)結構中的while語句,do-while語句和for語句。在學生充分掌握三種語句的基礎上,教師對這三種循環(huán)語句進行歸納總結,歸納三種語句的異同點,并針對同一程序詳細介紹如何用這三種語句分別實現(xiàn)。便于學生對循環(huán)結構的靈活掌握。另外,C語言中學到的知識點都是零星、片面的,有些甚至是容易混淆的,比如說運算符的優(yōu)先級和結合性,教師在課堂中對此類知識點進行歸納總結,方便學生的比較與記憶。并且在新的一章開始學習之前,對上一章的內(nèi)容進行重點、難點以及小結的歸納總結,便于學生溫故而知新,避免學生邊學邊忘,前后知識不銜接的問題。
3 注重算法思維的培養(yǎng)
算法是程序設計的靈魂,在程序設計中要設計一個好的程序首先要對程序的算法有較詳細的了解,其次才是采用編程語言對算法的實現(xiàn)。但很多學生學完C語言課程后不會編程,甚至不知道從何下手。造成這一現(xiàn)象的主要原因是由于程序設計的思想與學生傳統(tǒng)的思維方式不一致,學生缺乏對算法的抽象思維能力,因此不會分析問題,無法寫出算法,這就需要教師在介紹程序范例時注重學生算法思維能力的培養(yǎng)。教師首先提出問題,可以選擇一些與實際生活貼近的小例子,如雞兔同籠問題,引發(fā)學生進行思考,然后詳細分析問題,啟發(fā)學生用現(xiàn)有的思維方式去思考如何解決,得到解決問題方法后再啟發(fā)學生將其轉化為算法,并可以改變現(xiàn)有條件,使學生在對新問題的思考過程中,培養(yǎng)學生對算法舉一反三的能力,最后教師對算法進行總結歸納,加深學生對這類問題的理解。將具體問題和學生的現(xiàn)有知識聯(lián)系起來,有利于克服學生的畏難情緒,也有利于使學生快速掌握算法。
4 認真上好實驗課
《C語言程序設計》是一門實踐性很強的課程,“邊學邊練”是掌握這門課程的最好方法。因此,我們根據(jù)理論教學進度安排了實驗課,并制定了專門的實驗指導書,實驗指導書明確了上機實驗目的和要求,制定了實驗內(nèi)容和詳細的操作步驟,并為程度較高的學生設置了選做題目。在實驗過程中,注重以學生為主體,教師為主導,安排的實驗內(nèi)容循序漸進,采用模仿-改正-編程的實踐訓練思路來培養(yǎng)學生[3],使學生在運行程序和調試程序中鍛煉分析問題和解決問題的能力,對于實驗過程中學生提出的疑難問題,教師首先加以引導或者提示,啟發(fā)他們獨立思考解決問題,經(jīng)過自己思考解決問題往往印象比較深,也能激發(fā)學生的學習熱情,對于實驗中存在問題比較多的題目,教師及時進行總結,并在課堂中統(tǒng)一進行指導,不僅節(jié)約時間,滿足同學們的需要,而且對知識的掌握起到鞏固加強的目的。
5 提高教師素質
由于《C語言程序設計》課程教學任務較重,所以計算機專業(yè)老師難以承擔所有的課程教學任務,造成許多任課老師都是各個院系的非專業(yè)老師,缺乏系統(tǒng)的程序設計思想。針對這一情況,學校每學年都多次組織計算機學院多年從事課程教學并且經(jīng)驗豐富的專業(yè)老師對任課教師進行培訓,針對課程內(nèi)容進行串講,在串講過程中,任課老師可以對在教學過程中的疑難問題以及教材中出現(xiàn)的問題進行討論。促進教師之間的教學交流,并創(chuàng)建了QQ群以及網(wǎng)絡平臺,便于老師們之間的信息共享以及交流,努力提高教師素質。另外,學校每學年組織《C語言程序設計》教學競賽,教師教學的積極性顯著提高,使教師不斷擴充自己的知識水平和能力,不斷學習新的教學方法和手段,從而提高課堂教學效果。
6 改革考核方式
為了扎實推進學校教學改革,切實提高《C語言程序設計》課程教學質量,對《C語言程序設計》課程考試環(huán)節(jié)進行了改革,在傳統(tǒng)的考核方式理論成績(70%)和平時成績(30%)基礎上,新增了上機考試環(huán)節(jié),課程成績由平時成績(15%)、理論成績(70%)、機試成績(15%)等3部分組成。理論考試重點考核學生的C語言基礎知識、編程思想和算法分析能力,上機考試重點考核學生的動手編程操作能力和程序調試能力。機試的考試系統(tǒng)由學校自主開發(fā),學生考試時由系統(tǒng)自動從100套試題庫中隨機抽題進行考試,做到了嚴格的公平公正。實踐后表明,這種考核方式能夠更加客觀地反映學生的知識掌握程度,同時能夠促進學生主動學習,提高學生的動手操作能力。
實踐證明,C語言的教學改進可以提高學生的學習興趣,有利于學生對相關概念的理解以及編程能力的培養(yǎng),使學生逐步掌握分析問題、解決問題的思維能力,同時也為非計算機類專業(yè)學生將程序設計思想靈活運用到自己的專業(yè)領域打下了基礎。
參考文獻
[1] 胡丹.非計算機專業(yè)《C語言程序設計》教學探討[J].電腦知識與技術,2011,7(34):8983-8985.
關鍵詞:C語言程序設計;教學改革;創(chuàng)新教育;自主創(chuàng)新;現(xiàn)代教學
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2012)26-6310-03
The C Language Program Design Teaching Strategies and Effect
WANG Xiao-xia
Abstract: Using the full text discusses the idea of the innovation education C program design science research and practice teach? ing reform. First of all this teaching reform theoretical basis and purpose. Analysis C language program design characteristics. Based on this the independent innovation of teaching reform mode.
Key words: C program design; education reform; innovation education; independent innovation; the modern teaching
隨著科學技術和社會的發(fā)展和進步,教育作為社會文化的重要載體,人們對高質量的現(xiàn)代教育需求尤為突出。我國的傳統(tǒng)的教育模式是已經(jīng)遠不能滿足當前受教育者的需求,特別是《國家中長期教育改革和發(fā)展規(guī)劃綱要》中提出了“創(chuàng)新人才培養(yǎng)模式。適應國家和社會發(fā)展需要,遵循教育規(guī)律和人才成長規(guī)律。深化教育教學改革,創(chuàng)新教育教學方法,探索多種培養(yǎng)方式。注重學思結合。倡導啟發(fā)式、探究式、討論式、參與式教學,幫助學生學會學習,激發(fā)學生的好奇心,培養(yǎng)學生的興趣愛好,營造獨立思考、自由探索、勇于創(chuàng)新的良好環(huán)境,適應經(jīng)濟社會發(fā)展和科技進步的要求,推進課程改革。充分發(fā)揮現(xiàn)代信息技術作用,促進優(yōu)質教學資源共享。把改革創(chuàng)新作為教育發(fā)展的強大動力。教育要發(fā)展,根本靠改革。把提高質量作為教育改革發(fā)展的核心任務。”
《C語言程序設計》課程是計算機專業(yè)中重要的專業(yè)基礎課,它是計算機專業(yè)和相關專業(yè)的必修課,是廣泛應用的高級程序設計語言之一。它具有功能齊全強大、結構性能強、內(nèi)容抽象,概念很復雜、規(guī)則比較多,易于出錯,具有豐富的數(shù)據(jù)類型等?!禖語言程序設計》的重要特點給教學帶來極大難度。
依據(jù)《教育規(guī)劃綱要》和教學現(xiàn)狀突出問題,在《C語言程序設計》課程教學中進行深化改革更具有重要性和必要性。教學改革的關鍵是自主創(chuàng)新。自主創(chuàng)新是相對于技術引進、模仿而言的一種創(chuàng)造活動,是指通過擁有自主知識產(chǎn)權的獨特的核心技術以及在此基礎上實現(xiàn)新產(chǎn)品的價值的過程。因此,《C語言程序設計》課程教學應著重于創(chuàng)新教學方法,不斷提高自主創(chuàng)新能力,提升教學品質,創(chuàng)新人才培養(yǎng)模式,構建自主創(chuàng)新的現(xiàn)代教學模式。
1現(xiàn)代教學觀
教學是培養(yǎng)學生的創(chuàng)造性活動。現(xiàn)代教學不僅是傳授知識,更重要的是全面提高學生素質,發(fā)展學生的智力和潛能。這就要求創(chuàng)新教學方法體系。深化教學改革的目標是全面育人。因此,教學中應具有教育性、創(chuàng)造性、科學性和實踐性,應是教師主導作用與學生主體作用相結合的過程,應是從“以教師為中心”轉向“以學生為中心”和“做中教,做中學”的過程,教學應培養(yǎng)學生自主學習和促進學生的全面發(fā)展。
2現(xiàn)代教學手段
科學技術的進步和發(fā)展使陳舊的教學行為與現(xiàn)代社會要求不相適應的?,F(xiàn)代教學手段就是將現(xiàn)代的先進科學技術引用到教學活動中,運用多媒體技術進行教學授課、演示操作、測試、制作教學課件和電子教案等。將各種教學手段有機融合在教學活動中,使教學科學化、規(guī)范化和現(xiàn)代化,并提高“質重于量”的教學效率,現(xiàn)代教學手段是現(xiàn)代科學技術在教學中的重要應用,是教學技術的重要進步。
3現(xiàn)代教學法
3.1以突破“函數(shù)、數(shù)組、指針”作為教學切入點
C程序是由函數(shù)組成的,函數(shù)是C程序中的重要概念和核心部分,也是程序設計中的重要手段,使用函數(shù)可以提高程序設計的效率。數(shù)組是C語言提供的一種常用的結構型數(shù)據(jù)類型。指針是C語言具有代表性特征的功能之一,使用指針可以編制出簡潔明快、功能強的程序,指針的概念比較復雜,使用也很靈活。數(shù)組和指針在《C語言程序設計》中具有極其重要的作用,是《C語言》程序中重要核心內(nèi)容,是學習C語言的難點和重點之一,學生很難于理解。因此,突出重點講解和強化突破“函數(shù)、數(shù)組與指針”概念的理解和運用是學生深刻理解和熟練掌握《C語言程序設計》的關鍵,起到化解難點的作用,使學生學習《C語言》獲得事半功倍和非常輕松的效果。
3.2組合式教學法
組合式教學法就是將啟發(fā)式、探究式、討論式、參與式、實例式、課題式和實驗式教學法有機結合并貫穿于全部課程教學中。
3.2.1啟發(fā)式教學
教學中引用相關的知識和實例并運用多媒體技術現(xiàn)代教學手段等進行演示講析。
3.2.2探究式教學
教學中提出課題進行探索研究。
3.2.3討論式教學
教學中針對學習課題師生之間進行研究分析和解決。
3.2.4參與式教學
教學中引導學生進行解析學習課題。
3.2.5實驗式教學
教學中引入實驗、課程設計等,對教學課題進行實際操作。
教學中針對教學課題內(nèi)容適時運用組合式教學法,其重要特點是教學方法靈活、有的放矢,培養(yǎng)學生自主學習和學會學習,培養(yǎng)學生的動手能力和實踐能力,提高學生的分析問題和解決問題能力,做中教和做中學相結合,理論教學和實踐教學有機結合,課堂教學與學生自主學習相結合,調動學生學習的積極性和主動性,增強學生的學習興趣,突破C程序的教學難度,以多媒體技術為主,圖文動態(tài)演示,增強學生對C程序設計的感性認識,多種教法有機融合、優(yōu)勢互補。有效的體現(xiàn)了師生互動、啟發(fā)引導、因材施教、精講多練和理論與實踐相結合的教學方式和教學過程。
3.3實例教學法
實例教學法是選擇適合課題的并具有典型性、規(guī)律性、代表性和示范性的范例融入到教學中。面向學生,針對學生的好奇心理,利用典型實際案例講析,舉一反三,深入淺出。
實例教學法非常適合《C語言程序設計》課程教學,特別是程序設計核心部分更為明顯。C語言是一種結構化的程序設計語言,它的基本結構是順序結構、選擇結構和循環(huán)結構。其中,循環(huán)結構是程序基本結構中很重要的核心部分并具有很大的難度,它是C語言程序中的重要內(nèi)容。教學中重點突破理解循環(huán)結構功能和正確靈活運用循環(huán)結構進行程序設計是進行高效編寫高質量程序教學的重要關鍵性教學技術。針對此問題引用實例教學法是最佳有效的實現(xiàn)方法。
實例教學法實施過程:
1)講析循環(huán)語句格式和功能。
格式和功能;演示課件。
2)引例計算1+2+3+…+100
分別用while語句、d0一while語句、for語句編寫程序。
程序:演示課件
在C環(huán)境下運行程序,演示運行結果,學生察看運行結果。
3)導析畫出流程圖,講析語句的執(zhí)行過程。
演示課件
4)引導學生依據(jù)流程圖分析語句的特點和各語句間的不同點
5)導題:如果i初值設為l0l,以上例子運行結果是多少?
在C環(huán)境下運行程序,演示運行結果,學生看到運行結果,印象深刻。
6)總結:
①3種循環(huán)可以互相代替。
②在while和do—while循環(huán)中,循環(huán)體應包含使循環(huán)趨于結束的語句。
③其它
7)導題:選擇合適的循環(huán)語句:
①輸出100~200內(nèi)能被3整除的數(shù)。(使用for語句合適)
②輸出用“$”號組成的圖形,如每行有10個號組成的長方形、等腰三角形狀。(使用for語句合適)
③輸出九九乘法表。(使用for語句合適)
通過運用實例教學法,增強學生的學習積極性和興趣,強化學生主動學習,深刻理解知識點,提高學生分析問題和解決問題的能力,有效突破教學難點,為學生學習其它程序設計打下堅實的基礎。
3.4課題教學法
課題教學法就是將具有多功能和典型范例的研究課題引入到教學實踐活動中。其特點是將學生自主學習融入到教學中,教師對學生學習進行引導和指導,從“教學生學”到“教學生學會學”轉變,貫穿“做中教和做中學”,著重實踐性,使學生深刻理解和掌握《C語言程序設計》功能和特點,突破學習《C語言程序設計》難度,提高學生的程序設計能力和操作技能,培養(yǎng)學生探索創(chuàng)新的能力,以適應現(xiàn)代社會需求。
通過《C語言程序設計》教學改革探究實踐,獲得更高的教學質量。教學改革是新世紀現(xiàn)代社會發(fā)展的需要,現(xiàn)代教學模式是切實可行的。自主創(chuàng)新是現(xiàn)代教學實效性的關鍵,基于自主創(chuàng)新的現(xiàn)代教學方法是創(chuàng)造性的教學實踐。教學實踐展現(xiàn)了教學改革的重要意義并凸顯較好的教學效果。面向未來,教學要以科學發(fā)展觀的教育思想向高新科學技術不斷挑戰(zhàn)并伴隨可持續(xù)性教育發(fā)展不斷創(chuàng)新。
參考文獻:
[1]林東,陳琳.編程語言基礎——C語言[M]. 2版.北京:高等教育出版社,2006.
關鍵詞: C語言;常見錯誤;程序調試;實例
中圖分類號:TP312文獻標識碼:A文章編號:1009-3044(2009)35-9969-02
Analysis of Common Error Based on C Programming Language
GAO Ya-xia1, ZOU Hai-rong2
(1.Shaanxi Commercial School, Hanzhong 723000, China; 2.Shaanxi Institute Of Technology, Hanzhong 723000, China)
Abstract: In recent years, not only the computer professionals use C language, but also the majority of staff computer applications favorite and use. In the use of C language application development, due to C language has a flexible programming style, grammar constraints are less stringent and program design large degree of freedom and so on. This C language to a number of beginner and causing a number of difficulties, in order to be able to quickly identify and correct errors in the program; this paper, the C language program design issues common mistakes analysis and research. Gives some examples and reference solutions, in order to learn C language program designed users to provide with convenient.
Key words: C Language; common errors; debugging program; example
C語言是在國內(nèi)外廣泛流行、使用的一種計算機高級程序設計語言。它的主要特點是:概念簡潔、數(shù)據(jù)類型豐富、表達能力強,運算符多且使用方便靈活。與其它程序設計語言相比較,具有靈活的編程風格,語法限制不太嚴格,程序設計自由度大(例如:一個語句可以采用多種方式,分多行撰寫;對數(shù)組下標越界不做檢查;整型、字符型和邏輯型的數(shù)據(jù)可以通用等)。這就給程序設計人員留下“靈活的余地”,但是由于這個靈活往往給程序調試,尤其對初學C語言的人來說,經(jīng)常會出一些連自己都不知道錯在哪里的實例??粗绣e的程序,不知該如何進行修改。通過在C語言的教學與研究過程中,分析了一些關于C語言程序設計時容易犯的錯誤實例,提供給學習C語言的同學及相關人員參考。
1 C語言常見錯誤實例與分析
實例1.Printf語句中“控制字符串”部分分寫在不同的行。
例如:main()
{ printf(“* * * * *”\n
Very good!\n
* * * * * \n);}
該程序的目的是為了顯示這樣的結果: * * * * *
Very good!
* * * * *
但程序運行后卻出現(xiàn)錯誤信息:“Unterminated string or character constant in function main”,對上述錯誤,只要在程序第二行、第三行的最后分別加上“\” 即可得到正確的結果,也就是說printf語句中的“控制字符串”部分分寫在不同的行時加“\”連接。
實例2. 忽略了“=”與“==”的區(qū)別。
在許多高級語言中,用“=”符號作為關系運算符“等于”。如在BASIC程序中可以寫if (m=10) then …,但C語言中,“=”是賦值運算符,“==”是關系運算符。
例如:if (m==10) m=n;
前者是進行比較,m是否和10相等,后者表示如果m和10相等,把n值賦給m。由于習慣問題,初學者往往很容易犯這樣的錯誤。
實例3.定義變量的位置不正確。
例如:#include
main()
{ char ch,filename[10];
scanf(“%s”,filename);
FILE *fp;
fp=fopen(filename,“w”);
ch=getchar();
while(ch!=‘#’)
{ fputc(ch,fp);putchar(ch);ch=getchar();}
fclose(fp);}
程序運行后出現(xiàn)錯信息“Improper use of a typedef symbol in function main”,只要把第六行:FILE *fp;放到第四行前,程序通過。原因是:說明部分要放在其他語句之前。
實例4.將字符常量與字符串常量混淆。
char ch;
ch="M";
在這里就混淆了字符常量與字符串常量,字符常量是由一對單引號括起來的單個字符,而字符串常量是一對雙引號括起來的字符序列。C規(guī)定以‘\0’作字符串結束標志,它是由系統(tǒng)自動加上的,所以字符串“M”實際上包含兩個字符:‘M'和‘\0',而把它賦給一個字符變量是不正確的。
實例5.輸入變量時忘記加地址運算符“&”。
int a,b;
scanf("%d%d",a,b);
這是不合法的。Scanf函數(shù)的作用是:按照a、b在內(nèi)存的地址將a、b的值存進去。“&a”指a在內(nèi)存中的地址。“&b”指b在內(nèi)存中的地址。
實例6.輸入數(shù)據(jù)的方式與要求不符。
1) scanf("%d%d",&x,&y);
輸入時,不能用逗號作兩個數(shù)據(jù)間的分隔符,如下面輸入不合法:
1,5
輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。
2) scanf("%d,%d",&x,&y);
C規(guī)定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時應輸入與這些字符相同的字符。下面輸入是合法的:
1,5
此時不用逗號而用空格或其它字符是不對的。如下面輸入不合法:
1 5 1:5
又如:scanf("a=%d,b=%d",&a,&b);輸入應如以下形式:
a=1,b=5
實例7.輸入字符的要求與格式不一致。
在用“%c”格式輸入字符時,“轉義字符”和“空格字符”都作為有效字符輸入。
scanf("%c%c%c",&c1,&c2,&c3);
例如:輸入O K !
則字符“O”送給c1,空格字符“ ”送給c2,字符“K”送給c3,因為%c只要求讀入一個字符,后面不需要用空格作為兩個字符的間隔。
實例8. 同時定義了形參與函數(shù)中的局部變量。
int max(x,y)
int x,y,z;
形參應該在函數(shù)體外定義,而局部變量應該在函數(shù)體內(nèi)定義。應改為:
int max(x,y)
int x,y;
{int z;
z=x>y?x:y;
return(z);}
實例9. 誤用變量定義數(shù)組。
int n;
scanf("%d",&n);
int a[n];
數(shù)組名后用方括號括起來的是常量表達式,可以包括常量和符號常量。即C不允許對數(shù)組的大小作動態(tài)定義。
實例10. 被調用的函數(shù)未在主函數(shù)中進行聲明。
例如:main()
{ int a,b,*p1,*p2;
Scanf(“%d,%d”,&a,&b);
p1=&a;p2=&b;
if(a
printf(“5d,%d\n”,*p1,*p2); }
void swap(int *p1,int *p2)
{ int *p;
P=*p1;*p1=*p2;*p2=p; }
程序運行后出現(xiàn)錯誤信息:“Type mismatch in redeclaration of ‘swap’”,只要在程序的第二句int a,b;前加一句:void swap();程序運行通過。也就是說:被調用函數(shù)的定義出現(xiàn)在主調函數(shù)之后(除了函數(shù)的值是整型或字符型的),要在main()函數(shù)中對被調用函數(shù)進行說明,void型函數(shù)也不例外。
2 結論
通過上面這些實例的分析,可以看出,由于C語言的開放式編程風格,讓C語言初學者,在進行C語言程序設計時往往會出現(xiàn)一些微妙的、不易覺察的錯誤。C語言作為一門完善的編程語言,具有它的科學性與嚴謹性。因此,只有在充分掌握和熟練運用C語言的基本概念、語法規(guī)范及結構的基礎上,才能真正享受到C語言靈活自如的編程風格的魅力,這也是學習一切科學知識的基本方法。
參考文獻:
[1] 譚浩強.C程序設計[M].北京:清華大學出版社,2008:37-242.
[關鍵詞]模式;方法;手段;改革
引言
我們都知道,C語言概念比較復雜,規(guī)則較多,使用靈活,容易出錯,學生掌握起來有一定的難度。傳統(tǒng)的C語言程序設計教學中,主要以課堂講授為主,且在教學過程中采用的大多是純理論的抽象案例,這對于高校學生,尤其是職業(yè)院校的學生而言,既抽象又枯燥無味,不能充分體現(xiàn)職業(yè)教育的特點,另外內(nèi)容難以理解和接受,學生學起來自然沒有動力,從而導致課堂教學質量不高,學生學習興趣不濃,學習效果不佳,不能真正理解程序設計的精髓,因此普遍反映C語言難學。《C語言程序設計》是電子各專業(yè)都開設的一門非常重要的專業(yè)基礎課,掌握好C語言程序設計技術為學生學習后續(xù)一些較高級的變成語言打下良好的基礎。針對以上情況,對《C語言程序設計》進行了教學改革,主要對教學模式、教學方法以及教學手段等幾方面進行了改革,變老師主導型教學為與學生交互型學習的教學過程,在教學過程中不斷探索新的教學方法和嘗試先進的教學手段。
一、教學模式的改革
首先,改變了以往的授課方式,從以前的合班上課方式改為單班微機室授課。這種授課方式,可以使學生先理解老師所講授的理論內(nèi)容,然后可通過上機實踐,加深理解并真正掌握課堂內(nèi)容,同時也提高了學生的動手編程能力,充分調動學生學習的積極性和主動性。學習程序設計的最佳方法就是自己進行編寫程序,在實踐中發(fā)現(xiàn)問題解決問題并逐步提高水平。而這種授課方式,正好可以將理論與實踐相結合,由于單班進行授課,老師可以對每位學生進行一對一輔導,做到“教學做”一體化,所以教學效果良好。其次,我們針對這種新的單班微機室授課方式,重新編寫了教案。在教案的組織上遵循的原則主要是理論與實踐相結合,組織方式是,對于每一個項目,首先介紹概念、原理、算法、語法和注意事項,然后通過適當?shù)陌咐齺碇v解,立即讓學生上機實踐,教師當堂輔導學生編寫和調試程序,使學生能夠對課程內(nèi)容當堂理解,當堂消化吸收。再次,對考核方式進行了改革,將期末成績劃分為平時成績+項目考核成績,+教學科成績,考核成績的方法是平時成績占20%,項目考核成績占20%,教學科成績占50%。這種考核方式即可以考核學生的平時表現(xiàn),又可以考核學生對課程的掌握程度。既考察了理論知識的掌握情況,也考察了學生的實踐動手編程能力。通過綜合學生的意見反饋,學生對這種考核方法也表示贊同和認可。
二、教學手段的改革
首先,在C語言程序設計課程教學過程中,考慮到本門課程的特點,對于要講解的案例進行分析,發(fā)揮傳統(tǒng)教學的優(yōu)勢,進行課堂討論、板書講解、結合提問,將問題層層剖析、層層深入,充分調動學生的積極性和主觀能動性。另外,充分利用多元化、現(xiàn)代化的教學手段。在教學過程中,運用多媒體技術進行輔助教學,有利于激發(fā)學生的學習興趣,能發(fā)揮學生的主體能力,優(yōu)化教學過程。在教學過程中應多方位應用現(xiàn)代教育技術手段,尤其是多媒體輔助教學手段與網(wǎng)絡化輔助教學手段。在課堂教學中采用多媒體教學課件,加強直觀教學,可提高學生的空間想象力。要充分利用計算機網(wǎng)絡開展網(wǎng)上答疑、網(wǎng)上測試、網(wǎng)絡教學,及時解決學生在學習與生活中遇到的種種問題,使其檢驗自己本階段的學習成果,加強對所學知識的吸收和消化。對C語言程序的調試過程及運行機制學生很難理解,很難想象其過程,如果將其做成課件,以動畫的形式模擬其過程,學生就能很快地掌握。教師應從最簡單的C語言程序的調試入手,詳細演示C語言程序的調試過程與調試細節(jié),同時讓學生參與進來,實現(xiàn)教師與學生、學生與學生的雙向交流和互動,提高學生的學習興趣,加深學生的理解與記憶。其次,對以往上機考試模式進行了改革。以往上機考試為教師出幾道程序設計題,全班學生都答一樣的題,這樣存在一些弊端?,F(xiàn)在上機考試模式改為采用c語言程序設計題庫抽題,每位學生進入考試系統(tǒng),系統(tǒng)具有自動出題、隨機組卷、計時收卷、實時評分和記錄成績功能,大大提高了考試效率。每名學生的3道考題是隨機產(chǎn)生的,與旁邊學生的考題都不相同,所有考題題目都來自于國家二級考試模擬題題庫,具備一定的針對性,同時c語言程序設計題庫有兩種使用方式,平時練習和正式考試,學生可以在平時練習,系統(tǒng)自動會給出所有練習題的答案,這樣學生能在練習的過程中逐步提高自己編寫程序的水平。因為是電腦計時評分,時間一到馬上就收卷然后給出成績,因此在練習的過程中就迫使學生必須經(jīng)常練習,不知不覺中也就提高了C語言程序設計的能力。
三、教學方法的改革
在教學方法上主要采用多種教學方法相結合的方法。首先利用問題探究教學法引入本節(jié)課要學習的知識,這種教學法能夠充分發(fā)揮學生的主動性,突出學生的主體作用,有效地培養(yǎng)學生分析問題與解決問題的能力,以“冒泡排序”為例,可以采取先跟學生講解什么叫“冒泡”,然后讓學生設計冒泡排序的算法思路,然后讓學生討論并寫出算法流程圖,最后講解如何用for程序結構實現(xiàn)算法,完成整個程序的編寫。其次,可利用和采用歸納教學法和案例教學法。歸納教學法引導學生對c語言中的定義、概念、語法規(guī)則進行歸納,將會起到事半功倍的效果,例如:getchar與putchar函數(shù),有很多語法規(guī)則是一樣的,對它們進行歸納之后,學生只要記住其中一個,另一個自然就會使用了。C語言是應用性很強的一門課程,既有理論,又有實踐,既講方法,又講動手能力。采用案例教學法可以改變“滿堂灌”的做法,將學生的眼、手、腦全部調動起來,培養(yǎng)學生的學習興趣。筆者將課程內(nèi)容分為若干個主題,以程序設計作為貫穿各主題的主線,每個主題的教學過程由“要點講解”、“自學/上機實踐”和“疑難解答”三個階段組成。通過案例分析,重點講解程序設計的思想和方法,輔以語言知識的介紹,然后通過上機練習,包括基本訓練(自測作業(yè)和主題作業(yè))與綜合訓練(大型作業(yè)),教師針對學生暴露出的問題答疑解惑,結合案例教學,努力將C語言作為解決實際問題的工具,強化學生的編程能力,在分析程序與程序設計的過程中使學生逐步熟悉語法,應用語句,提高學生分析問題、解決問題的能力,由淺入深、由易到難、循序漸進地使學生在實踐中掌握知識,培養(yǎng)程序設計能力,逐步理解和掌握程序設計的思想和方法,最終在課堂上教師扮演“主導”角色,而學生真正地成為“主體”。再次,由于每個學生學習的動機、興趣、能力存在較大的個體差異,所以決定了C語言課程必須因材施教。針對學習能力較強的學生,鼓勵他們自學,并給予方向性指導,讓他們超前學習。針對學習能力較弱的學生進行單獨輔導,加強學生學習的積極性。對于大多數(shù)學生,精力主要放在最基本、最常用的內(nèi)容上,讓他們學好基礎知識,領悟程序設計的方法,為后續(xù)其他課程的學習打下基礎。另外,教學過程中,應不時地進行換位思考,從學生的角度來考慮問題,注意師生的互動效果,以提高學生學習的積極性和主動性??傊禖語言程序設計》教學改革取得了非常理想的教學效果,無論是在學生成績的提高上,還是學生的反映上,以及考試的效率上等均達到了教學目的,但仍存在一些不足,以上是對C語言程序設計教學課程的心得體會,希望對廣大的同仁能有一定的參考價值。
參考文獻:
[1]謝志江等.案例教學法在工科教學中的應用[J].高等工程教育研究,2003(5):12-17.
[2]譚浩強.C程序設計(第三版)[M].北京:清華大學出版社,2005.
[3]陳國英.提高計算機語言課上機實踐教學的改革與實踐[J].洛陽農(nóng)業(yè)高等專科學校學報,2002.
[4]全國計算機等級考試二級教程C語言程序設計[M].北京高等教育出版杜.
[5]孔垂柳,田地.基于程序設計思想的C語言教學方案.吉林大學學報(信息科學版),2005,23(8):5-6.
[6]陳東.計算機多媒體教學改革的一些嘗試[J].福建師范大學學報(自然版).2004,20
[7]李明等.C語言程序設計教程[M].上海:上海交通大學出版社,2007,26-32.
關鍵詞:計算機;C語言程序設計;教學改革;教學實踐
中圖分類號:G433 文獻標識碼:A 文章編號:1672-7800(2012)003-0194-02
作者簡介:劉桂玲(1976-),女,內(nèi)蒙古赤峰人,碩士,天津職業(yè)技術師范大學附屬高級技術學校講師,研究方向為計算機應用技術。
0 引言
C語言是一種結構化語言。它層次清晰,便于按模塊化方式組織程序,易于調試和維護。C語言的表現(xiàn)能力和處理能力極強。它不僅具有豐富的運算符和數(shù)據(jù)類型,便于實現(xiàn)各類復雜的數(shù)據(jù)結構,還可以直接訪問內(nèi)存的物理地址,進行位(bit)一級的操作。C語言在很多方面都可以應用,不僅在軟件開發(fā)上,而且在各類科研工作中都是需要用到C語言的。C語言是入門的課程,也是非常重要的課程。
目前,計算機專業(yè)的基礎課都會有《C語言程序設計》,可見這門課程的重要性。學習這門課程,可以培養(yǎng)學生的邏輯思維能力以及形成一種程序化的思想。這門課程在內(nèi)容上并不是很難,但在現(xiàn)實中卻發(fā)現(xiàn),教學效果并不是很理想,很多學生都覺得這門課程枯燥乏味。在這樣的情況下,能學好C語言的學生很少。但我們卻必須要學好這門課程,不然后續(xù)的課程會更加難學,或者說幾乎就聽不懂也不會寫。下面我們先分析現(xiàn)實教學中存在的一些問題。
1 C語言教學中存在的問題
一般來說,教學中存在的問題都是包括幾方面的,因為教學是教師和學生共同的活動,即有教師方面的問題,同樣也會有學生方面的問題、教學方法上的問題、教學過程中的問題、水平評價中的問題,還有學科本身特征所導致的一些問題,同樣。硬件設備、教學環(huán)境等外在的條件也是教學中存在問題的因素。
正確認識存在的問題,把問題找出來,再根據(jù)不同的問題尋找出每一個問題背后的真正原因,然后對癥下藥,就可以把問題解決好。在教學過程中,筆者發(fā)現(xiàn)C語言教學主要存在以下幾方面的問題:
(1)在教學的過程中,主要體現(xiàn)為教學方法上的問題。現(xiàn)在很多教師還采用傳統(tǒng)的較單一的教學方式,過于注重理論知識的講授,在教法上墨守成規(guī),很少有創(chuàng)新,本來內(nèi)容就比較枯燥的一門課程,如果教師在教學過程中不能使它變得有趣一些,就很難調動學生的積極性和激發(fā)學生的興趣和信心。
(2)在教學內(nèi)容上,教師過于注重C語言的理論教學,也就是對一些概念和語法規(guī)則等的教學偏重。概念本來就是比較枯燥的內(nèi)容,如果過于講概念的話,更容易讓學生對這門課程失去興趣?,F(xiàn)實中的大部分教學都是講理論講語法為主,一個學期可能只有三、四次上機動手實踐,而這門課程很重要的一方面就是動手實踐能力。如果在教學中過少實踐,則很難提升學生的能力,無法達到培養(yǎng)學生程序設計和調試能力的目的,就難以學好C語言。
(3)在水平評價方面,水平評價制度是否合理是否科學,很大程度上就決定著教學質量的好壞。大部分教學都是為了準備考試,考什么就學什么,怎么考就怎么學,怎么教。比如,考試是考筆試、考定義,那么教師就會在平常的教學中注重概念及定義的學習、理解和記憶。如果考的是上機操作,這就要求教師在教學中要注重學生實踐操作能力的培養(yǎng),注重邏輯思維能力的培養(yǎng)。
2 教學改革建議
2.1 綜合運用各種教學方法
由于C語言課程本身的特性,學生會覺得這門課程比其它的科目更枯燥。其實只要懂得去調動學生的積極性,學生還是會喜歡上這門課程的。在平常的講課過程中,我們要善于運用不同的方法來教學,根據(jù)實際需要靈活使用各種不同的教學方法和手段,以求取得好的教學效果。
如數(shù)據(jù)類型的概念、流程控制、函數(shù)的定義與調用、指針的概念等采用教師主導的傳統(tǒng)教學方法會更好一些。但在其它一些方面,如理解性的知識,教師一定要充分利用好教學資源,合理使用多媒體教學,有效彌補傳統(tǒng)教學的不足。可以將難以理解的內(nèi)容或不容易觀察到的事物用媒體充分顯示出來。如可以借助flas模擬排序,運用多媒體教學事先設計好教學課件。這樣可以節(jié)省板書時間、實現(xiàn)資源共享和提高效率。但在多媒體教學環(huán)境下,板書設計的重要性被大家弱化了。理論教學主要進行課件的演示,這種方法對剛接觸程序設計的學生是非常不利的。在程序設計的初級階段,教師應該適當?shù)乩冒鍟鴣碇v解,因為程序編寫是有思考過程的,利用板書逐步寫出程序,這樣在整個過程中能夠隨意控制需要顯示的內(nèi)容,并且和語速、回顧、提問等環(huán)節(jié)有機結合起來.從而促使學生的思路與教師的講解保持同步,而利用課件演示事先編寫好的程序則由于給予學生的思考時間不夠導致學生的印象不深刻,從而導致教學效果不佳。所以在進行理論教學時,要將多媒體與板書設計相結合,充分發(fā)揮各自的優(yōu)點,從而使學生在直觀感受和思維訓練等不同方面都能獲得最好的授課效果。
2.2 注重動手能力的培養(yǎng)
C語言是一門以實際操作為主的科目,學習C語言程序設計應當充分重視實驗環(huán)節(jié)。很多教師實驗時間安排很少的原因是:還有很多基本語句沒學好,或者說還有很多結構沒有掌握,因此不適合上機操作。在這里,筆者認為教師不應該等到學生把所有要用的知識都掌握了才讓學生去上機,如果學生掌握得慢的話,無形中就壓縮了上機的時間。即使有些語句學生還不會,還是可以讓學生上機,在操作和編程的過程中,學生不但可以鞏固課堂上所講的理論知識,不懂的那部分還可以在操作的過程中通過實踐和摸索自己總結出來。通過不斷去試,得到不同的結果,這種直觀的結果可以讓學生馬上領會到不同的結構不同的語句所產(chǎn)生的效果。這樣的上機操作比單純講理論更有趣更容易。
教師在上實驗課時盡量要求學生多編寫程序,多上機調試程序,從最簡單的編程開始,再慢慢讓學生不斷擴展。上機也不能僅僅為了編程的正確性,更重要的還在于讓學生熟練掌握上機操作要領和調試程序技術,積累編程經(jīng)驗,加深學生對講授內(nèi)容的理解。尤其是一些語法規(guī)定,光靠課堂講授比較枯燥又難以記住,但它們又很重要,通過多次上機就能自然地熟練掌握。通過上機來掌握語法規(guī)則是行之有效的一種方法。
在實際教學中,筆者發(fā)現(xiàn)了一個有趣的現(xiàn)象,如這門課程的第一個實驗就是按任意鍵輸出一行字如:你好。這是書本上提供的實驗,在上機過程中發(fā)現(xiàn)有的學生把它改成了“我是笨蛋”,編好之后讓同學來測試,結果引起一陣轟笑。其實我覺得這種時候學生能這樣開些玩笑反而更好。不但可以提高上機的趣味性,還能激發(fā)他們用C語言來比拼的欲望,一邊玩笑一邊學習,效果將會更好,可激勵學生多創(chuàng)新。
2.3 革新水平評價體系
考核在教學過程中起著非常重要的導向作用,考核是了解學生學習狀況的依據(jù),學生和教師都非常重視。目前計算機專業(yè)教育的改革力度很大,但在考核方面,多年來進展不大。《C語言程序設計》課程的考核方式是以筆試為主,考試的重點是語法和基本的邏輯推導能力,忽略了學生對所學知識的綜合應用能力的考核。因此,必須建立以學生解決實際問題能力為考核基準的考核模式,堅持理論教學與實踐相結合,堅持學與用并重,實踐操作應重視創(chuàng)新,培養(yǎng)學生靈活運用知識以及創(chuàng)新知識的能力。考核方式應該以實踐和操作為主,筆試為輔,平時的上機操作成績也要納入到期末的水平評價中。在實際教學中發(fā)現(xiàn),學生們更喜歡項目式的考試與平常的作業(yè)和上機相結合來定成績,他們認為這樣就減輕了期末考試的壓力,因為很大一部分考核在平時的學習和上機過程中就完成了。
此外,作為教師,在教學的同時也應該不斷提升自己,與時俱進,站在新知識的最前端,這樣才能更好地教授學生知識。如果教師不充電,不提升自己,在講課中將很難體現(xiàn)一個教師的魅力和感染力以及這個教師的知識水平。在這個計算機技術高速發(fā)展的社會,不學習新知識只會被社會甩在后面。
3 結束語
《C語言程序設計》是計算機專業(yè)的基礎課程,一定要注重程序設計思維的培養(yǎng),在教學過程中應積極探索符合各層次培養(yǎng)目標的教學方法、教學內(nèi)容及考核方式。要建立良好的師生關系,充分發(fā)揮教師的指導作用,使學生在學習中不僅能掌握編程的知識和技術,還具備利用計算機求解實際問題的基本能力。這才是教學的目的,也是改革的目標。
參考文獻:
\[1\] 謝竟博.C語言程序設計教學中的問題及改革建議\[J\].重慶郵電大學學報,2008(2).
\[2\] 魏青.C語言教學中學生學習興趣的培養(yǎng)\[J\].電腦知識與技術,2010(21).
[關鍵詞] 教學方法 案例教學 教學效果
C語言程序設計是計算機專業(yè)的基礎課,在整個課程體系中占有重要地位。在C語言教學過程中,教師的教法和學生學法的差異,對教學效果都會產(chǎn)生直接的影響。針對學生學習語言課程的一般思維規(guī)律和思維模式,進一步探討適合??圃盒W生的教學方法,對以后的C語言程序設計教學有所幫助。
一、C語言教學中的問題
C語言程序設計是一個邏輯性很嚴謹?shù)恼n目,學生在設計程序時常常感到無從下手。其原因可分為兩個方面:一是所使用的教材,在每一章節(jié)介紹完概念之后,提供一些例子加深學生對概念的理解,針對本章中出現(xiàn)的內(nèi)容提供一些練習題。用來測試學生對各章節(jié)中的基本概念記憶和理解程度。二是學生更多關注的是教材中的典型例題,對于程序的系統(tǒng)概念沒有真正掌握理解,沒有整體設計的概念,在做練習題時涉及到綜合編程部分感到困惑。學生在學習的過程中,沒有注意到如何綜合運用相關內(nèi)容解決具體問題,以導致學生在學完程序設計課程時,進入應用階段,面對具體的專業(yè)設計要求無從下手。
二、提高教學質量的途徑
通過C語言課程的學習,學生應正確理解C語言的基本概念,掌握語句的格式及用法,編寫出優(yōu)化的實用程序。我們知道C語言課程強調的是實踐性,對于計算機語言課程的教學不應僅僅是傳授知識,應該以培訓能力為主,過分強調該語言的系統(tǒng)性和完整性可能會轉移學生對課程重點的注意力。在規(guī)定的課時內(nèi)教師講解不可能面面俱到,所以授課時必須突出重點,突出實用性,遵循理論與實踐相結合的原則。教師應始終堅持以應用為中心,以算法為基礎,以培養(yǎng)學生的實踐能力為核心,突出技術實用性和學習能力的培養(yǎng)。
程序設計課程具有很強的實踐性,要以社會對編程能力的需求和技術發(fā)展為依據(jù),調整教學內(nèi)容,以適應技術崗位能力要求。在課程設置與建設中,要充分體現(xiàn)教學內(nèi)容在培養(yǎng)學生實踐能力方面的需求,適當增加實訓教學內(nèi)容,以強化學生的實際開發(fā)和應用能力。
C語言程序設計,注重由設計算法到書寫程序并進行調試的整個過程,顯得抽象復雜。在教學過程中,應該先介紹一個較完整的程序例子,該例子包含了語言中的主要語句,目的是使學生先對程序有個初步的印象,再簡單介紹該例子中用到的語句,讓學生對該語言的學習有一個大概的了解。整個教學過程中應該把“解題思路、方法和步驟”當作授課的重點,從而讓學生明白如何分析、解決實際問題,逐漸培養(yǎng)學生進行程序設計的正確思維模式。
三、突出教學重點
算法是程序設計的靈魂,是教學重點,也是教學難點,一個優(yōu)化的程序必有一個好的算法。而語言只是表示形式,沒有正確的算法,計算機將解決不了任何問題,對于C語言所涉及到的算法,應進行部分精講多練。通過案例分析,講解程序設計的思想和方法,將課程內(nèi)容分為若干個主題,以程序設計做為貫穿各主題的主線。每個主題的教學過程由“要點講解”、“練習上機實踐”和“疑難解答”三個階段組成?;趩栴}的教學提出問題,以學生獨立完成為主,教師只提供必要的輔導,培養(yǎng)學生探索問題和解決問題的能力。將C語言的知識點溶化到一個個實訓項目的程序編寫中。在課程初期,主要是進行單項的編程練習,重在掌握C語言的基本語句、數(shù)據(jù)類型與程序結構等。在進入數(shù)組、函數(shù)、結構、指針和文件內(nèi)容教學時,開始實訓項目的編程實踐,逐步組建“教師管理系統(tǒng)”,并且添加文本菜單,整合擴展記錄添加、排序、查詢、統(tǒng)計和記錄瀏覽等內(nèi)容形成課程設計。
四、激發(fā)學生的學習興趣
作為一種新型的教學模式,多媒體教學已經(jīng)成為課堂教學的發(fā)展趨勢,在《C語言程序設計》教學中發(fā)揮著重要作用。許多老師都喜歡使用多媒體教學,實際上,多媒體只是為達到教學目的而使用的一種輔助手段。目前,《C語言程序設計》多媒體課堂教學中存在以下問題,對教學造成了一定的影響。
1.教師在使用多媒體教學中有較大的盲目性和依賴性。有些教師在制作多媒體課件和課堂授課過程中,出現(xiàn)忽視學生對象特點、不考慮學生人數(shù)、與學生交流少或缺乏交流滿堂灌的情況。過于注重形式,忽視了教學目的。
2.教師教學方式過于單一。有些教師運用的教學模式單一,講課速度太快,講課節(jié)奏平鋪直敘,對于程序的分析,缺乏必要的運行演示。
3.部分多媒體教學課件制作質量差。一些多媒體教學課件制作水平偏低,缺乏教學設計,從而影響了教學效果。一些教師準備的教學課件存在信息量過大、簡單材料堆積、照抄書本、材料來源混亂等現(xiàn)象,所制作的課件不符合教學實際需要。
4.學校對多媒體教學管理缺乏宏觀管理和質量控制。一些學校在推行多媒體教學模式過程中,缺乏課程課件建成后的管理和更新機制,結果是許多教師的教學課件多年不變,沒有引入新的學科新進展。
二、多媒體課程教學中注意事項
結合《C語言程序設計》教學中存在的問題,我們認為,多媒體課程教學中應注意以下事項。
1.突出教學重點。突出教學重點是多媒體教學的基本前提,要避免所設計的多媒體教學課件只注重于圖、文、聲、像等信息的有機結合,華而不實,花里胡哨,造成重點不夠突出的情況。
2.提供良好的交互環(huán)境。交互環(huán)境包括整個人機界面所用的顏色、文字大小、動畫、背景音樂等信息單元。所有這些信息單元都將直接為人體的感官所感知,學習者是很難在感覺很差的環(huán)境中對學習有興趣的。多種媒體信息可能使用戶和系統(tǒng)的交互作用產(chǎn)生混亂,直接同時使用多種人機通信形式往往會產(chǎn)生負作用。多種媒體信息不能簡單混合。
3.堅持一致性與相關性原則。在多媒體教學中應采用相同或相似的用語、提示、組織形式和順序,這樣可以避免分散學習者的注意力和浪費學習時間,從而影響學習者的學習效率。同時,在多媒體教學過程中,授課者要注意將與所涉及內(nèi)容有關的一些知識同時傳授給學習者,使學習者能夠較輕松地獲取一些與此有關的知識,達到事半功倍的效果。
4.注重多媒體課件的開發(fā)。多媒體課件是多媒體教學的一個重要載體。好的多媒體課件內(nèi)容豐富、布局合理、構思精巧,可以很好的調動課堂氣氛,也有利于課后學生的自學,從而提升學生的學習效率。反之,如果采用的多媒體課件只是書本知識的簡單展示,則會使學生產(chǎn)生念書的感覺,起不到相應的效果。在平常的授課中,應注意多媒體課件素材的收集,精心制作多媒體課件,提升教學的質量。
5.把握好多媒體教學與傳統(tǒng)教學的關系。實際教學實踐表明,多媒體教學并非能完全代替?zhèn)鹘y(tǒng)的教學方式及內(nèi)容。一些抽象的算法原理等需要運用邏輯思維方面語言來論述的問題,用視覺形象語言表達相當困難。課堂常用的口頭表達方式,是人類交際中最基本的也是最重要的行為之一。無論傳播媒體多么先進,都不可能完全代替?zhèn)鹘y(tǒng)教學手段。在授課過程中,要避免產(chǎn)生兩個極端:一種是固執(zhí)認為多媒體教學花里胡哨,不像傳統(tǒng)教學方式那樣實在,從而不愿意采用多媒體手段授課。另一種則片面強調多媒體的優(yōu)越性,試圖以“機授”代替教師傳授。無論哪一種情況,對于我們的教學都是不利的,應該把兩者有機地結合起來,提升教學質量。
6.建立宏觀管理和質量控制機制。多媒體教學質量建設是一項系統(tǒng)工程,需要學校制定一系列相互關聯(lián)、行之有效的措施,按照嚴格管理、過程控制和目標考核的原則,制定多媒體教學管理辦法。建立系統(tǒng)、規(guī)范的評價體系,使學校對于多媒體教學的教學狀態(tài)、教學條件、管理水平等決定教學質量的關鍵環(huán)節(jié)進行自我控制、自我約束、自我保證。
三、結束語
關鍵詞:職業(yè)技術學院;教學目標;開放性考核;教學方法
1 項目化教學的重要性
C語言是目前最為流行的一種程序設計語言,是程序設計的入門語言,也是C++、C#等程序設計語言的基礎。其高效、靈活、功能強等優(yōu)點使它不僅成為計算機專業(yè)的一門必修課,也是其他理工科專業(yè)的一門基礎課。但是C語言極強的抽象思維要求、靈活的語法規(guī)則、繁多的基礎知識給學生的學習帶來了許多困難。因此,對C語言程序設計進行課程改革,實現(xiàn)項目化教學變得尤為重要。
2 項目化教學的優(yōu)點
“項目化教學”是以教師提出一個問題(找出幾個數(shù)中的最大值),學生在教師的指導下,通過對整個課程知識的學習和應用實例的理解,以小組為單位完成一個項目的教學方法。
“項目化教學”中,學生是主體,也是項目的實踐者。學生通過所學知識分析解決實際問題,通過項目的實踐更好地掌握知識。教師是“項目化教學”的間接參與者,在學生完成項目的過程中指導學生,幫助學生解決疑問,從傳統(tǒng)的知識傳播者轉變?yōu)轫椖恐笇д摺?/p>
“項目化教學”中學生通過實踐的方式學習知識點,其優(yōu)點可總結為以下幾點:
(1)學生根據(jù)項目內(nèi)容明確學習目標。
(2)學生通過項目實踐提高知識的應用能力。
(3)“項目化教學”可促進學生學習的積極性。
(4)教師可通過項目針對性地向學生傳授知識。
(5)教師可通過觀察學生項目的完成情況了解學生對知識點的掌握程度。
3 教學現(xiàn)狀
(1)教學目標設置過高
盡管C語言是眾多理工科專業(yè)開設的一門基礎課,然而其教學目標應以學生層次的不同而不同。高職教育主要培養(yǎng)學生的實操性,只需學生掌握基礎知識足已。浙江安防學院是一所普通的高職院校,以培養(yǎng)安防類人才為主,但其C語言的教學目標設置與計算機專業(yè)相差無幾,學生學習效果一般。
(2)學生缺乏學習興趣,學習效果差
浙江安防學院作為全日制高職學校,在校學生的層次不高。C語言內(nèi)容枯燥,知識點多,概念復雜又容易出錯,學生初學時便有畏難情緒,給教學帶來了不少困難。
(3)考核方式單一,不符合課程性質
傳統(tǒng)C語言的考核方式是平時成績加筆試的形式,這種考核方式單一,對學生知識掌握程度的把握不準。C語言作為一門實操性強的課程,應注重學生動手編程的能力,因此需采用多樣化的考核方式。
4 教學改革
針對上面所提到的C語言教學中存在的不足之處,筆者對15級安全防范技術專業(yè)學生進行了教學改革,改革的內(nèi)容主要為以下幾點:
(1)結合專業(yè)實際,明確教學目標
安全防范技術專業(yè)學生作為普通的高職學生,對純理論學習的積極性不高;相反,對動手實踐的積極性卻很高。本專業(yè)開設的C語言課程是作為單片機的前修課程,學生學習單片機時需要懂一些簡單的編程知識,對于數(shù)組和指針等的要求卻不高。此外,C語言中所涉及到的基礎知識繁多,而高職學生普遍不喜歡多記多背,過多知識點的講解只會消磨他們學習的積極性。結合以上情況,筆者在做教學改革時進行了如下改革:1)簡要介紹了常量中的整型、實型和字符型。2)舍去了變量中的動態(tài)變量,靜態(tài)變量等不常用的知識點。3)數(shù)據(jù)操作中只涉及到了算術運算和賦值類運算。4)輸入輸出語句的內(nèi)容進行了大量的縮減。5)數(shù)組做了簡要的介紹。6)指針和結構體進行了刪除。
(2)上好第一堂課,激發(fā)學生興趣
C語言作為學生在大學時遇到的第一個編程類課程,其內(nèi)容枯燥、概念復雜、知識點繁多,往往會打擊學生學習的積極性。此外,C語言中涉及到許多英文字母,很多學生會將其與英語等同起來,這對于本身就不擅長英語的學生來說無疑是一個沉重的打擊。因此,教師應該認真對待第一堂課,將C語言這門課程的性質解釋清楚,大致可以從以下三個方面來解釋:
第一,什么是C語言。對C語言課程做簡要介紹,撇清它與英語之間的關系,將學生帶入到神奇的編程世界。筆者的做法是給學生展示了一些簡單的編程例子:(1)顯示自己的基本信息;筆者在第一堂課向學生介紹C語言時,教學生如何用C語言程序輸出自己的基本信息,并讓學生動手實踐,大大提高了學生動手實踐的積極性。(2)做一些簡單的算法;筆者在第一堂課中還向學生展示了乘法口訣表以及一些簡單的圖形等,很好地闡述了C語言的功能。
第二,為什么要學C語言。結合專業(yè)特點,闡述開設課程的必要性。安全防范技術專業(yè)開設C語言是將它作為單片機的先修課程,使學生具備安防設備安裝調試和維修的能力,同時也鼓勵學生參加計算機等級考試。在第一堂課中,筆者向學生介紹了C語言程序設計這門課的課程性質,并闡述了課程與專業(yè)之間的關系,提升學生對課程的重視度。
第三,如何學好C語言。學好C語言的要點就是“多思考,勤實踐”。因此,筆者將C語言的授課環(huán)境選在了機房,鼓勵學生多上機練習,多參與項目實踐。此外,筆者將學生以小組形式分組,方便學生相互討論、共同進步。
(3)改革教學方法,項目化教學
傳統(tǒng)的教學方法是老師在上面講授,學生在下面聽課,課后完成書面作業(yè)。本實驗中,將課堂轉移到了帶多媒體設備的機房中,采用循序漸進、實例化教學以及項目化教學的方法。首先,C語言中基礎知識是很關鍵的,但高職學生卻并不喜歡記憶,因此,筆者采用循序漸進、放緩腳步的方法,花了大量的時間幫助學生學習和鞏固基礎知識。其次,筆者采用實例講解的方法,將理論知識與實際問題結合起來,把抽象思維轉變成具象的問題。最后,筆者找了一些相關的項目讓學生練習,同時作為指導者指導學生完成項目。學生作業(yè)以實訓報告的形式上交,便于教師了解學生對知識點的掌握程度。
(4)開放性考核方式,加大實踐考核力度
傳統(tǒng)的C語言考核方式是平時成績加期末考試。但是C語言是一門實踐性很強的課程,這種簡單的考核方式并不能全面地評價學生的編程能力。因此,筆者將上機實踐也納入到了考核方式中,可同時考查學生動手編程的能力,也為學生參加計算機二級等級考試打下了堅實的基礎。
5 教學改革取得的成果
上述的教學改革方法筆者已應用到了日常的教學中。實踐證明,學生學習編程的積極性明顯得到了提高,對知識點的掌握程度和應用能力也得到了顯著提高,后續(xù)學習單片機也變得更輕松。通過本次教學改革,筆者將14級和15級學生的期末成績進行了比較,結果如下:教學改革前學生的優(yōu)秀率(90分以上)為12.5%,合格率(60分以上)為75%。而進行項目化教學改革后學生的優(yōu)秀率為29%,合格率為90%。由此可以認為項目化教學取得了一定的成果。