楊洪偉,王開田,李曉輝,張 芳
(沈陽農業大學信息與電氣工程學院,遼寧 沈陽 110866)
C語言,是國內高校普遍開設的計算機專業必修課程,同時,也是國內眾多高校開設的非計算機專業公共基礎課程。開設C語言程序設計課程目的是要培養學生程序設計的思想和方法,讓學生具備利用計算機求解實際問題的能力[1-2]。由于C語言運算符和優先級定義較多,語法定義不嚴格等特點,對初學者提出了較高要求,使大部分初學者失去了學習的興趣;另外,由于課時等條件的限制,國內大部分高校都是從基本語法講起,重視程序的功能實現而忽略了程序設計的思想,而這恰恰是開設程序設計課程的最終目的[3-4]。綜合以上這些問題,本文提出基于創新能力培養的C語言教學方法,在教學實踐中取得了較好的效果。
目前,大部分學科的教材都是從理論基礎內容開始。以C語言為例,基本上前2-3章都是講述基本的語法、數據類型等,學生聽后感覺晦澀難懂,逐漸失去興趣。語言中的這些基礎知識,其實可以在開始介紹前先講授其基本作用和幾個常用實例,在后續的實際應用中逐步引申與提高,這樣將枯燥的理論知識分散在以后的實際案例中,這樣學生易于掌握,而且能逐步提高學習興趣。
傳統的板書加多媒體一直以來是常規的教學手段,隨著網絡、智能手機技術的出現,教師的教學手段與方法也需要逐步提高與完善。網絡課程已經逐步成熟,成為現代教學的重要組成部分,而智能手機的出現,將學生的注意力吸引到了課堂之外,如何在智能手機上作文章,使學生通過手機進行學習而不是簡單的進行微信聊天及瀏覽信息,將是今后幾年的教學重點改進和探討之處。
案例教學法是以現實生活中學生樂于接受的事例作為題材,將分散的知識點進行綜合,激發學生學習熱情,使所學知識變得通俗易懂,富有連續性;案例教學法已經在高級語言程序設計課程教學中發揮出巨大的優勢[5]。案例分為兩種,一種是針對具體學習內容的軟件設計與制作,教師可以以實際工作中的某一個具體c語言應用軟件制作貫穿教學始終,使學生從軟件需求分析、設計、編碼、調試等方面對語言有全面整體的了解,并在每一步的細化中加深對具體知識的理解;另一種案例是計算機界的名人創業故事,通過這樣的案例激發學生的學習熱情,使學生逐步樹立創新創業意識。
“翻轉課堂”是隨著網絡技術特別是移動互聯網及時代發展出現的新的教學方式,“翻轉課堂”的教學把以教師為中心逐漸轉變為以學生為中心。教師不占用課堂的時間講授信息,這些信息需要學生自主完成學習,他們可以看視頻講座、閱讀電子書,還能在網絡上與別的同學討論,能在任何時候去查閱需要的資料。在這種教學模式下,課堂內的寶貴時間,學生能夠更專注于主動的基于項目的學習,共同研究解決面臨的問題,從而獲得更深層次的理解[6-7]。“翻轉課堂”需要一個漸進式的推進過程,目前,根據本校C語言課程教學的實際,在個別重點部分采用教師-學生角色互換的形式,教師在課上指定下一階段要完成的任務,讓學生在規定時間內課后查閱資料自主學習,并采取自愿報名或指定學生在課上講授的方式,通過學生自主學習-學生課堂教授-師生共同談論的方式促進某個知識點的教學,采用這種方式,以小部分學生的突出學習能力帶動大部分學生共同進步,使學生成為學習的主體。
以C語言中的自定義函數為例,如編寫“輸出兩個數中較大的數”這個自定義函數時,按照常規思維,經常這樣編寫程序:


這樣編寫完成,學生能夠直觀的理解但是還沒有特別的感受,如果對學生提出這樣的要求:將函數體的6行語句改寫為4行,如何實現。此時學生開始討論、思考,學習熱情提高。編寫出代碼如下:

如果進一步提出要求:將函數體的4行語句改寫為1行,如何實現。此時學生的反應空前提高,覺得不可思議。采用這樣的方式,使學生覺得教學不再枯燥,極大地激發了學習熱情。編寫代碼如下:

大部分的學生沒有程序設計經驗,所以學習程序都是從讀程序開始,但是單純的讀程序,效果不是很理想,在學習中要邊讀邊改,加深對程序設計的理解。例如在講述程序設計關于圖形方面內容時,要求學生輸出如圖1所示的正立三角形(以5行為例):

圖1 輸出正立三角形
代碼如下:


為使學生更好地理解程序,可以在講授完本程序后,讓學生在此基礎上更改程序,把三角形倒立過來,加深對程序的理解,圖形如下,在時間允許的情況下,可以讓學生在課堂或可后繼續更改程序,更改內容任意,但必須有更改,鍛煉學生的程序設計能力。

計算機學科需要學生的動手能力和利用計算機解決實際問題的能力,這些能力不可能靠幾天的突擊復習來完成。為了促使學生把精力更多的用在平時,建立了平時成績+期末考試的考評方式,并逐步加大平時的考核力度。目前,平時成績比例由原來的20%提高到30%,具體為:出勤5分+作業與實驗報告10分+綜合性實驗15分(過程考核內容)。期末考試采用上機考試方式,在考試題目管理上突出側重豐富題型、題量,加大思考性題目數量,避免學生死記硬背,投機取巧,在各個環節加大能力培養力度。
從2016年起,在沈陽農業大學非計算機專業進行以創新能力培養為主體的C語言程序設計教學改革與實踐。按照“注重學生程序設計思想,全面提高學生實踐創新能力”的教學設想,通過案例教學、翻轉課堂等方式進行實踐,注重提高學生的興趣,強調“舉一反三”,取得了良好的教學效果。程序設計需要創新,教師教學手段、方法也需要創新,這就能自然而然的帶動學生,提高其創新能力。今后在創新與創業融合教學案例設計、建立有利于創新創業的教育評價體系和教學激勵機制等方面有待進一步研究。
參考文獻(References):
[1]孫莉,朱國進,石秀金.計算機學科創新人才培養模式的研究與實踐[J].計算機教育,2010.7:15-18
[2]熊曉波.計算機科學與技術專業學生創新能力培養探索[J].計算機光盤軟件與應用,2012.7:210-211
[3]王瑛杰.導學講評教學模式在計算機程序設計教學中的實踐[J].高教學刊,2016.7:148-149
[4]吳永芬,陳衛衛,李志剛等.面向創新實踐能力培養的C語言程序設計實踐教學改革[J].計算機教育,2014.3:88-91
[5]吳剛,劉付勇.基于創新能力培養的C語言程序設計課程教學改革研究[J].中國現代教育裝備,2017.3(261):67-70
[6]郭銀章,王麗芳.基于項目任務驅動的C語言程序設計課程教學改革與實踐[J].計算機教育,2017.2:41-44
[7]余為益,胡紅,趙國珍等.應用型人才培養目標下基于卓越教學的C語言教學改革[J].計算機時代,2017.3:71-73