唐型基 柴群 李韋鵬


摘要:Java程序設計是一門應用實踐的課程,在實踐教學中存在一些問題,學生學習效果不太理想,不會編程,理論與實踐脫離,作者提出以加強調(diào)試技術來提升的Java程序設計能力的方法,并運用到教學實踐中。
關鍵詞:調(diào)試技術;Java;程序設計能力
中圖分類號:G642? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2018)35-0096-02
Java編程語言是目前流行的開發(fā)語言之一,具有跨平臺、易開發(fā)、安全和軟件產(chǎn)品健壯等特點,被廣泛應用于網(wǎng)絡程序開發(fā)、手機程序開發(fā)和普通桌面程序開發(fā)等多個領域。Java 語言是全國高校計算機專業(yè)的核心專業(yè)基礎課程之一,是培養(yǎng)學生面向?qū)ο蟪绦蛟O計能力的主干課程之一[1]。作者結合多年的軟件開發(fā)經(jīng)驗和教學經(jīng)驗以及學生的反饋情況,對在Java 程序設計教學中加強調(diào)試技術以促進提升學生實踐能力進行了一些探索。
1 目前Java程序設計教學現(xiàn)狀及存在的問題
近年來,在培養(yǎng)應用型人才的號召下許多高校對各專業(yè)的各課程都進行了改革和嘗試,趨向于培養(yǎng)學生專業(yè)技術的實踐運用能力。Java程序設計課程的改革也如此,從教學內(nèi)容、教學方法、考核方式都做了相應的改革和嘗試:從重理論輕實踐改革為理論與實踐并重;從填鴨式的滿堂灌改革到了以學生為中心的教學方式;從筆試考核改革為上機考試等。但作者通過調(diào)研、與兄弟院校同行教師交流以及教學實踐發(fā)現(xiàn)目前Java程序設計課程的教學還是存在一些問題。
1.1 理論與實踐脫離
Java程序設計課程一般都開設有理論課與實驗課兩部分,通常理論與實踐的比例是按1:1開設的。在實際教學過程中,理論與實踐如何聯(lián)系起來卻是大多的教學中難以處理好的問題。并不是所有的知識點都是聽教師講解就能理解的,主要還是靠學生通過自己動手實踐才能收獲。但是目前大多數(shù)教師的教學中不重視調(diào)試技術的講授,學生在實踐過程中遇到各種問題,無法順利地完成實踐,導致無法理解理論知識,從而理論與實踐相脫離。
1.2不會發(fā)現(xiàn)錯誤和改正錯誤
許多的學生在聽了教師的講授之后已經(jīng)能寫出程序的大概了,但是最終卻不能把程序完整地編寫出來或者運行得不到正確的結果。其主要原因是學生不會發(fā)現(xiàn)程序中存在的錯誤和將錯誤改正。如果學生不掌握調(diào)試技術,當程序出現(xiàn)問題時,就會束手無措,或者尋求指導教師的幫助,缺乏自己主動探求問題的能力,編程能力自然大打折扣[2]。
1.3自學能力弱
大多數(shù)的學生在課余時間想自己學習Java程序設計語言知識或者嘗試編程,將課本上的知識在開發(fā)環(huán)境中嘗試“體驗”和理解程序設計的知識,但實際情況是學生把一些課本上的代碼輸入到開發(fā)環(huán)境中卻不能運行,學生便會在學習積極性上會受到打擊,會產(chǎn)生挫敗感,久而久之對學習Java編程生產(chǎn)厭煩情緒,因此而放棄學習。據(jù)作者多年任教經(jīng)驗得知,這主要的原因是學生輸入源碼錯誤導致的,但學生不會調(diào)試,課本上的代碼或知識得不到運行驗證,因此學生無法理解程序設計的知識,這體現(xiàn)為學生自學習能力弱。
這些表現(xiàn)出來的問題,歸根結底是學生動手實踐能力弱。據(jù)作者多年的軟件開發(fā)和教學經(jīng)驗,提升動手實踐能力的一大強有力的手段便是調(diào)試。
2 調(diào)試技術在Java程序設計教學中的作用
調(diào)試是運行程序并發(fā)現(xiàn)和糾正程序中錯誤的過程。調(diào)試技術中重要的一個環(huán)節(jié)是可以把代碼指令一條一條地單步執(zhí)行,并停下來讓學者觀察程序中指令的執(zhí)行效果,理解代碼指令的功能,從而提升程序設計的能力。
2.1 通過調(diào)試使理論聯(lián)系實踐
調(diào)試技術是溝通理論課和實驗課的橋梁[2],通過調(diào)試技術,將指令的執(zhí)行結果呈現(xiàn)出來,讓程序?qū)W習者不再僅限于對指令的想象,而是直觀地觀察到指令的執(zhí)行效果,結合課本的介紹更好地理解程序代碼,使書本上的理論與實踐結合起來。
2.2 通過調(diào)試學會寫程序
編寫程序的一般過程是編輯源碼、調(diào)試、運行。其中調(diào)試是非常重要的一步,它不僅起到修正程序的作用,重要的是它能讓程序編寫者在調(diào)試過程中體會編程思路和程序指令運用的情況。經(jīng)過長時間的調(diào)試可以使程序編寫者能夠準確靈活地運用指令編寫代碼,從而增強程序編寫的能力。
2.3 通過調(diào)試發(fā)現(xiàn)和改正錯誤
調(diào)試技術的最基本的目標就是發(fā)現(xiàn)程序中的錯誤,從而改正錯誤。在大多數(shù)的教學中老師并沒有教學生調(diào)試技術,不重視調(diào)試技術。學生對調(diào)試也是一知半解,寫出一個源程序后上機運行得不到正確結果,也不知道錯誤出在哪里,更不知道如何去修改。如果學生掌握了調(diào)試技術,在沒有老師的情況下也能通過調(diào)試自己找到出錯的地方,從而改正錯誤,編寫出得到期望結果的程序。
2.4 通過調(diào)試提升自學能力
學生掌握了調(diào)試技術,在遇到書本上看不明白的程序代碼,就可以將程序放到開發(fā)環(huán)境中調(diào)試運行,在調(diào)試過程中不斷地修正輸入源程序的錯誤或者課本上原來代碼的錯誤,并且逐漸理解程序代碼,達到消化課本上的知識的作用,逐漸提升學生自學的能力。
3 eclipse中基礎的Java調(diào)試技術
Java 課程是一門應用的實踐性的課程。只依靠教師講解和演示是不行的,可能教師“圓滿”地完成了教學任務,但是能夠自己動手編寫程序的學生少之又少。關鍵是得讓學生動手實踐,以學生為主體,動手實踐為載體,教師只是引導和輔導。作者在帶學生動手實踐時學生問得最多的問題就是出現(xiàn)了錯誤怎么辦?這類問題本質(zhì)上反映了學生不會調(diào)試。下面結合eclipse介紹基礎的Java調(diào)試技術。
目前Java程序設計中使用得較多的集成開發(fā)環(huán)境主要是eclipse。Eclipse 是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。在eclipse環(huán)境中的右上角的透視工具欄中點擊“調(diào)試”按鈕可將eclipse工作模式切換成為調(diào)試模式,如圖1。
3.1設置斷點
學會設置短點,通過設置短點可以使程序在執(zhí)行到某一點時暫時停住[3]。在源碼編輯窗口中左邊的相應行號位置雙擊鼠標即可在相應行上添加了斷點,在相應行號左邊多了一個藍色的小圓點。如圖2。
3.2啟動調(diào)試
在eclipse中使用按下快捷鍵F11或者在工具欄上按下<E:\知網(wǎng)文件\電腦\電腦34\4xs201834\Image\image3.png>按鈕即開始了調(diào)試。程序會在調(diào)試模式下從main方法中運行到斷點處停下來。下一條將要執(zhí)行的代碼會加上草綠色的底紋,如圖3。
3.3單步調(diào)試
單步調(diào)試是調(diào)試中非常重要的一個功能。它可在變量窗口中直觀地反映出一條語句執(zhí)行后的效果,既可以用于檢查程序中的邏輯錯誤,又可以讓學生理解其中程序結構和程序中變量的情況[4]。在eclipse中使用F5鍵和F6鍵可使程序單步執(zhí)行。其中F5是會進入方法內(nèi)部的單步執(zhí)行,而F6單步執(zhí)行不會進入方法內(nèi)部。
3.4監(jiān)視變量
在變量窗口中可以觀察變量隨著每個步驟的執(zhí)行的變化效果。
3.5程序調(diào)試實例
如程序段:“a=a+b;b=a-b;a=a-b;”,對于不熟悉的同學來說,可能一時看不出來程序段的功能,但是加上變量的定義及賦初值之后,放到eclipse環(huán)境中去通過單步調(diào)試,從變量窗口中很容易就看出上述程序段的功能。
第一步,編輯源程序。在源碼窗口中輸入源程序,如圖4。
第二步,在第5行的最左邊行號位置上雙擊鼠標,添加斷點。
第三步,按下F11啟動調(diào)試,程序執(zhí)行到第5行處停下,如圖5。
第四步,在變量窗口觀察變量a與b的值,目前是a=3,b=5。
第五步,按下F5鍵或者F6鍵單步執(zhí)行程序,在變量窗口中看到此時b的值不變,a=8,再次按下F5,在變量窗口中觀察到a=8,b=3,第3次按下F5,此時a=5,b=3。如圖6。
通過以上對于程序的調(diào)試,不難總結出上述程序段的功能是實現(xiàn)變量a與b的交換。
4 結論
eclipse中Java程序的調(diào)試基本的步驟就是述過程,請別小看這是小技術,它卻有著大作用,許多的學生正是因為不會調(diào)試而沒有學好程序設計!教會學生調(diào)試技術不僅僅只是免去教師總在課堂上幫助學生修正程序,正所謂授人以魚,不如授人以漁。學生學好調(diào)試,有助于學生將理論與實踐緊密結合、加強發(fā)現(xiàn)程序錯誤和修改程序的能力、提升程序設計能力、增強自學能力。
參考文獻:
[1] 戴長秀.Java語言課程教學實踐研究[J].教育現(xiàn)代化,2017(12):113-115.
[2] 王楠,趙占芳.調(diào)試技術在程序設計實驗教學中的應用探討[J].教育現(xiàn)代化,2017(2):46-47,53.
[3] 丁春芳.“C 語言程序設計”教學中程序調(diào)試探析[J].邢臺職業(yè)技術學院學報,2010(6):19-21.
[4] 岳俊梅.單步運行調(diào)試技術在C++語言教學中的重要性研究[J].計算機教育,2008(4):91-93.
【通聯(lián)編輯:朱寶貴】