楊舜堯
(阜新高等專科學(xué)校,遼寧 阜新 123000)
高職計(jì)算機(jī)語(yǔ)言教學(xué)中編程素養(yǎng)的養(yǎng)成
楊舜堯
(阜新高等??茖W(xué)校,遼寧 阜新 123000)
計(jì)算機(jī)編程是高職各理工學(xué)科的基礎(chǔ)課,隨著自動(dòng)化和網(wǎng)絡(luò)技術(shù)的發(fā)展,計(jì)算機(jī)編程在很多領(lǐng)域中都有著重要的應(yīng)用。但在實(shí)際教學(xué)中,學(xué)生普遍對(duì)編程熱度不夠,興趣不大,感覺(jué)很難入門,學(xué)生編程水平有待進(jìn)一步提高。究其原因,是學(xué)生還沒(méi)有養(yǎng)成比較好的編程素質(zhì),入門難度加大,在此就實(shí)際教學(xué)中學(xué)生基本編程素養(yǎng)的養(yǎng)成進(jìn)行論述,以提高學(xué)生的計(jì)算機(jī)水平,為學(xué)生今后自學(xué)編程語(yǔ)言打下良好的基礎(chǔ)。
計(jì)算機(jī)編程;計(jì)算機(jī)教學(xué);編程素養(yǎng);編程水平
Abstract:Computer programming is a basic course of science and technology in higher vocational colleges,along with the development of automation and network technology,computer programming has been applied in many fields.Yet in the teaching students lack interest in the course,the level of students'programming needs to be further improved.The reason is that students have not developed better programming accomplishment,and this increases the difficulty of entry.This paper discusses the development of basic programming accomplishment in the teaching to improve students'computer skills,and lays a good foundation for students'future programming language learning.
Keywords:computer programming;computer teaching;programming accomplishment;programming level
學(xué)生在學(xué)習(xí)編程中常遇到以下困難:
一是由于大多數(shù)學(xué)生是第一次接觸計(jì)算機(jī)編程,對(duì)于許多語(yǔ)法和編程規(guī)范比較生疏,造成變量、常量及其它關(guān)鍵字的錯(cuò)誤輸入,或者輸入的不一致性,對(duì)于這些常規(guī)低級(jí)的錯(cuò)誤,學(xué)生很難發(fā)現(xiàn)。原因是對(duì)于編程平臺(tái)的提示信息不能夠讀明白。
二是隨著教學(xué)進(jìn)度的進(jìn)行,編程的代碼量將逐步增加,代碼行數(shù)由幾行變?yōu)閹资?,許多學(xué)生將會(huì)出現(xiàn)代碼的堆積現(xiàn)象,讓人看得很是不爽,一大堆,沒(méi)有一個(gè)清晰的編程規(guī)范和編程習(xí)慣,甚至不標(biāo)清注釋。[1]這樣給后續(xù)的編程造成極大的影響,降低了編程效率。
三是計(jì)算機(jī)編程看似入門很難,其實(shí)很大程度上都是由于積累不夠。例如,在做計(jì)算機(jī)編程題目時(shí),很多學(xué)生沒(méi)有思路,做過(guò)的題目還是不會(huì)。[2]平時(shí)不注重算法的積累,很多時(shí)候都要去現(xiàn)場(chǎng)驗(yàn)算或是“發(fā)明”新算法,其實(shí)就是那十幾種的算法,牢記后可極大提高編程效率。當(dāng)然需要記住的還有很多。[3]
四是不注重總結(jié)。計(jì)算機(jī)教學(xué)中,很多內(nèi)容都是按部就班的,也都是成熟定性的。[4]例如C++和java教學(xué)中的很多章節(jié)內(nèi)容上和邏輯上都是相似的,就是具體的寫法略有不同,如果平時(shí)注重積累,其中的一門學(xué)會(huì)之后,可以自學(xué)另外的一門語(yǔ)言,這些都是有先例的。當(dāng)然還有其他的方面也要注重總結(jié)。
五是代碼的可閱讀性。很多思路敏捷的學(xué)生,寫出代碼的效率很高,但是可閱讀性不高。寫代碼時(shí)跟著感覺(jué)走。其他程序員閱讀后不知道在寫什么,很難讀懂,而本人可能感覺(jué)很爽,其實(shí)在實(shí)際工作中這恰恰是編程水平低下的表現(xiàn)。一個(gè)優(yōu)秀的程序員寫的代碼應(yīng)該是一目了然,邏輯層次清晰,而不是帶著幾分“神秘”。
1.重視學(xué)生英語(yǔ)學(xué)習(xí)
由于軟件編譯平臺(tái)都來(lái)自于西方歐美等國(guó),所以英語(yǔ)的學(xué)習(xí)顯得尤為重要。學(xué)生在平時(shí)的英語(yǔ)學(xué)習(xí)中應(yīng)注重專業(yè)名詞的積累,對(duì)于軟件中出現(xiàn)頻率較高的詞匯應(yīng)該著重記憶,總結(jié)重點(diǎn)單詞的“手冊(cè)”。
2.培養(yǎng)學(xué)生良好的程序編寫習(xí)慣
一個(gè)優(yōu)秀的程序員,編寫的程序,首先從外觀上應(yīng)該是專業(yè)的,如果看起來(lái)比較亂,無(wú)論代碼多么的優(yōu)秀,都會(huì)被認(rèn)為是一個(gè)低級(jí)的程序員。良好的習(xí)慣應(yīng)該從平時(shí)的編寫訓(xùn)練中得到培養(yǎng),注重模擬教材,以及編寫較規(guī)范成熟的代碼。在學(xué)生編寫代碼之后相互進(jìn)行檢查,互相指出對(duì)方不足,并要添加注釋,增加程序的可讀性和維護(hù)性。
3.代碼編寫規(guī)范化
在實(shí)際規(guī)范化的開(kāi)發(fā)過(guò)程中,實(shí)際代碼的編寫時(shí)間占總時(shí)間的1/2,正所謂磨刀不誤砍柴功。如果設(shè)計(jì)以及規(guī)劃過(guò)程完成得較好,那么會(huì)極大地提高編碼效率,不同的程序員之間的不同模塊進(jìn)度協(xié)調(diào)和協(xié)作是很重要的。[5]如果因?yàn)榫帉懙拇a不規(guī)范造成影響整體進(jìn)度,其他的程序員需要被迫停下工作去等待,這種問(wèn)題是相當(dāng)嚴(yán)重的,也是很不值的。
4.注意總結(jié)算法,注重復(fù)用性,以及模塊化思維能力培養(yǎng)[6]
算法是程序的靈魂,好的優(yōu)秀的算法需要記憶,因?yàn)樗惴ǖ臋C(jī)制幾乎是不變的。所以應(yīng)培養(yǎng)好的算法記憶能力。不同程序之間有很多的算法是相似的,重復(fù)率較高,很多時(shí)候只要修改一下算法的參數(shù)和位置就能重新進(jìn)行應(yīng)用,所以代碼的重復(fù)使用在程序編寫中也是提高編程效率的一種重要方法。
5.軟件的測(cè)試,提高程序健壯性
找bug,是學(xué)生自我提高的最佳途徑。編程水平的提高過(guò)程,就是一個(gè)不斷犯錯(cuò)誤,找錯(cuò)誤,糾正錯(cuò)誤的過(guò)程。如果學(xué)習(xí)時(shí)犯的錯(cuò)誤較少,那么在以后會(huì)遇到更多的錯(cuò)誤,在實(shí)際開(kāi)發(fā)中將無(wú)從下手。例如:微軟公司在很短時(shí)間內(nèi)就會(huì)經(jīng)常發(fā)布各種補(bǔ)丁,課件高手們整天都在找bug,修正bug,沒(méi)有不存在bug的程序。此外要提高對(duì)各種異常的處理能力,印度的軟件業(yè)之所以發(fā)達(dá),除了其英語(yǔ)作為官方語(yǔ)言之外,就是異常處理得非常具體詳細(xì)。異常處理的代碼量要占總體的一半甚至三分之二,所以程序幾乎是不會(huì)崩潰的。
6.注意團(tuán)隊(duì)合作精神的培養(yǎng)
對(duì)于每個(gè)工程項(xiàng)目,一個(gè)人完成是不可能的,在實(shí)際開(kāi)發(fā)過(guò)程中,與人打交道是家常便飯,與其他人的溝通就顯得十分重要,而且良好的溝通是提高工作效率的基礎(chǔ)。有些程序員是技術(shù)高手,但是一旦進(jìn)入團(tuán)隊(duì),工作就會(huì)拖后腿,這就是個(gè)很好的例子。因?yàn)樗c別人的溝通不好,整個(gè)項(xiàng)目造成不協(xié)調(diào),所以要不斷的修改,這會(huì)導(dǎo)致效率低下。一旦進(jìn)入商業(yè)化和產(chǎn)品化的開(kāi)發(fā)中,缺乏團(tuán)隊(duì)意識(shí)的程序員是不合格的。
1.需求分析的能力
軟件是一個(gè)龐大的工程,第一個(gè)步驟就是需求分析。在商業(yè)開(kāi)發(fā)中,軟件的設(shè)計(jì)制作都是以客戶為導(dǎo)向的,對(duì)用戶的要求吃透是開(kāi)發(fā)最基本的前提。對(duì)于程序員而言,只需要完成相應(yīng)的功能代碼就可以,但是對(duì)于高級(jí)程序員來(lái)講,還要制定專業(yè)的需求分析,供其他程序員來(lái)參考。
對(duì)于客戶而言,只是直觀地提出功能和效率的要求,以及軟件要達(dá)到的效果,界面的色彩和結(jié)構(gòu)等。由于非計(jì)算機(jī)專業(yè)制定的要求并不是數(shù)據(jù)專業(yè)的需求,這就要求程序員能分析工程背后的架構(gòu)要求和隱形的需求是否能夠轉(zhuǎn)換成軟件專業(yè)的需求分析,使程序員的思路完整清晰。
2.自學(xué)能力的培養(yǎng)
計(jì)算機(jī)語(yǔ)言是不斷更新的語(yǔ)言,各種技術(shù)日新月異,大概每半年就有一次語(yǔ)言的技術(shù)革新。隨著新技術(shù)的不斷到來(lái),新的開(kāi)發(fā)手段不斷在各領(lǐng)域應(yīng)用,舊的技術(shù)不斷會(huì)被淘汰。如果跟不上流行的語(yǔ)言發(fā)展趨勢(shì),程序員必將很快被淘汰,所以要不斷地學(xué)習(xí)新的技術(shù),學(xué)習(xí)新的技能。
計(jì)算機(jī)編程,是一門注重實(shí)踐能力的學(xué)科,好的編程素質(zhì)是“練”出來(lái)的,只有積累了一定的代碼量,才能塑造出一個(gè)優(yōu)秀的編程人才,勤學(xué)苦練,注重實(shí)踐,積極溝通,不斷學(xué)習(xí),才是編程學(xué)習(xí)的最良好的基本素養(yǎng)。
一個(gè)成功的軟件人才是不斷從實(shí)戰(zhàn)中磨煉出來(lái)的。軟件人才的成才過(guò)程與作家有相似之處,都是從不斷的寫作中不斷提高的過(guò)程。一個(gè)寫過(guò)2年代碼的編程人員和8年代碼的從業(yè)人員境界是不同的,對(duì)于程序的理解和整體把握有著更深的技能。從菜鳥(niǎo)變成達(dá)人,再變成牛人,最后轉(zhuǎn)變?yōu)榇髱熂?jí)的人物。在不斷升級(jí)的過(guò)程中,實(shí)踐是自我提升的最佳途徑,當(dāng)然最好有高人的指點(diǎn),所謂的各種書籍和官方材料,都只是一種說(shuō)明而已,寶貴的經(jīng)驗(yàn)財(cái)富還是得通過(guò)實(shí)踐出真知。
不斷的嘗試,不斷追求完美和極致,是編程人員所努力的理想境界。這需要有大量的時(shí)間和精力上的付出,只有這樣,才能成為互聯(lián)網(wǎng)時(shí)代的弄潮兒。
[1]Graham R L,Knuth D E,Patashnik O.Concrete Mathematics A Foundation for Computer Science(Second Edition)[M].北京:機(jī)械工業(yè)出版社,2002:28-31.
[2]Knuth D E.計(jì)算機(jī)程序設(shè)計(jì)的藝術(shù)[M].北京:人民郵電出版社,2012:43-54.
[3]Abelson H,Sussman G J,Sussman J.Structure and Interpretation of Computer Programs(Second Edition)[M].北京:機(jī)械工業(yè)出版社,2004:345-400.
[4]張立昂.可算性與計(jì)算復(fù)雜性導(dǎo)引[M].北京:北京大學(xué)出版社,2011:89-91
[5]明日科技.java從入門到精通[M].3版.北京:清華大學(xué)出版社,2012:123-129.
[6]Nichoias C,Zakas.JavaScripe高級(jí)程序設(shè)計(jì)[M].3版.北京:人民郵電出版社,2012:56-58.
[責(zé)任編輯,阜新高專:武艷娟]
The Cultivation of Programming Accomplishment in Higher Vocational Computer Language Teaching
YANG Shun-yao
(Fuxin Higher Training College,Fuxin 123000,China)
G712
A
1009—7600(2017) 08—0110—03
2016-09-23
楊舜堯(1981—),男,遼寧阜新人,講師。