周杰 冷震北
摘要:針對《C程序設計》課程教學過程中存在的問題,結合課程教學與各類程序設計比賽所涉及的知識特點,將競賽與課程教學相結合,從培養數學思維,精心設計訓練題目,編寫實驗指導書,課程考試方面這幾個角度做出了相應的改革,并應用在課程實踐教學中,具有一定的效果。
關鍵詞:競賽;教學;改革;C程序設計
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)03-0158-02
1 概述
高校各專業本科教學中《C程序設計》是一門特別重要的基礎課程,特別是在偏應用型高校本科教學計劃中占重要地位和作用。《C程序設計》的教學目標不在是單純地了解和掌握其基本內容,而是致力于培養學生用編程獨立解決現實問題。在傳統教學中《C程序設計》的理論教學與實踐教學結合不夠緊密,學生只是單純對書本上的程序進行敲寫,實驗教學效果不盡如人意,學生無法用程序獨立解決問題[1]。
ACM競賽、藍橋杯和大學生程序設計競賽是重慶各高校比較看重的學科競賽,也是在大學生中比較有影響力的賽事。賽事里面都有c語言組,有團隊賽個人賽,有助于培養學生自主學習,自主開發能力,也有利于培養團隊合作能力,為以后步入社會打好基礎。
《C程序設計》是這些競賽的基礎,參加這些競賽可以不斷完善理論知識,還可以將理論轉化為實踐,增加學生的學習積極性。
2 改革的必要性
《C程序設計》課程教學過程中存在的問題:
1) 大部分高校的教學模式是完全遵循書本內容和知識結構,通過老師的講解讓學生掌握知識的基本構成,然而對于這樣的單向性的直接灌輸理論知識,在現在學生基本不預習的情況下,效果明顯不近人意。
2) 程序設計要想提高不僅需要掌握好較強的理論知識,還需要大量的習題練習,在現在的大學教材里面,課后習題不難易程度也達不到要求,沒有成模塊化練習體系,學生不能根據課后作業對某一知識點做強化訓練,并且教材知識分配并不合理,第一章都比較難入門的,一開始就導致大部分學生有畏難情緒。
3) 《C程序設計》一般是開設在大一,學生剛剛進入高校,計算機基礎水平參差不齊,導致學習任務很難達成一致,再者老師的教學時間被不斷壓縮,教學壓力增大,不得不減少教學內容,導致知識跨度比較大。本校的教學進度中已經把《C程序設計》中的靈魂章節指針,去掉了。
在教學過程中學生才是主體,要讓學生融入學習。隨著各高校向應用性本科的逐漸轉型,以及不斷深入,傳統的教學方法將逐步淡出舞臺,所以嘗試以競賽培養模式推動《C程序設計》的教學改革勢在必行[2][3][4]。
3 改革措施
根據我校指定的應用型人才培養目標,通過對專業課程體系,學習目標,以及考慮到大學生競賽所涉及的各種知識,依托程序設計競賽,將《C程序設計》改革與程序設計競賽緊密結合,用以解決《C程序設計》課程教學過程中存在的問題,具體措施主要有以下幾個方面:
3.1 培養數學思維
教學內容的設計是教學改革的核心,結合《C程序設計》的知識點,適當灌輸數學思維,讓學生以流程圖的形式,展示其數學思維。比如判斷閏年,冒泡排序,快速插入等,都可以先用數學的思維畫出流程圖,然后再根據流程圖寫出相應的代碼,增加學生以數學的思維方式解決程序的能力,數學思維能力的高低決定了程序設計的高低,要不斷提高數學思維,進而提高程序設計能力。
3.2 精心設計訓練題目
任何競賽題目都有命題規范、輸入輸出、情景描述等相同特點。在《C程序設計》上機操作中,將上機題描述成競賽題的模式,讓學生熟悉競賽模式,以及競賽流程。增加學生的獨立思考能力,而不是一味地照著書本敲寫代碼。可以將這個題精心設計成如下形式:
[問題描述]:長方形的長為a,寬為b,求長方形的面積
[樣例輸入]2,3
[樣例輸出]6
[程序保存名稱] 1.1.c
[問題描述]:對于任意三個數,求其中的最小值
[樣例輸入] 2,7.1,2.1
[樣例輸出]2.1
[程序保存名稱] 1.2.c
這些訓練題目難易程度不一樣,可以分為入門型,提高型,綜合型,將原有的書本中的比較死板的例題以及課后習題,轉換為通過具體問題描述給出實驗題目,創造了一種與現實相結合的環境,解決了學生們經常提的學了有什么用的問題,照著抄書上的有什么意義等問題。提高了學生的積極性,而且為后期的競賽做足了準備。
3.3 編寫實驗指導書
很多高校的《C程序設計》都是沒有實驗指導書,一般都是憑借著教師的經驗,以及相關的課后習題給學生提出相應的練習,需要重新編寫實驗指導書,對每一個章節安排入門型,提高型,綜合型多種上機習題。
學生根據實驗指導書完成相應的習題,并提交上機作業。再參考指導書上的資料完成相應的課后習題。提交習題的時候,均需要提交電子版的作業,以及相應代碼,并規定每一行代碼需要有相應的注釋。
通過這些題目的訓練,加深學生對《C程序設計》在實際生活中應用的理解,增強學生的積極性,也使學生明白《C程序設計》的重要性,這樣以競賽模式編寫的實驗指導書,可以大大增加學生的實際動手能力,也解決了學生喜歡抄襲作業的習慣。
3.4 改革課程考試方式
高校《C程序設計》平時成績主要來自考勤以及課后作業,期末考試以卷面的形式進行課程考核。導致大一部分同學在考試的時候進行僵硬的背誦,只注重理論知識,對提高學生的實踐能力幫助不大。
可以將傳統的期末閉卷考試,改為開放性的模擬競賽上機考試。可以將平時學生的上機表現作為平時成績。然后將成績綜合,作為學生的考試成績,并將期末考試成績排名靠前著推薦進入競賽小組,也解決了競賽選拔人才的問題。
4 結束語
針對應用型人才培養目標,本文對C程序設計課程教學提出了改革。現在正在不斷嘗試實踐中,從學院21個班的期末考試成績分析,初步顯示,期末考試成績在穩步上升,
該教學模式有利于調動學生的積極性,使學生了解了學習《C程序設計》的重要性,在不斷的練習中,使學生有效地將理論和實踐結合起來,提高了學生程序設計能力,并且在最近幾年的競賽中,教往年涌現出了更多地優秀學生,競賽成績也在穩步上升。
參考文獻:
[1] 嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,1997.
[2] 吳永輝,王建德.數據結構編程練習[M].北京:機械工業學出版社,2012.
[3] 譚浩強.C程序設計(第4版)[M].北京:清華大學出版社,20010.
[4] 王曉東.計算機算法設計與分析[M]. 2版.北京:電子工業出版社,2004.