何晶 龍坡
摘 要
針對大學生初學編程語言時常見錯誤,及解決問題的方法和誤區(qū)進行總結,提出教學過程中針對性的引導和解決學生學習編程語言的關鍵障礙的方法。以期提高學生專業(yè)技能的同時,提高學生解決問題的能力和綜合素質。
關鍵詞
編程習慣;方法誤區(qū);教學引導;綜合能力
中圖分類號: G623.58 ? ? ? ? ? ? ? ? ? ? 文獻標識碼: A
DOI:10.19694/j.cnki.issn2095-2457 . 2020 . 18 . 60
0 前言
初學編程語言,在起步階段打好基礎非常重要,好的開始是成功的一半,也說明開始并不簡單。本文基于長沙民政職業(yè)技術學院軟件學院學生學習編程語言的實際情況,總結了學生經常犯的錯誤,以及教學方面如何針對性的指導。這些常見問題,并不只是知識點的細節(jié),更多的是學生能力和習慣的欠缺。培養(yǎng)學生的能力,提高學生的綜合素質,符合全面發(fā)展的需要,也是本文所希望能帶來的幫助。
1 常見問題總結
1.1 寫代碼缺斤少兩
大部分學生在學習編程的過程中,都會遇到寫代碼缺斤少兩的問題。所謂的缺斤少兩主要表現(xiàn)為兩個部分:(1)常用關鍵字或標點符號遺漏,最常見的就是Java語言、c語言、sql語言等,語法上有嚴格要求需要分號作為一句編碼語句結尾[1],學生經常在書寫完一句代碼后漏掉結尾的分號,導致編譯無法通過,這種情況主要是學生剛剛接觸編程語言,沒有形成良好的編碼習慣;關鍵字遺漏主要表現(xiàn)在英語差,以及初學者很多編碼的關鍵字沒有記住,導致單詞寫錯或者遺漏部分字母。這種情況如果不借助集成開發(fā)環(huán)境的智能檢測和提示,是很難察覺的。而初學編程,老師們一般要求學生不借助集成開發(fā)環(huán)境,以便打下堅實基礎和了解清楚程序運行機制。(2)丟失部分代碼,這也是初學的學生容易遇到的問題。初學編程,一般是跟著書本或者教學視頻進行編寫,而人的記憶是具有暫存性的。在記憶不深刻的情況下,容易漏掉一些非主要信息。因此在將書本或視頻學習到的代碼復述到編碼工具上的時候,非常容易丟失部分代碼。
1.2 不知道如何提問題
提問題是一門藝術,也是一門溝通技巧。大部分同學在初學編程的時候,遇到問題都需要去請教同學或者老師,但很少有同學能夠一次性將問題表述很清晰,因此,導致老師或者同學無法理解其所遇到的問題,引起溝通不暢甚至指導出錯,進一步導致錯誤蔓延。例如:android開發(fā)學習過程中,經常有同學問老師,我的應用掛了,請問老師是什么原因?這種情況,只是單純憑借應用掛了這個表象,老師是沒法定位錯誤原因的。又例如:某學生編寫java代碼讀取數(shù)據(jù)庫,數(shù)據(jù)一致顯示不出來,學生直接問老師為啥顯示不出來。這種問法都是有問題的,讀取不出數(shù)據(jù)的可能性有很多,必須要了解清楚代碼的書寫邏輯,或者有無程序異常錯誤堆棧信息從而進行分析。但學生們經常在問問題的時候,不習慣將錯誤原因的發(fā)生場景、前因后果都描述清楚。這種問題的主要原因是學生平時溝通習慣導致的,需要培養(yǎng)學生的正確溝通思維方式。
1.3 被問題卡住后無法推進學習
學習過程當中經常會遇到各種各樣的問題,有些時候簡單的問題能夠很快解決,有些問題卻會拖很久,甚至可能因為解決問題的方法不正確,而導致問題卡住后,沒法繼續(xù)學習下去。例如:Android開發(fā)環(huán)境搭建的問題,很多同學在初學的時候,就會遇到這個問題,如果開發(fā)環(huán)境搭建不成功,則后續(xù)也無法繼續(xù)編寫Android代碼,從而無法跟進老師的上課進度。這時候部分同學不善于請教同學老師,逐漸跟不上學習進度,直到放棄學習。根據(jù)作者連續(xù)三年Android程序設計課程教學經驗,發(fā)現(xiàn)有3%~5%的同學因為環(huán)境搭建不成功卡住學習進度,最終放棄學習android??紤]到其他編程語言也有環(huán)境搭建的障礙,所以這個問題有必要引起重視。
1.4 不能有效利用搜索引擎
2 教學上的解決方法:
2.1 重視學生基礎細節(jié)的掌握
以上問題首先反映了初學者在對編程語言還不熟悉的情況下,容易忽略一些編碼的細節(jié)問題,細節(jié)雖小,但往往會影響學生的學習效率,甚至影響學生的學習動力。因此,教師在上課的時候,應該更加注重細節(jié)的把控,盡量將問題細化到最小,從而避免忽略細節(jié)[2]。首先,增加代碼注釋,對于每一句代碼都給予詳細的解釋。不僅僅描述代碼的邏輯,還需要將一些容易忽略的語法邏輯加以標記,這樣,學生在跟著老師的代碼學習,模仿著寫代碼的時候,遇到這些細節(jié)點,就能夠引起重視。其次,加強練習,特別是編程語言基礎入門階段,要特別強調動手練習,盡量實操演練講解,而不是板書或者基于PPT講解代碼。編碼實際上就是一門技術活,熟能生巧,向學生強調學編程是靠不斷練習,而不是靠看書和背書。
2.2 增加解決問題案例講解
大學教學不僅僅是課中,還有課前和課后,特別是編程語言的學習,大部分時間是需要學生在課后花時間學習和練習的,那么這些課后練習過程中會暴露大量問題,而且大部分學生的問題都是重復的。有些同學可能會請教老師,有些同學則不善于向別人請教,那么教師在課后應該盡量收集同學們反饋的問題,針對學生經常遇到的問題,進行總結??偨Y學生經常犯的錯誤,在技術層面、學習習慣以及行為方式上多個層面分析[3]。并在課堂上針對性地進行講解,重點講解查找錯誤的方法和思路,授人以魚不如授人以漁。讓學生掌握解決錯誤的方法是至關重要的,培養(yǎng)解決問題的能力,實際上也是培養(yǎng)學生的學習能力,學習能力決定了學生未來能走多遠。其次,老師可以在課堂上實際編碼的時候,故意留下一些bug,先讓學生一起查找bug產生的原因,及修復方法。然后,帶領同學們一起解決bug,這個過程中能讓學生對比自己的思路和老師的思路,從而將老師的編碼經驗分享給了學生。再次,需要向學生強調,遇到bug不要慌張和感覺不安,向學生強調,實際開發(fā)工作中,遇到bug是常見的事情,解決bug的過程是迅速提高編程技術能力的關鍵。學習過程中遇到和解決的bug越多,以后工作后,解決bug的能力就會越強,工作能力就越突出,所以要樂于在學習階段遇到bug,并享受解決bug帶來的成就感。
2.3 引導學生優(yōu)化使用搜索引擎
學生不會使用搜索引擎查找問題和不會問問題實際上都是表達能力問題,表達能力的訓練是一個長期的過程。但針對學習編程中查找問題和問問題的表達是特定場景下的表達能力,這種能力是有一定模式可以參考的,并且能夠迅速提高。首先,針對請教問題的方法,在授課的時候,教師可以給一些具體的例子,告訴學生提出問題的時候,要將問題的前因后果描述出來。就像報警要告訴警察在什么位置,為啥報警,不能一昧像警察求助,而不說清楚緣由。其次,要讓學生學會使用搜索引起,并用好搜索引擎。搜索引擎是基于關鍵字搜索的,因此,字數(shù)越少匹配的信息越多,盡量減少無關信息作為關鍵字,但也不能漏掉重要關鍵字。搜索引擎的使用也是需要累積經驗的,教師可以上課的時候遇到問題,帶著同學們一起搜索,讓同學們學習教師是如何提取問題的關鍵字,以及如何在搜索結果中找到自己想要的信息。
3 總結
初學編程語言常見的問題大部分集中于對語法和工具的不熟悉,以及練習不夠,因此加強練習是學好編程的主要手段。教學過程中應當強調放下書本,多寫代碼多操作。編程語言的學習過程中,學生定會遇到各種各樣的問題,作為教師,不但要能夠幫助學生解決問題,更重要的是要教會學生掌握解決問題的辦法,提高解決問題的能力。
參考文獻
[1]陳琦.The Analysis of the Commonly Seen Problems in the Programming of the C Language%C程序設計中常見問題辨析[J].燕山大學學報, 2000, 024(003):247-249.
[2]賀軍,李喜梅.對計算機程序設計語言課程教學的思考[J].職教論壇,2004(14):24.
[3]戴磊.如何提高應用型高校“VC++程序設計”課程的教學質量[J].中國成人教育,2009, 000(021):176-177.