幸敏 寧愛民 龍祖連


摘要:文章根據學院電子信息專業人才培養方案,分析了C語言程序設計對電子信息專業后續課程學習的重要性;提出了幾點C語言程序設計課程的教學改革建議,其中強調了分階段的遞進式學習方法和在課程教學中引入專業知識應用;學生應以最基本最常用的內容為主,加強實踐環節,練好基本功。
關鍵詞:電子信息;C語言程序設計;實踐;教學改革
中圖分類號:TP312 文獻標識碼:A 文章編號:1007-9416(2019)04-0138-02
0 前言
在電子信息專業人才培養方案中提到,學生通過專業學習后,具備電子信息產品研發、生產管理、售后服務等崗位能力。學生將來從事的崗位要求學生所具備的專業知識可以從兩個方面結合:一是硬件知識方面,二是軟件知識方面。硬件基礎知識有電路分析基礎、模擬電子技術和數字電子技術課程,軟件基礎知識就是C語言程序設計。他們的后續課程單片機應用技術、智能電子產品開發和嵌入式系統等,其實就是軟硬件的一個結合體。要想在專業學習上實現簡單的入門,其實就是實現軟件和硬件的結合入門。所以C語言程序設計課程的學習對電子信息專業學習有著重要的作用。
1 C程序教學的情況分析
(1)C語言程序的表現形式是全英文的,需要初學者牢記一些命令的單詞,幾種典型語句的規則,甚至還有一些特殊符號的意義等。對于高職學生來說,英語學習本來就是一件費力的事情,所以一開始看到C語言課程就喪失了一半的信心。
(2)目前C語言程序設計的教材是屬于通識課類教材,里面大量的程序設計案例除了說明程序在編寫時必須遵循的規則之外,還包含較強的理論知識,比如特殊運算符號++a和a++是兩個完全不同意思,不同于普通的加法運算表示。還有條件語句中,必須把所有可能出現的情況都考慮到,否則就會出錯。甚至還有一些例題要求編寫程序,使 “*”號按給定的形狀輸出,給定的形狀有四邊形或棱形等(如圖1所示);還有一些求最大公約數,最小公倍數的。如果學生不能正確的構建求解方法的話,基本上就成了一個泄氣的皮球。
(3)實踐環節中,學生只會把教材中給出的例題,照搬到編譯軟件,運行后驗證程序是否正確。如果出現錯誤,則修改。這時候出現的錯誤100%都是學生錄入時,打錯或遺漏,只需要按照提示,參照課本例題改正即可。學生如果不能對知識點理解消化,當碰到作業或者老師在現有例題上做伸展發揮時,就會出現盲目性,要么生硬模仿,要么隨意應付,經過幾次錯誤提醒后,獲得是滿滿的挫敗感,對進一步的學習失去信心。更重要的是,教材案例的學習與專業應用聯系不大,絕大部分學生缺乏自我思考和靈活應用知識的能力。
2 C程序教學改革建議
(1)強調C語言程序設計課程的重要性。C語言是計算機語言中高級語言的代表,它簡單方便且功能性強、應用面廣、效率高、可移植性強。C語言程序設計課程是后續 “單片機應用技術”、“嵌入式系統”、“智能電子產品開發” 等課程,以及課程實訓項目、畢業設計和職業技能比賽等環節的必備知識,如果想順利完成專業學習,必須重視C語言程序設計課程的學習。
(2)分階段的遞進式學習。第一階段:規則的養成階段。在學生進入簡單程序運行之前,對數據類型、運算符和表達式等內容,采用案例教學,同時將這些案例制作成微課。課堂上教師強調程序結構特點,解說程序各部分的組成、可修改及替換部分,解決學生線上學習時遇到的問題,提高學生對知識靈活應用的能力。課后學生通過微課視頻的反復觀看,進一步掌握知識點。線上線下學習的結合,不但解決了學生對C程序學習的恐懼感,同時也避免了教師在知識傳遞中的被動性,大大提高了學生的學習興趣和學習效率。
第二階段:簡單程序編寫。有道是“知之非難,行之不易”。C語言課程的學習,應該以實踐環節為主,編寫程序的能力也只有通過上機實踐才能養成。對于初學者來說,該如何來掌握一些簡單程序的編寫呢?從抄寫(案例程序原樣輸入)到默寫,再到嘗試性的修改,這是一個循序漸進的過程,也是一個反復練習的過程。在這個過程中,發現問題、查找原因、解決問題,增強了學生的學習興趣和成就感。
第三階段:復雜程序閱讀。隨著程序功能的增多,main函數中的代碼和各種功能的函數也會越來越多。所謂復雜程序實際上是一個主函數和多個功能函數組成。把程序中各個功能函數讀懂,就是化整為零的過程。學生通過大量閱讀復雜程序,完成知識的積累,為后續課程的學習打下基礎。
(3)多種教學手段結合。首先在教學內容采用案例形式,教師在課堂教學中實現現場程序編寫,并邊寫邊說明相關知識點,有的知識點還可以實現舉一反三,有的可以鼓勵學生上臺補充,有的可以設置提問等,學生對可以馬上看到結果的演示教學非常感興趣,與PPT的靜態講解形成鮮明對比,課堂氣氛活躍,師生互動效果良好。其次,由于一個程序從編寫到運行成功,并不是一步到位的,往往要經過多次反復試驗。編好的程序要做到準確無誤,除了輸入準確之外還要沒有語法的錯誤。所以建立錯題庫,將一些學習者經常犯的小錯誤收集起來,或把它們變成改錯題等,供同學們自主學習時參考,這也是提高學生學習能力的一種方式。另外,選拔一些學習積極性高,主動性強的學生成立課外學習小組,或成為電子協會儲備干部,教師在學習之余對他們進行輔導。這些學生在專業課程的學習中成為教師的教學助手,協助教師解決在上機實踐教學中和課外學中時同學們遇到的困難;同時為校內外職業技能比賽培養優秀人才。
(4)專業知識應用導入。由于教材中沒有體現C語言與電子信息專業課之間的關系,使學生誤以為該課程作用不大或僅僅是為了考一個計算機二級證書。為了消除學生的誤解,為了能夠在后續專業課程中快速上手,對那些應用到專業課程學習的知識點,在C語言程序設計課程教學中加以強調和導入,讓學生學習更具有目標性。比如循環結構,在案例教學中,我們知道了它可實現連續輸出,可完成累加運算等,如圖2所示。那么在單片機學習中,它出現頻率最高的地方就是延時函數,完成延時功能,如圖3所示。
(5)過程化考核方式引入。C語言程序設計課程是一門實踐性很強的課程,課程的期末考試采用機試考核;同時加大平時成績的占比,平時成績包括學習通平臺微課學習、上機實踐作業和平時考勤幾個部分。過程化考核不但避免了學生對知識點考前臨時抱佛腳的死記硬背,而且明確的指出學生在學習過程中哪個環節薄弱,及時補漏,激勵學生自主學習的積極性。
3 結語
在電子信息專業學習中,C語言程序設計課程的學習是為后續課程服務的,通過該課程的學習,使學生能夠掌握C語言的語法、三種基本的結構等內容。學生在學習時應該把精力放在最基本、最常用的內容上,練好基本功;同時重視實踐環節,可以完成簡單程序的編寫和調試,在反復的實踐中總結,舉一反三,做到活學活用。另外,教師和學生都不要局限于教材的內容,教師可以根據后期課程設計、技能應用,啟發學生創新意識,為專業學習打下基礎,提高解決實際問題的能力。
參考文獻
[1] 譚浩強.C語言程序設計(第四版)[M].北京:清華大學出版社,2015.
[2] 王靜霞.單片機應用技術(C語言版)[M].北京:電子工業出版社,2015.
[3] 潘麗麗,鐘少宏,姜瑜.非計算機專業C語言程序設計實驗教學模式[J].計算機教育,2011(18):81-83.
[4] 黃光華.電子信息工程專業C語言程序設計課程“四位一體”教學模式探索[J].實踐與探索,2011(35):250.