臺海江,許鑫,鄭光
(河南農業(yè)大學信息與管理科學學院,鄭州 450046)
《C語言程序設計》是一門實踐性很強的課程,通過C語言的學習可以培養(yǎng)學生編寫程序解決實際問題的能力。對于高校來說,C語言是學生學習編程語言的入門課程,通過理論教學和上機實踐,使學生掌握程序設計語言的基本知識和程序調試能力,為后續(xù)學習計算機相關課程奠定基礎。但由于C語言語法規(guī)則繁多,使用靈活,學生雖然能聽懂教師講的程序,到自己獨立編程時卻無從下手,學生缺乏基本的計算機編程思想和技能,編程能力的欠缺是目前學生無法學好該課程的主要原因。
目前很多高校的《C語言程序設計》課程在教學過程中仍然采用填鴨式教學,教師圍繞C語言教材自身的內容逐一地進行講解,在課堂上花費大量時間講解語句結構和語法知識,所舉例題也往往是一些簡單的數(shù)值計算題,而學生則是被動式接受知識,課堂上很少提問,教師和學生之間缺少互動,這樣的教學方法忽略了對學生編程思想和學習主動性的培養(yǎng),大大降低了學生的學習興趣,自然達不到理想的教學效果。
傳統(tǒng)的C語言教學通常以教材中的基本語法知識和經典算法為中心展開,重點放在了基本概念和語法規(guī)則的講解上而忽略了對學生實踐能力的培養(yǎng)。教師往往花費大量時間講解語法細節(jié),而對學生的編程思想和技能的培養(yǎng)存在不足,導致學生普遍反映,理解語法知識并不困難,教師講解的程序也能明白,而到自己獨立編程時卻無從下手。
《C語言程序設計》通常是學生進入高校后接觸的第一門編程語言,由于學生在高中時接觸計算機編程較少,缺乏相應的基礎知識,在學習C語言過程中,學生普遍認為課程難度較大,概念過于抽象而難以理解。而且C語言語法規(guī)則繁多、邏輯思維嚴密、實踐性強、使用靈活,學生在進行編程實踐時,常常出錯卻不知錯在哪里,使很多學生學習時感到困難。其次,傳統(tǒng)的教學方式重理論輕實踐,教師在教授過程中過多地強調基礎語法規(guī)則,很少能結合實際案例進行講解,學生無法理解學習C語言的意義,覺得和現(xiàn)實脫節(jié),能否學好對自己并無太大影響,使學生對C語言逐漸失去學習興趣和動力。
《C語言程序設計》是一門實踐性很強的課程,不僅要求學生掌握基本的語法知識,還應具備一定的編程能力和上機調試能力,但學生在上機實踐過程中卻存在著諸多問題。實驗課上,很多學生只是將教材或實驗指導書上的程序機械式地輸入到計算機中進行驗證,驗證通過后便認為實驗結束,對于實驗原理以及程序語句的含義不求甚解;有些學生在課堂上上網聊天、玩游戲,對于實驗題目胡亂應付,甚至抄襲他人的實驗結果;另外,由于學生上機實踐時人數(shù)較多,而教師只有一人,無法及時解答學生在上機調試過程中遇見的各種問題,致使一部分學生浪費了很多時間在等待上。這樣的實踐環(huán)節(jié)很難達到理想的效果。
傳統(tǒng)的C語言教學采用的是“教師講學生聽”的灌輸式教學[1],學生學習十分被動,很難激發(fā)學生的學習興趣。因此,教師應注重教學方法的變換運用,開展多樣化教學,根據(jù)教學目標、教學內容和學生的特點靈活采用多種教學方法。
(1)現(xiàn)場演示法
教師在講授完一個新的知識點后可在課堂上布置一些簡單的練習題,先由學生進行思考、討論,然后挑選一名學生在課堂上現(xiàn)場編寫程序,所編寫程序經由投影大屏展現(xiàn)給全班學生,由全班學生一起來檢查被挑選學生的程序是否有問題,有哪些問題,例如輸入錯誤、缺少分號、括號不匹配、變量使用前未初始化以及邏輯錯誤等[2]。通過這一過程,學生可以清楚地認識到程序編寫時有可能出現(xiàn)的問題,到自己編程時就可以有意識地避免這些錯誤,提高程序編寫的成功率。
(2)案例教學法
由教師精選一些與實際生活相關的案例作為學生的課后作業(yè),先由學生在課下進行練習,到下次上課時,教師根據(jù)學生的完成情況和出現(xiàn)的具體問題在課堂上對案例進行詳細講解。通過對實際案例的不斷練習和講解,不僅能使學生明白C語言的現(xiàn)實意義,還能增強學生的學習興趣,激發(fā)學生的學習熱情,提高學生編寫程序解決實際問題的能力。
(3)分組討論法
教師在每講完一個新的知識點后,針對該知識點布置若干個專題,組織學生在課堂上進行分組討論,學生通過討論不僅加深了對新知識點的理解,還可以聯(lián)想起已學過的知識點,在經過激烈的討論后,學生往往可以采用不同的語句或算法寫出好幾種程序。在這個過程中,學生通過不斷地互相提問和解答,互相啟發(fā)和協(xié)作去共同分析問題、解決問題,不僅鍛煉了學生的邏輯思維能力,也提高了學生的程序編寫能力。
項目驅動教學法以實踐教學為主,在教學過程中不僅可以傳授新知識,還可以培養(yǎng)學生的實踐能力,它能夠極大地調動學生的學習積極性,培養(yǎng)學生分析、解決實際問題的能力,鍛煉學生的團隊合作精神。
在項目設計之初,先由教師對項目的各項功能進行分析,同時講解所用到的新的知識點,并對項目所要實現(xiàn)的功能提出基本要求,然后由學生自行組織完成項目的設計和開發(fā)。在項目實施過程中,由教師根據(jù)學生的能力和特點將學生按照每組3~4人進行分組,由組員推薦或教師指定其中一人擔任組長,組長負責對項目進行分工,并協(xié)調組員之間的工作。在這一過程中,教師主要起到輔助的作用,根據(jù)學生遇到的問題和學生一起分析探討。同時為了培養(yǎng)學生的創(chuàng)新意識和探究精神,鍛煉學生分析和解決實際問題的能力,允許學生在完成項目的基本要求的基礎上進行自主創(chuàng)新,展現(xiàn)自己的編程思想。項目完成后,學生進行現(xiàn)場演示答辯,教師當場測試驗收,做出評價和總結,并對學生的創(chuàng)新部分予以肯定和鼓勵。
C語言是一門實踐性很強的課程,目的就是培養(yǎng)學生編寫程序解決實際問題的能力。其中,程序調試的能力就是程序設計者所必備的。學生通過不斷地修改調試自己出錯的程序,并最終成功,這將會給學生帶來極大的成就感,進而提高學生的學習積極性。
學生編寫程序時常見的錯誤包括編譯錯誤和邏輯錯誤。其中,編譯錯誤修改比較容易,而邏輯錯誤修改則相對困難,程序雖然可以通過編譯,但運行結果卻與預期不符,甚至出現(xiàn)程序崩潰或停止運行等問題,修改此類錯誤則需要通過程序調試來解決。學生利用基本的調試方法對程序進行運行調試,在這個過程中,教師要向學生演示調試的方法,學生通過調試自己的程序來掌握基本的調試技能。在上機實踐時,教師要有意識地培養(yǎng)學生自己調試程序、解決問題的能力,也可以設計一些典型的案例,讓學生做調試練習,從而提高學生的調試技能。
《C語言程序設計》是一門實踐性、工程性很強的課程,學生只有通過不斷的上機實踐才能提高自己的編程能力。然而不少學生不遵守課堂紀律,胡亂應付實驗,上機實踐效果非常不好,因此,必須加強對上機實驗的管理,以期提高上機實踐的效果。在上機實踐中,為了避免學生利用電腦進行學習以外的行為,教師可以通過機房電腦上安裝的電子教室系統(tǒng)對學生的電腦進行嚴格的監(jiān)控,也可以通過該系統(tǒng)檢查學生的出勤情況。對違反課堂紀律的學生要及時制止,不聽勸阻者可由教師遠程控制其電腦,禁止一切與上機實踐無關的行為。
科學合理的考核方式可以激發(fā)學生的學習動力和潛能。目前學生的成績主要基于期末考核,而《C語言程序設計》的考試多以筆試的形式為主[3],對于實踐能力考核不足,結果造成很多學生考試成績很高,但編程能力卻一般,因此,必須加以改革。對于學生成績的考核應綜合考慮,不僅包括期末考試,還應加大平時成績的考核,平時成績包括考勤、作業(yè)和上機實踐等,有條件的情況下可采用無紙化上機考試。無紙化的上機考試能夠有效地對客觀題目以及學生現(xiàn)場程序設計和調試等實踐能力進行考核,這是筆試所無法實現(xiàn)的[4]。這樣的考核方式將重點放在程序編制和調試上,注重學生平時的上機實踐,可有效提高學生編寫程序解決實際問題的能力。
《C語言程序設計》是一門實踐性很強的課程,也是計算機專業(yè)和相關專業(yè)的一門重要的基礎課程。教師在教學過程中要提高教學質量,就必須在實際教學中不斷地探索總結經驗,改進教學方法和教學手段,激發(fā)學生的學習興趣,有意識地培養(yǎng)學生的計算機編程思想和程序調試技能,提高學生編寫程序解決實際問題的能力,從而提高教學效果和教學質量。