張亞紅 陳輝
摘要:為了適應新形勢下新工科人才培養的需要,本文通過分析《C語言程序設計》教學中存在的問題,從教學模式、考核方式等方面進行改革探索,旨在提高學生分析問題、綜合運用所學解決實際問題的能力。
關鍵詞:新工科;C語言;教學改革
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2019)17-0125-02
教育部提出新工科的概念,對工程科技人才提出了更高的要求,迫切需要加快工程教育改革創新,培養工程實踐能力強、創新能力強、具備國際競爭力的高素質復合型“新工科”人才[1],以滿足未來新興產業和新經濟需要。新工科人才不僅能運用所掌握的知識解決現有的問題,還有能力學習新知識、新技術以解決未來發展出現的問題,對未來技術和產業起到引領作用[2]。
在工業4.0時代,“中國制造2025”,物聯網、云計算、大數據等創新業態催生了大學教育轉型,那么在新工科的背景下,我們應該如何主動進行《C語言程序設計》課程教學方法的改革,以滿足新形勢下社會對大學生的需求呢?本文主要從側重實踐激發學生興趣、提高學生程序調試能力、考核模式等方面進行了探討。
一、C語言教學當前的現狀
C語言跟其他語言比較,它的算法描述直觀通用,語法結構簡潔,程序性能高。學好C語言將有助于學習其他語言。開設C語言程序設計的目標是培養學生初步具有求解復雜科學問題的計算思維能力、算法設計能力、程序編程能力和測試分析能力[3]。但在教學實踐過程當中不難發現大多數學生在課上能聽懂和理解基本語法和語句執行過程,但是讓他們上機編程時卻不知如何下手,稍稍復雜一點的程序設計題更是無從下手。出現這種狀況的原因有如下幾方面。
1.教學內容繁雜,學習興趣低。C語言知識點繁多,數據結構復雜。對于絕大多數非計算機專業學生而言,《C語言程序設計》是一門公共基礎課,只要求學生了解程序設計的基本原理、基本的編程步驟和算法設計的基本思想,因此大多數教師主要從語法出發來講授這門課。然而,近年來大學的大規模擴招,地方院校的許多學生基礎較為薄弱。教師花了較多時間來講授語法知識,學生通過死記硬背,雖然看懂了例題,但要自己動手編程時不知道如何下手,因此容易對這門課產生畏難心理。
2.偏理論,輕實踐。要想讓學生學好C語言,必須通過大量的編程實踐。只有不斷地進行調試和改錯,才能讓學生對語法和編程思維有深刻的理解。以我校的《C語言程序設計》為例,總課時為48,理論課時為30,實踐課時為18。教師上課講的較多,演示的也多是課本上的典型案例。學生沒有大量時間去上機編程、調試、改錯,因此無法掌握編寫程序的基本思維,因此在遇到實際的編程問題時自然無從下手。
3.考核方式單一。該門課程考核方式為筆試,占總成績的70%,實驗只占20%,平時占10%,在這種考核方式下,學生為了通過考試只能靠死記硬背、囫圇吞棗,除了在有限實驗課上機編程外,課外只有很少學生花時間練習編程。
二、改革的具體措施
1.側重實踐,激發學生的學習興趣。《C語言程序設計》實踐性強,只有通過實踐才能加深理解并掌握邏輯性強的知識,因此需要在理論課講完知識點后,立即讓學生上機操作及時驗證和理解講授的內容。與此同時,實踐方面的課時也要增加,以指導學生進行大量的編程練習。對于選取的實驗題目,難度不但要循序漸進,而且要兼顧實用性和趣味性,使得基本語法和流程控制語句在程序的運行過程中逐步被學生掌握。在此基礎上可適當增加難度,讓學生逐漸克服學習C語言的畏難情緒,使得原先的“要我學”變成“我要學”,以提升他們學習的積極性和主動性。
具體設計實驗題目的步驟為:首先,理解每條語句。可以讓學生根據程序注釋完成程序填空,或者對已給出的程序語句寫出它的注釋。其次,引導學生建立編程思維。可以給出程序的功能注釋和流程圖,要求根據流程圖完成程序填空或程序的編程,或者給出程序讓學生畫出流程圖并寫出程序的功能注釋。最后,編程訓練,學習分析經典算法的程序代碼,提出類似的問題,要求學生進行模仿編寫程序,通過調試發現錯誤,尋找錯誤,改正錯誤直至編譯通過,從而激發學生對編程的興趣。在寫實驗報告時,要求每個程序都要有程序流程圖、注釋、運行結果及分析。
2.提高學生程序調試能力和解決實際問題的能力。學習C語言的目的是通過編程來解決實際問題,那么學生應具備的最基本的也是最重要的能力就是程序調試能力。換句話說,《C語言程序設計》這門課的教學首要任務就是培養學生具備一定的程序調試能力[3]。學生能夠運用調試工具,通過編譯器給出的出錯提示信息或觀察程序運行的錯誤結果,分析程序運行的過程,找到出錯代碼的位置。分析出是什么原因導致此類錯誤的出現,通過改正錯誤代碼,逐步積累編程經驗,從而掌握語法細節和算法思想,不斷提高編程水平。總的說來,C語言源程序中出現的錯誤有語法錯誤、邏輯錯誤和算法錯誤這三種[3]。對于語法錯誤,處理的難度較小,因為C語言的編譯器會給出一些信息提示;對于邏輯錯誤和算法錯誤,調試處理起來難度相對較大,因為它考驗的是學生對算法和邏輯知識的掌握。這就要求學生能夠運用C語言的調試工具跟蹤其中變量值的變化,理清程序運行的過程。為了提高學生獨立調試程序的能力,教師在演示程序調試過程時,指導學生根據錯誤提示判斷錯誤代碼出現的位置,進而修改錯誤代碼直至調試通過,還可以將編程中經常遇到的語法錯誤進行歸納總結,并將總結的出錯類型和錯誤原因分發給學生。對于邏輯錯誤,教師通過舉例,利用C語言的調試工具講解如何根據單步運行和設置斷點來分析程序的運行過程以及跟蹤變量值的變化,從而確定錯誤出現的位置。
教師通過講解調試過程,讓學生通過大量的上機編程練習,熟悉調試步驟,逐步養成獨立調試程序的習慣,形成以學生為中心的工程教育模式,使得學生的程序調試能力和編程能力得到提高。
3.改革傳統考核方式。傳統的筆試考核方式對于學生的編程能力不能做出較為客觀的評價。因此,在對C語言課程考核中應該減少筆試考試占總評成績的比重,加強編程能力和程序調試能力的考核。考核方式可由四部分組成:平時成績10%、實驗成績20%、上機考試40%、期末成績30%。其中,平時成績包括作業和出勤;實驗和上機考試主要考核學生的編程調試能力和解決實際問題的能力,上機考試采用在試題庫中隨機抽取的方式進行考核。
4.鼓勵和引導學生參加比賽,提升學生的創新能力。為了提高學生解決實際問題的能力和開闊他們的視野,提升創新能力,教師應該積極鼓勵和引導學生參加程序設計類大賽,如藍橋杯大賽、ACM大賽等,以賽促學,激發學生的學習興趣,提高學生的編程能力和創新能力。
三、結語
結合新工科形式下人才培養的目標,針對C語言課程現狀及存在的問題。本文通過側重實踐,提高學生的程序調試能力,改革傳統考核方式,鼓勵學生參加程序設計類比賽,將學習的積極性、主動性激發起來,讓學生學會如何去發現問題、分析問題,從而提高解決問題的能力和創新能力。
參考文獻:
[1]楊曉燕,梁豐,王仁芳,等.新工科教育中計算機應用型人才培養實踐探索[J].計算機教育,2018,(5):56-58.
[2]孫安媛,孫德林,徐舒.“互聯網+”背景下新工科信息化創新創業多樣化探索[J].江西通信科技,2008,(1):35-38.
[3]閆紅彥,王玉秋.《C語言程序設計》課程面向創新型實用型人才培養的實驗教學改革探討——以白城師范學院為例[J].白城師范學院學報,2016,30(12):101-103.