彭耶萍
摘 要: 本文闡述了如何提高軟件工程專業(yè)學(xué)生編程能力,即從培養(yǎng)學(xué)生學(xué)習(xí)編程的習(xí)慣、主動(dòng)學(xué)習(xí)編程的態(tài)度、通過閱讀代碼找到程序的精髓、學(xué)生編寫程序的思維和算法和通過實(shí)踐應(yīng)用鍛煉編寫程序的能力五個(gè)方面提高學(xué)生的編程能力。
關(guān)鍵詞: 軟件工程專業(yè) 編程能力 計(jì)算機(jī)運(yùn)用能力
軟件工程教育是一種能力教育,是一種以學(xué)生為導(dǎo)向的教育,除了注重學(xué)生綜合能力的培養(yǎng)外,更注重學(xué)生專業(yè)能力和專業(yè)拓展能力的培養(yǎng)。學(xué)生的計(jì)算機(jī)運(yùn)用能力和編程能力是軟件工程專業(yè)教學(xué)質(zhì)量的兩個(gè)重要評(píng)判依據(jù)。我結(jié)合自己多年來的軟件開發(fā)經(jīng)驗(yàn)和軟件工程專業(yè)的教學(xué)經(jīng)歷從日常、學(xué)習(xí)、讀書、思考、課后練習(xí)和實(shí)踐操作六個(gè)方面探討如何提升軟件工程專業(yè)學(xué)生的編程能力。
一、培養(yǎng)學(xué)生的學(xué)習(xí)編程的習(xí)慣
行為決定習(xí)慣,習(xí)慣決定性格,性格決定民運(yùn)。要提升自己的編程能力,就必須養(yǎng)成良好的習(xí)慣,每天都要完成一定規(guī)模的編程任務(wù),持之以恒。必須嚴(yán)格要求學(xué)生,每天給學(xué)生樹立一天的小目標(biāo)并且一定完成它。比如說今天要求完全弄懂C語言的基本數(shù)據(jù)類型有哪一些?;绢愋途涂梢缘綍滩纳匣蛘叩骄W(wǎng)上學(xué)習(xí)C語言的基本數(shù)據(jù)類型有兩種:一是整形類型,包括int ,short int,long int,long long int(C99),char,bool;二是浮點(diǎn)類型,包括float ,double,雙精度浮點(diǎn)型(float_complex,double_complex,long long_comples)。然后再找題目鞏固,做出一道題來就很會(huì)有成就感,久而久之學(xué)生對(duì)編程的興趣就會(huì)越來越濃,從最簡單的知識(shí)部分做起,循序漸進(jìn),逐步提升學(xué)生的編程能力。
所謂練就是練習(xí),把所學(xué)的知識(shí)應(yīng)用于實(shí)際,練習(xí)課本后的習(xí)題及書本上經(jīng)典的例題、經(jīng)典的算法、具有代表性的程序。在練習(xí)的過程中多思考多理解多提問。首先運(yùn)行這段程序看看是什么效果,然后刪除掉一些代碼,再運(yùn)行程序看看與不刪除之前的效果有什么區(qū)別,從而知道刪除的這些代碼是實(shí)現(xiàn)什么功能的。然后再仔細(xì)體會(huì)這段代碼,例如有很多循環(huán)例子,是否可以實(shí)現(xiàn)for循環(huán)和while循環(huán)相互轉(zhuǎn)化,當(dāng)通過自己的實(shí)際轉(zhuǎn)換后才體會(huì)到原來每個(gè)循環(huán)有各自的特點(diǎn)。練習(xí)其實(shí)是一個(gè)循序漸進(jìn)的過程,剛開始先做簡單的練習(xí),后面隨著自己的能力不斷提高再增加難度先練習(xí)語法規(guī)則和編程規(guī)則。
二、培養(yǎng)學(xué)生主動(dòng)學(xué)習(xí)編程的態(tài)度
學(xué),顧名思義是指學(xué)習(xí),然而學(xué)習(xí)也是很有講究的,學(xué)習(xí)包括提前預(yù)習(xí)、課后復(fù)習(xí)和課中認(rèn)真學(xué)習(xí)。所以要提升學(xué)生的編程能力,就必須一步一個(gè)腳印地按著這三個(gè)步驟走:上課之前認(rèn)真預(yù)習(xí),把將要上課所要講的知識(shí),要求學(xué)生提前預(yù)習(xí),做好充分的準(zhǔn)備,這樣能夠保證在課堂聽課感覺更得心應(yīng)手。自學(xué)能力是以后工作生活中很重要的一種能力。課中認(rèn)真聽講,要求學(xué)生緊跟著老師的思路,教師在講臺(tái)上演示時(shí)候要求學(xué)生跟著老師同步進(jìn)行代碼編程,不懂的難點(diǎn)知識(shí)點(diǎn)及時(shí)標(biāo)記下來,課堂或課后進(jìn)行輔導(dǎo)。課后要求學(xué)生進(jìn)行溫習(xí),通過做練習(xí)把老師講的知識(shí)完全理解。另外,還要不斷地學(xué)習(xí)新的和先進(jìn)的開發(fā)工具;只有理論基礎(chǔ)扎實(shí),編程才能游刃有余,才能寫出高水平的代碼,才能編寫出高質(zhì)量的程序,自然而然編程的能力機(jī)會(huì)得到增加。
三、培養(yǎng)學(xué)生通過閱讀代碼找到程序的精髓
除了課堂教學(xué)之外,學(xué)會(huì)閱讀代碼對(duì)軟件工程專業(yè)的學(xué)生來說尤其重要??唇?jīng)典的算法程序,然后總結(jié)起來,反復(fù)讀,直到自己完全理解消化自己能夠得心應(yīng)手地運(yùn)用,從而發(fā)展自己的編程思維。細(xì)細(xì)地品讀別人寫的代碼,不能效仿別人的代碼,要求學(xué)生讀懂代碼的思想和邏輯。讀完后思考自己和編寫這一段代碼的人的差距。讀懂代碼的思想和精髓,沒有思想這段代碼只不過是一段雜亂的英文字母。再將別人的算法思想和自己的思想進(jìn)行對(duì)比,反復(fù)琢磨,就會(huì)懂得很多有用的東西。此外,閱讀完后應(yīng)和老師多多交流,和同學(xué)溝通,樹立“三人行必有我?guī)熝伞钡乃枷搿?赡茉诓唤?jīng)意的交談間產(chǎn)生靈感寫出更好的代碼,最終學(xué)習(xí)別人的精髓編程,以提升自己的編程能力。
四、培養(yǎng)學(xué)生編寫程序的思維和算法
面對(duì)一個(gè)問題,思考這個(gè)問題的可行性,思考這個(gè)問題為什么值得思考,思考這個(gè)問題該怎么解決,包括編寫這個(gè)程序所需要的知識(shí),所以完成一個(gè)代碼任務(wù)之前要再三思考。第一,思考這個(gè)問題的可行性,用課堂上學(xué)的知識(shí)能否解決這個(gè)問題,如果這個(gè)問題本身就是一個(gè)悖論,用編寫一段代碼實(shí)現(xiàn)它要求的功能,編寫程序肯定陷入無限的死循環(huán),這個(gè)問題終究還是無法解決。第二,思考解決這個(gè)問題有沒有更好的解決辦法。這樣可以大大減少完成任務(wù)的時(shí)間開銷。比如:編寫一個(gè)程序要求要有主頁,登入頁面和注冊(cè)頁面,讓學(xué)生使用以前編寫的代碼,然后通過修改達(dá)到老師的要求,這樣既溫故了所學(xué)知識(shí),又應(yīng)用了新的知識(shí),還節(jié)約了編碼的時(shí)間。
五、通過實(shí)踐應(yīng)用鍛煉編寫程序的能力
所謂實(shí)踐就是做出實(shí)際的東西出來,“百說不如一練”,學(xué)得再好做不出實(shí)際的東西出來也是白學(xué)。在每個(gè)學(xué)期的課程設(shè)計(jì)或?qū)嵱?xùn)時(shí)期要求學(xué)生以企業(yè)實(shí)際的工程項(xiàng)目為案例進(jìn)行開發(fā)設(shè)計(jì),在實(shí)踐中不斷地鍛煉自己的編程能力。以團(tuán)隊(duì)方式供完成。這樣不僅可以培養(yǎng)學(xué)生實(shí)際能力,還可以養(yǎng)成團(tuán)隊(duì)合作的精神。在合作的過程中找出問題,然后解決問題,不斷提高邏輯能力、思維能力和創(chuàng)新能力。
總之,要提升學(xué)生的編程能力,就要養(yǎng)成良好的習(xí)慣,培養(yǎng)編寫程序的思維,不斷地積累編程經(jīng)驗(yàn),閱讀、借鑒,然后把所學(xué)的東西付諸實(shí)踐,持之以恒。
參考文獻(xiàn):
[1]李永.怎樣提高學(xué)生編程能力[J].文獻(xiàn)資料,2006(08).
[2]郭劍.編程能力的培養(yǎng)與提高[J].電腦與電信,2010.
[3]馬慧彬.結(jié)合ACM競賽提高學(xué)生編程能力的教改探索[J].計(jì)算機(jī)與信息技術(shù),2010.
[4]韓國勇.淺談提高學(xué)生編程能力[J].科技資訊,2010.
[5]樊紀(jì)山.提高非計(jì)算機(jī)專業(yè)學(xué)生編程能力的探索與思考[J].福建電腦,2010.