李月杰
關鍵詞:C語言程序設計 ?教學方法 ?考核方式 ?改革
對于計算機專業而言,C語言程序設計是一門基礎性語言,其實踐性強,語言簡潔,但語法較多。通過C語言的學習可以培養學生基本的編程思維,幫助他們解決在編程中遇到的一些問題。C語言的實踐性較強,學生通過上機操作掌握編程的基本知識、程序調試能力以及養成一個良好的編程習慣。對中職學生而言,學好這門語言為后期其他語言的學習打下了堅實的基礎,可以達到事半功倍的效果,如JAVA的很多語法知識都是繼承了C語言的相關內容。而在教學上想讓中職學生掌握這門語言并不容易。
目前中職學校的生源基本上都是沒有考上高中的學生,跟大學生不一樣,大部分中職學生的自律性以及控制力較差,容易受到外界干擾。大部分學生在初中時學習就不好,沒有養成良好的學習習慣。再者,在目前智能手機人手一部的情況下,學生也變得不愛動腦,遇到問題不愛思考,稍微好點的學生會通過手機查找答案,但更多的卻是直接被告知答案。基于中職學生的這些特點,如果沒有好的教學方法及措施,想要獲得一個好的教學效果基本是不可能的。
目前部分中職學校在C語言程序設計課程設計上采用的是理論與上機操作分開。理論課上,教師先對語法及語句結構進行分析,然后再對課本的例子進行語句解讀。實訓課則由教師布置任務,然后學生去完成實訓任務。對中職學生而言,這種課程設計和教學方法是不適合的,難有良好的教學效果。理論在教師的講解下,學生是聽懂了,但也存在著無法提出問題的情況。到了上機課,學生由于一時難以記起所學過的知識,編程時又無從下手。好學的學生會提問,而教師只有一個,難以同時應付多個學生的提問,致使一部分學生需要花不少的時間等待教師過來解答。這就使學生學習的興趣打了折扣。而部分本就不感興趣的學生甚至會出現放棄的情況,無法達到想要的教學效果。
課上完了,少不了要對學生進行考核,傳統的考核方式就是考試,主要還是紙質的考試,以理論為主。這種考試局限于標準答案,以記憶及分析能力為主。難免就缺少了對學生學習過程的一種考量,學生對程序的調試能力得不到體現。
1.課程教學改革
首先在課程安排上,盡量不安排在教室上理論課,所有的課均安排在機房進行。將C語言程序設計這門課全部安排在機房上,由教師通過教師機即時操作演示給學生看,邊講解邊操作,每講完一個知識點就停下來讓學生即時敲程序、運行,看能不能成功。如果不能成功,學生也可以馬上找出問題然后進行解決。如果有問題,也可以通過軟件舉手,教師通過教師機看到有學生機舉手信息后,可以通過單獨監控該學生機查看學生的問題所在,然后解決問題。這樣既解決了教師在機房來回跑的問題,又做到了具體問題具體分析。學生通過程序即時驗證更容易掌握一個知識點,一回驗證勝過百回分析。比如在講到定義變量的時候,要對變量進行初始化,也就是第一次賦值。如果不進行初始化,在輸出的時候就會輸出一個隨意值。那么是不是運行結果跟教師說的一樣是一個隨意值呢?學生就會有疑問了。如果這時候直接跟學生講理論是比較抽象的,不如直接在計算機上進行驗證更直接:使用語句int i; printf(“i =%d\n”,i);,最后會發現輸出確實如此。學生在學生機上運行成功了,自然感到高興。在學習過程中,沒有比自己做實驗獲得成功所帶來的成就感更值得高興的了,學生的學習興趣自然也就提高了。
教師在給學生進行理論部分的講解時,建議單獨建立一個文檔,從第一節課開始就將每次課所要講的重點內容羅列出來。將當次課將要解決的問題、知識點一一羅列出來,讓學生了解本次課需要學習哪些知識、解決哪些問題,并將重要的筆記直接打在文檔上,類似于黑板上的板書。不需要學生做筆記,學生只需要聽課即可。講完知識點后,文檔的筆記也完成了,其中的難點可以用紅色字體體現出來。學生由于不用做筆記,全程只需要聽課即可,解決了學生由于做筆記會漏掉的一些重要語句,而對接下來所講內容懵懵懂懂的問題。每次講完后,由教師通過教師機將文檔筆記分發到學生機,學生就可以通過文檔筆記回顧剛才所講過的知識。一個學期下來,教師的文檔就將本學期課程所有知識點都羅列出來,其中的重、難點一目了然。學生通過文檔,特別是其中的紅色字體就可以回憶出當時學習的情景,查看重、難點內容,提高學習效率。
通過這種教學方式的改革,相對于傳統理論的講解更容易讓學生接受,也更容易取得好的教學效果。采用這種教學方法既直觀,又方便解決問題。學生有問題可以當場提出來,即時解決,不把問題滯后解決,以免打擊學生的學習積極性。
2.實驗教學改革
通過課程教學改革,學生的操作時間變多了,熟練程度也有所提高,但這并不等同于學生的編程能力提高了,還必須通過實際的操作來提高。在這個過程中,必須要讓學生養成一個良好的編程習慣。首先就是要會盲打。中職學生在初中階段接觸電腦的時間并不多,大部分學生估計連指法都不一定熟悉,更別說盲打了。做不到盲打,想要提高學生的編程能力十分困難。在實驗課上,可以讓學生在完成實驗內容前先進行敲程序練習,這些程序可以包含未學到的內容。這樣做的目的一是主要培養學生練習敲程序的感覺;二是練習盲打;三是提高程序運行調試能力,減少程序出錯的幾率。
實驗階段,如果一開始就讓學生進行編程是不符合實際的,可以給學生一些比較簡單的程序進行練習,就讓學生按照教師所給的程序打,然后再運行,如果成功了,再讓學生按照給定的程序進行模仿編寫,再運行,看能否運行成功。比如給定一個程序,定義三個整型變量數為3、9、10進行相加,讓學生照著敲,然后運行,如果學生得到運行結果為22則成功,然后再讓學生將這三個數改為3.5、9.3、10.6進行改寫程序。這就考察學生的應變能力,由于這三個數含有小數,需要將變量改為浮點型才能運行成功,如果不改,則最后運行結果仍為22。如果學生不修改變量類型,顯然看到運行結果仍為22,就會覺得不對,這就讓學生思考為什么得不出對的結果,然后對照自己的程序進行思考是不是哪里出錯了。對每一次的這種練習教師都要做好詳細的記錄,作為學生平時成績以及是否進步的考察項目。通過這種方式逐漸培養學生的編程能力,到學習的后期就可以布置稍微復雜一點的任務給學生編程,教學的效果就實現了。
在實驗教學階段,首先對學生進行分組,布置完實驗任務后,讓每個學生小組自己討論編程的方案,并且要在規定的時間完成。時間到了,每個小組對自己的程序進行運行,運行成功的就讓該小組介紹自己的編程構思和經驗,教師對編程運行成功的小組進行記錄作為平時分考察項。最后再由教師對實驗任務進行分析、講解,公布程序。對于運行不成功的小組, 首先由教師指出其中錯誤的地方,其次再進行改正,最后還需要將教師公布的程序在自己的計算機上再敲一遍、運行,加深印象。
3.考核方式改革
課程學習免不了要對學生的學習進行考核,C語言程序設計是一門實踐性很強的課程,不應只由單一的紙質考試作為唯一的考核標準,而應該加入學生的平時練習、實驗結果以及上機操作這些內容。學習是一個連續的過程,對平時學生完成程序練習,教師都要有詳細記錄,這個就是一種學習的憑證。每完成一次記錄一次,讓學生獲得成就感的同時也有學習的壓力,還可以作為平時成績的考核項目。實驗結果成功與否,上機操作考試則是學生學習能力、解決問題能力的一種綜合表現。這兩項既考核了學生理論知識的學習水平,又考核了學生的實際操作能力。這些項目都應該作為學生的學習憑證,加入到課程考核當中。
C語言程序設計作為計算機專業的一門重要的語言基礎課,其學習效果還會影響到后期其他課程的學習,基礎打好了,學習其他課程也就輕松了。對于中職生而言,教師想教好C語言并不是一件容易的事,在教學上需要改進舊的教學方式,采用多種教學手段,多讓學生進行上機操作,在實踐中發現問題、解決問題,增加學生編程帶來的成就感,提高學生的學習興趣,有意識地提高學生編程的能力,從而提高教學質量達到預期教學效果。
參考文獻:
[1]莫海城.電子基本技能中元件識別教學一體化改革[J].教育界,2015(15).
[2]劉滿君.《C語言程序設計》課程考核方式改革初探[J].福建電腦,2018(11).
(作者單位:廣西電子高級技工學校)