孫榮俠
摘要:程序設計類課程作為高職計算機類專業的一門專業課,一直是學生學習的難點課程。本來作者從一名程序設計類教師的角度,根據自己的教學經驗,指出了高職學生在學習編程類課程存在的問題,以及自己在教學中是如何提高學習編程的興趣,提出來幾點教學心得。
關鍵詞:編程;由難到易;由易到難;真實案例;教學流程
在計算機相關專業中,程序設計類課程作為專業課之一一直是學生學習的難點課程。高等職業院校學生大部分學習基礎較差,學習思維不很積極主動,而程序設計類課程比較抽象,其思想與我們日常處理問題思路有很大出入,需要學生建立一定的編程思維,掌握編程技巧和方法,要學好這類課程對高職學生來說有一定的難度和挑戰,很多學生很難駕馭這門課程。所以在平時的授課中,程序設計類課程是學生學習的老大難課程,也是老師教授課程的心頭大患。
一、學習過程存在問題
1、學習狀態偏差
目前高職群體是90后、00后, 這個時代的學生家境較好, 從小到大受到物質文化的影響, 再加上程序設計類課程本身抽象不好理解,沒有實際的作品可以呈現,導致學生失去學習興趣,學生學習狀態是不肯動腦,不愿琢磨,拒絕聽課,對這類課程要求及格萬歲,學習精力嚴重投入不足, 考試考試考什么, 學生就學什么, 考試不給范圍就不會考,甚至范圍必須具體,有的學生甚至考前背誦程序代碼,應付考試。
2、程序設計類課程特點及內容編排
程序設計類課程學習過程是由基本概念基本語法到到語句學習再到最后編制程序的學習,在前面很長一段時間的學習比較枯燥,沒有任何作品呈現,只是一些簡單的程序用來強化基礎的概念與語法,一部分同學覺得枯燥乏味沒有意義會會中途放棄。但是程序設計類課程學習一般是越往后學習越理解前面語法的含義,后面的知識學習是對前面學習內容的綜合應用,所以只要能堅持學習,最后會有收獲的。
3、興趣不夠
有的學生畏難情緒重,對于程序設計這類難度大的課程聽不懂就望而卻步,導致上課不認真聽講,課后也缺乏重新學習研究的過程,編程時直接輸入現成的代碼,缺乏自己動腦自己試著編程的過程,把好好的編程課上成了打字課。如果缺少自己動腦編程的過程,編程能力是很難提高的。只有在不斷編程不斷調試的過程中通過不斷修改程序最后得到正確的結果才能建立起編程的思維,掌握編程技巧和方法,提高編程能力,最終學好程序設計類課程。
二、改進方法
針對學生的這些問題,為了激發學生的程序設計類課程的學習興趣和編程能力,通過不斷摸索和總結,以我講授《ASP.NET》為例,在多年課程教學總結出一些心得和方法,在提高高職學生學習編程興趣方面效果良好。
1、教學流程的控制
在平時的授課中,除了在教學方法上不斷改進,采用項目教學法,案例教學法,分組討論法等等,教學手段采用教學做一體化,這些方面改善學生學習積極性和保證課堂效果外,在授課過程中,教學內容的講授流程安排也可以直接影響學生的學生積極性,在編程教學過程中(以下以《ASP.NET》課程為例)學生如何做什么時候做,老師如何講什么時候講,給學生輔導時具體輔導到什么程度,如果開啟學生自己思維鼓勵學生自己編程調試,這個過程我經過設計,是由難到易的過程。
1)第一步,先運行程序執行結果,讓學生熟悉程序完成功能以及執行結果。
2)第二步,根據執行結果講解前臺頁面設計及其包含控件和其他元素,然后讓學生完成這部分設計即頁面創建。
3)第三步,結合程序設計結果,把執行結果分成不同功能塊,但要保證每個功能塊是一個相對完整的功能,然后啟發學生完成每個功能塊的編程,在這個過程如果遇到有集中的問題和一些需要準備的工作,我會集中講解,涉及到一些復雜的算法我會給學生分析解決問題過程,但是代碼實現是讓學生自己去完成,細分后的功能難度降低了很多,大部分學生都躍躍欲試,后面的結果證明很多學生都能寫出70%到100%的代碼編寫,在這個過程中鼓勵學生可以討論,可以一起調試。當學生調試出一個功能模塊后,后面的功能模塊自己就會去嘗試去編,當他們獨立完成后特別興奮,感覺有成就感,而且對編程有了新的認識,以前畏懼如虎的編程課其實也很容易學,樹立了學生的編程學習自信心和學習編程課的興趣。
2、真實案例選擇與設計講解過程
在授課過程中我發現案例的選擇直接影響學生對本次編程的興趣,所以我就盡可能選擇跟我們生活息息相關的一些案例,讓他們認識到此次編程可以解決實際問題,進而激發學習的興趣,然后再引導學生編程實現。然后在編程講解過程中逐漸加大編程難度,引導學生自己編程實現功能,這個過程是由易到難的過程。以下是我講課中選擇的幾個典型案例。
案例一:登陸功能設計
解析:登陸是最常用的網上功能,學生經常上網會進行各種登陸,與現實生活息息相關,要自己去編寫實現肯定有興趣。
先讓學生完成最簡單的登陸,不限制任何條件,只要實現登陸功能。然后加深難度,限制登陸次數,讓學生自己嘗試完成,互相討論,找到原因后思考新的解決方案,最后修改直到成功,總有一部分同學最后總能圓滿完成。在這個過程中鍛煉了學生分析問題解決問題的能力,培養了學生的編程能力,激發了學生的學習興趣,效果非常良好。根據班級學習情況,我還會進一步增加難度,讓他們給登陸進一步加上驗證碼功能,其實部分思維活躍的同學會提前提問驗證碼的做法。
案例二:福利彩票雙色球號碼的生成。
解析:福彩雙色球6+1先產生6個籃球,再產生1個紅球,很多學生的父輩或認識的朋友都會參與雙色球彩票游戲,學生比較熟悉,看到這個案例也很興奮,摩拳擦掌,躍躍欲試。
這個案例解決方案有算法設計,我會提前講解算法,讓學生自己寫代碼,最后我欣喜的發現,思維活躍的學生不僅能圓滿完成,而且大家寫出來的代碼實現并不盡相同,但都能實現。在這個過程中學生有了編程的成就感,同時認識到其實編程并沒有那么難,增強了他們學習編程的信心,提高了他們學習編程的興趣。
案例三:超市收銀終端系統的完成。
解析:超市購物是我們生活中不可或缺的一部分, 讓學生根據超市收銀完成操作,自己編程模擬收銀終端編寫程序,完成收銀過程。
通過給學生分化收銀過程,分析把收銀過程這個實際問題如何轉化為計算機問題,同時引導他們逐步實現收銀過程,最后大部分學生基本可以完成代碼的編制。
三、結論
程序設計課程比較抽象,解決問題思路不同于常規,對于大部分學生而言,學好編程課是一件難事,對高職學生而言同樣如此甚至更難,作為一名高職程序設計類課程任課老師,要把這類課上好也是一種挑戰。本文站在老師角度從兩個方面總結了如何提高高職學生學習編程的興趣,分別是分化程序功能,降低難度,逐步設計,讓學生自己能完成代碼編寫,這是一個由難到易的過程;選擇真實案例,逐步提高難度,這是一個由易到難的過程。不同案例采用不同方法,最終達到增強學生學習編程的信心,提高學生學習編程的興趣。