葉恒舟 牛秦洲
摘要:Java教學(xué)實(shí)踐既是知識(shí)的傳授與學(xué)習(xí)過(guò)程,也是編程思維的培養(yǎng)過(guò)程。本文結(jié)合教學(xué)實(shí)踐經(jīng)驗(yàn),從激發(fā)興趣、啟發(fā)式教學(xué)、習(xí)慣培養(yǎng)、強(qiáng)化動(dòng)手能力等幾個(gè)方面探討了在Java教學(xué)實(shí)踐中培養(yǎng)學(xué)生編程思維,提升動(dòng)手能力的方式方法。
關(guān)鍵詞:Java;編程思維;教學(xué)實(shí)踐
中圖分類(lèi)號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:A
1引言
俄國(guó)的達(dá)維多夫說(shuō)過(guò):“要解決現(xiàn)代學(xué)校教育的根本任務(wù),歸根結(jié)底要通過(guò)教學(xué)目標(biāo)、教學(xué)內(nèi)容和教學(xué)方式的設(shè)計(jì)而改變思維類(lèi)型。”可見(jiàn)現(xiàn)代教育的目標(biāo)決非停留在僅僅掌握基礎(chǔ)知識(shí)和基本操作技能上,而應(yīng)著眼于培養(yǎng)學(xué)生分析問(wèn)題、解決問(wèn)題的能力,發(fā)展學(xué)生的思維品質(zhì),提升學(xué)生的創(chuàng)新意識(shí)。程序設(shè)計(jì)具有抽象性、系統(tǒng)性和邏輯性,編程思維是學(xué)習(xí)程序設(shè)計(jì)的重要基礎(chǔ),也是“軟件藍(lán)領(lǐng)”的必備能力,在程序設(shè)計(jì)的教學(xué)實(shí)踐過(guò)程中尤為重要。
Java語(yǔ)言具有面向?qū)ο?與平臺(tái)無(wú)關(guān),安全、穩(wěn)定和多線程等優(yōu)點(diǎn),實(shí)踐性強(qiáng)、知識(shí)面廣,是目前軟件設(shè)計(jì)中最具生命力的計(jì)算機(jī)編程語(yǔ)言之一。學(xué)好Java語(yǔ)言,培養(yǎng)良好的思維品質(zhì),能有效促進(jìn)學(xué)生的知識(shí)、能力和人格的全面發(fā)展,提升學(xué)生的就業(yè)、創(chuàng)業(yè)能力。
2Java實(shí)踐教學(xué)探索
近幾年來(lái),我們?cè)贘ava編程初步教學(xué)實(shí)踐中為全面提高、培養(yǎng)學(xué)生的編程思維能力,實(shí)現(xiàn)素質(zhì)教育目標(biāo),進(jìn)行了一些有益探索與試驗(yàn),取得了良好的效果。
2.1激發(fā)學(xué)生的興趣,調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性
夸美紐斯說(shuō)過(guò):“興趣是最好的老師,是學(xué)好一切的前提”;愛(ài)因斯坦也認(rèn)為“興趣是最好的老師”。教師是教學(xué)主體,可通過(guò)創(chuàng)設(shè)一定的學(xué)習(xí)環(huán)境展現(xiàn)課程的趣味性和社會(huì)實(shí)踐意義,以喚起學(xué)生的學(xué)習(xí)欲望,激發(fā)學(xué)生的創(chuàng)造潛能,達(dá)到事半功倍的效果。我們?cè)趯?shí)踐教學(xué)過(guò)程中,除了強(qiáng)調(diào)該課程知識(shí)對(duì)于后續(xù)課程學(xué)習(xí)以及就業(yè)、創(chuàng)業(yè)的重要意義之外,還結(jié)合具體課程知識(shí),有針對(duì)性地設(shè)計(jì)實(shí)現(xiàn)一些有意義、有趣味的小程序。比如在學(xué)習(xí)完三種程序結(jié)構(gòu)之后,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的自動(dòng)考試系統(tǒng),可以隨機(jī)生成一些四則運(yùn)算題,讓學(xué)生作答,之后可以自動(dòng)評(píng)分。通過(guò)這個(gè)小程序,學(xué)生會(huì)對(duì)Java語(yǔ)言的社會(huì)實(shí)踐意義有更具體的認(rèn)識(shí),吸引他們的注意力,激發(fā)學(xué)習(xí)興趣。再如,以夫妻雙方對(duì)家庭收入的不同管理方式為例,介紹面向?qū)ο蟪绦蛟O(shè)計(jì)與結(jié)構(gòu)化程序設(shè)計(jì)的區(qū)別,顯得直觀而有趣味,很能吸引學(xué)生的眼球。
2.2巧設(shè)疑問(wèn),營(yíng)造創(chuàng)新氛圍
亞里士多德說(shuō):“思維自驚奇和疑問(wèn)開(kāi)始”。問(wèn)題是開(kāi)啟思維和發(fā)表思維的源泉;創(chuàng)新意識(shí)是一種發(fā)現(xiàn)問(wèn)題、積極探求的心理取向。在程序設(shè)計(jì)的任務(wù)驅(qū)動(dòng)式和討論式教學(xué)中,由于問(wèn)題具有可操作性與多解性,為學(xué)生的主動(dòng)參與創(chuàng)造條件,有利于轉(zhuǎn)“師生關(guān)系”為“朋友關(guān)系”,發(fā)揮學(xué)生的學(xué)習(xí)主體作用。在程序設(shè)計(jì)教學(xué)實(shí)踐過(guò)程中,大多都會(huì)引入程序?qū)嵗?并通過(guò)實(shí)例的講解加深相關(guān)知識(shí)點(diǎn)的理解與運(yùn)用,這是很好的。但如果只是展示相關(guān)代碼,再逐條解釋,會(huì)顯得枯燥無(wú)味,學(xué)生也往往只是把握了一些知識(shí)點(diǎn),而不能提升思維能力,達(dá)不到靈活運(yùn)用的目的。在教學(xué)實(shí)踐中,我們往往會(huì)有針對(duì)性地引入教材中沒(méi)有的程序,帶著疑問(wèn)來(lái)講解、實(shí)現(xiàn)這些例子。一般是先給出程序要達(dá)到的目的,與學(xué)生一起進(jìn)行功能探討與分析,劃分成幾個(gè)子問(wèn)題,然后逐個(gè)實(shí)現(xiàn);實(shí)現(xiàn)中也主要進(jìn)行思路上的引導(dǎo),比如需要用到什么程序結(jié)構(gòu)、需要使用哪些關(guān)鍵變量等,并適時(shí)、適量提出一些典型問(wèn)題,讓學(xué)生親臨其境,真正活學(xué)活用。
對(duì)于教師提出的問(wèn)題,學(xué)生的想法有時(shí)并不正確,卻具有一定的代表性。這時(shí),我們會(huì)尊重學(xué)生的想法,并按照學(xué)生的想法繼續(xù)推演,直到發(fā)現(xiàn)問(wèn)題,然后再進(jìn)行分析歸納,指出問(wèn)題所在。在這種交互的過(guò)程中,學(xué)生不僅學(xué)會(huì)了知識(shí),鍛煉了思維,師生關(guān)系也更為融洽。
2.3言傳身教,養(yǎng)成良好編程習(xí)慣
未來(lái)對(duì)軟件質(zhì)量的要求高于對(duì)性能和功能的要求,特別是一些涉及人身財(cái)產(chǎn)安全方面的軟件。然而時(shí)至今日,軟件質(zhì)量問(wèn)題依然不容樂(lè)觀,由軟件質(zhì)量問(wèn)題導(dǎo)致的人身財(cái)產(chǎn)損失數(shù)不勝數(shù)。良好的編程習(xí)慣可以大大提高軟件開(kāi)發(fā)的速度與質(zhì)量,減少人為錯(cuò)誤。
編程習(xí)慣是指編程者在程序設(shè)計(jì)過(guò)程中共同遵守的一些規(guī)則或者約定,目前并沒(méi)有一個(gè)完整的定義,但很多業(yè)內(nèi)人士總結(jié)了一些優(yōu)良的Java編程風(fēng)格,如命名、縮進(jìn)格式、注釋、空格使用等。盡管這些風(fēng)格并不難理解,但初學(xué)者所接觸的軟件比較簡(jiǎn)單,往往體會(huì)不出這些編程風(fēng)格的好處,反而覺(jué)得是一種束縛,并不重視。在教學(xué)實(shí)踐中,我們采取了多種方式強(qiáng)化良好編程習(xí)慣。一是適當(dāng)列舉一些軟件質(zhì)量軼事,強(qiáng)調(diào)編程風(fēng)格、軟件質(zhì)量的重要性;二是身體力行,在教學(xué)過(guò)程中嚴(yán)格遵守一些好的編程習(xí)慣,如果確實(shí)因?yàn)榘鍟?shū)或時(shí)間的原因不能遵守,則專門(mén)作出說(shuō)明,指出這些地方做得不好;三是通過(guò)實(shí)例分析比較,強(qiáng)調(diào)良好的編程習(xí)慣的優(yōu)勢(shì);四是在實(shí)踐教學(xué)環(huán)境中及時(shí)發(fā)現(xiàn)并糾正學(xué)生的不良編程習(xí)慣。
2.4加強(qiáng)實(shí)踐教學(xué),提升動(dòng)手能力
實(shí)踐教學(xué)的貫徹落實(shí),是關(guān)系到專業(yè)和課程設(shè)置的目標(biāo)能否實(shí)現(xiàn)的重要一環(huán)。我們?cè)贘ava程序設(shè)計(jì)實(shí)踐教學(xué)中采取以下措施:
(1) 選擇合適的開(kāi)發(fā)平臺(tái)
Java有最基礎(chǔ)的開(kāi)發(fā)平臺(tái),即J2SDK,簡(jiǎn)稱JDK。另外還有許多集成開(kāi)發(fā)環(huán)境( IDE),例如JBuilder、NetBeans,也可以直接使用DOS環(huán)境。前者隱藏了很多Java處理機(jī)制,不利于初學(xué)者對(duì)Java語(yǔ)言本身的理解;后者需要學(xué)生熟悉DOS控制臺(tái),開(kāi)發(fā)環(huán)境的設(shè)置會(huì)給學(xué)生帶來(lái)一些困惑。經(jīng)過(guò)比較,我們選擇使用免費(fèi)的、較為簡(jiǎn)單的BlueJ作為開(kāi)發(fā)工具。BlueJ提供了語(yǔ)法敏感的編輯環(huán)境,不需要配置環(huán)境,并帶有很強(qiáng)的軟件測(cè)試與調(diào)試功能,它并不提供可視化控件,所有代碼仍需要手工編寫(xiě),是前兩者很好的折中方法,很適合Java初學(xué)者。
(2) 由淺入深,設(shè)定實(shí)踐任務(wù)
采用“三段過(guò)程”實(shí)驗(yàn)教學(xué)方法,即模仿過(guò)程實(shí)驗(yàn)、完善過(guò)程實(shí)驗(yàn)、綜合過(guò)程實(shí)驗(yàn)這三種類(lèi)型實(shí)驗(yàn)形式,由淺入深分級(jí)設(shè)定實(shí)踐任務(wù),并制定基本目標(biāo)與擴(kuò)展目標(biāo),以適應(yīng)不同層次的學(xué)生。受實(shí)踐指導(dǎo)時(shí)間的限制,擴(kuò)展目標(biāo)可以留給學(xué)生自己實(shí)踐,教師及時(shí)把握相關(guān)反饋信息,加強(qiáng)師生互動(dòng)。在實(shí)踐過(guò)程中,我們認(rèn)為不宜給出源代碼;主動(dòng)發(fā)現(xiàn)并指導(dǎo)學(xué)生實(shí)踐中出現(xiàn)的過(guò)程;對(duì)共性問(wèn)題,要分析產(chǎn)生的原因,知其所以然,而不是簡(jiǎn)單給出正確方法。
(3) 課程設(shè)計(jì)過(guò)程的規(guī)范化訓(xùn)練
課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合利用所學(xué)知識(shí)、分析和解決實(shí)際問(wèn)題,鍛煉創(chuàng)造能力的重要實(shí)踐環(huán)節(jié)。為此,我們精心設(shè)計(jì)、下發(fā)了課程設(shè)計(jì)任務(wù)書(shū)和課程設(shè)計(jì)指導(dǎo)書(shū),提出了課程設(shè)計(jì)目的與任務(wù)、內(nèi)容與要求、時(shí)間與學(xué)時(shí)分配、撰寫(xiě)課程設(shè)計(jì)報(bào)告及要求和格式、考核及成績(jī)?cè)u(píng)定。
2.5積極引導(dǎo),培養(yǎng)學(xué)生的自學(xué)能力
常言道:“授之以魚(yú),不如授之以漁”。Java語(yǔ)言涉及知識(shí)面廣泛,而教學(xué)課時(shí)有限,引導(dǎo)、培養(yǎng)學(xué)生的自學(xué)能力是Java程序設(shè)計(jì)教學(xué)的重要內(nèi)容。在教學(xué)實(shí)踐過(guò)程中,除了強(qiáng)調(diào)自學(xué)能力的重要性之外,還采取了如下措施:
(1) 引導(dǎo)學(xué)生學(xué)習(xí)使用Java API文檔
毫無(wú)疑問(wèn),Java API文檔是最為重要的參考資料,是提升學(xué)生自學(xué)能力的重要手段,但很多教材中并不重視,也往往被廣大教師與學(xué)生忽視。教學(xué)實(shí)踐中,我們?cè)诮榻B類(lèi)String、ArrayList、GUI編程時(shí)介紹Java API文檔的使用方法,示范其功效,強(qiáng)調(diào)其作用,引導(dǎo)、鼓勵(lì)學(xué)生使用它。
(2) 引導(dǎo)學(xué)生學(xué)習(xí)使用調(diào)試工具,掌握一些調(diào)試方法
在授課過(guò)程中,教師所舉的程序只需要正確編譯就可以正確執(zhí)行,從而對(duì)學(xué)生產(chǎn)生了一些誤導(dǎo),忽略了調(diào)試工作,甚至根本不知道調(diào)試方法。在教學(xué)實(shí)踐中,我們采用RAD設(shè)計(jì)方法,由簡(jiǎn)單到復(fù)雜,通過(guò)逐步調(diào)試、測(cè)試、改進(jìn),達(dá)到最終效果。在此過(guò)程中,既介紹了處理問(wèn)題的方法,又強(qiáng)化了思維過(guò)程,也教授了一些調(diào)試、測(cè)試方法。
(3) 引導(dǎo)學(xué)生利用網(wǎng)絡(luò)平臺(tái)
網(wǎng)絡(luò)已經(jīng)走進(jìn)了千家萬(wàn)戶,學(xué)生機(jī)房、宿舍也大多開(kāi)通了網(wǎng)絡(luò),而Java作為一種開(kāi)源語(yǔ)言,擁有無(wú)數(shù)的網(wǎng)絡(luò)資源,引導(dǎo)學(xué)生充分利用網(wǎng)絡(luò)平臺(tái)獲取資源,也是提升他們自學(xué)能力的重要手段。
3結(jié)束語(yǔ)
程序設(shè)計(jì)的整個(gè)過(guò)程始終貫穿著思維的過(guò)程。思維指導(dǎo)著程序的設(shè)計(jì),反過(guò)來(lái),設(shè)計(jì)的程序能否解決實(shí)際的問(wèn)題,又檢驗(yàn)著思維的正確性。將優(yōu)秀的教育教學(xué)理念與實(shí)踐相結(jié)合,運(yùn)用于Java教學(xué)實(shí)踐之中,能夠極大地激發(fā)和培養(yǎng)學(xué)生的思維能力、創(chuàng)新能力,促進(jìn)他們的知識(shí)、能力與人格的全面發(fā)展,提升他們的就業(yè)、創(chuàng)業(yè)能力。
參考文獻(xiàn):
[1] 盧錫紅. 啟發(fā)式教學(xué)模式與化學(xué)思維能力的培養(yǎng)[J]. 文教資料,2005(17).
[2] 印旻. Java語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2002.
Java Teaching Practice and Program Thinking Cultivation
YE Heng-zhou, NIU Qin-zhou
(Guilin University of Technology, Guilin 541004, China)
Abstract: Java teaching practice is both the process of knowledge teaching and learning and the process of program thinking culturing. This thesis combined with the experience of teaching practice, through stimulating interests, using heuristic teaching, training habits and strengthening the practice capacity, discusses some methods to culture students program thinking and enhance their practice ability in Java teaching practice.
Key words: Java; program thinking; teaching practice