李香菊+朱林+謝修娟
摘要:針對Java程序設(shè)計課程教學(xué)過程中的一些問題,提出按照工程教育的思路改革教學(xué)模式,加強學(xué)生的實踐能力,達(dá)到學(xué)以致用。改革過程中,教學(xué)完全在實驗室進行,理論與實踐交叉進行,并引入增量式項目,將項目分量嵌入到相應(yīng)知識點的教學(xué)。
關(guān)鍵詞:工程思維;增量式項目;Java程序設(shè)計;工程教育
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)25-0123-02
2005年底,汕頭大學(xué)率先實施了工程教育改革,緊跟其后,國內(nèi)許多高校按照工程教育改革的培養(yǎng)要求,針對不同專業(yè)人才需求制定了詳細(xì)的培養(yǎng)計劃,計算機科學(xué)與技術(shù)專業(yè)是工程教育的重點專業(yè)。近年來,工程教育模式已在社會上得到了廣泛的認(rèn)可,獨立學(xué)院以培養(yǎng)應(yīng)用型人才為目標(biāo),也逐步開展工程教育改革。
Java程序設(shè)計語言是當(dāng)今計算機領(lǐng)域最具有代表性的面向?qū)ο蟪绦蛟O(shè)計語言之一,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)等應(yīng)用程序,是實際軟件項目開發(fā)中所使用的主流編程語言之一。為了提升本學(xué)院計算機專業(yè)學(xué)生的工程實踐能力,選擇了Java程序設(shè)計課程作為試點,進行基于工程思維的教學(xué)改革。在《Java程序設(shè)計》這門課程的教學(xué)過程中,通過項目分解的方式,將項目貫穿教學(xué)過程,在完成基本知識教學(xué)任務(wù)的基礎(chǔ)上,加強學(xué)生的工程思維能力訓(xùn)練。
1 Java程序設(shè)計課程教學(xué)中存在的問題
通過對本校及兄弟院校Java程序設(shè)計課程的教學(xué)模式研究,目前的教學(xué)存在如下一些問題:
(1) 注重理論知識,理論課時較多,把相當(dāng)多的課時花費在java基本語法教學(xué)上,實踐課時較少,學(xué)生感覺只是掌握了相應(yīng)的知識點,但是不能解決實際問題;
(2) 實驗內(nèi)容單一,實驗課只是針對零散的知識點進行練習(xí),比如編寫類、文件的讀寫等,每個實驗只注重一個知識點,學(xué)生缺乏宏觀解決問題的能力;
(3) 課程設(shè)計指導(dǎo)性不強,課程設(shè)計的題目比較復(fù)雜,學(xué)生只注重功能的實現(xiàn),不能按照軟件工程的思想完成項目要求,缺乏工程思維的指導(dǎo),不能達(dá)到課程設(shè)計的效果。
按照目前Java程序課程教學(xué)模式,課程結(jié)束時,大部分學(xué)生只是掌握了知識點,僅能編寫簡單的程序,只有少數(shù)學(xué)生可以完成給定的較復(fù)雜的項目,造成了不能學(xué)以致用的結(jié)果,背離了工程教育的宗旨。
2 基于項目的工程思維培養(yǎng)教學(xué)改革
針對Java程序設(shè)計課程,工程思維培養(yǎng)就是指學(xué)生能夠按照軟件工程的思想,運用Java語言解決具體問題的能力培養(yǎng)。因此,在Java程序設(shè)計課程的教學(xué)改革過程中,需要引入恰當(dāng)?shù)捻椖?,然后引?dǎo)學(xué)生完成需求分析、項目設(shè)計和項目編程等工作。結(jié)合在Java程序設(shè)計課程教學(xué)過程中出現(xiàn)的問題,采取了以項目為驅(qū)動,按照知識點將項目分解,采取增量式的開發(fā)方法,項目的完成與理論學(xué)習(xí)同步進行。
以項目為主線,通過由淺入深、由小到大的項目教學(xué)和實踐過程,有機地組織教學(xué)順序、引導(dǎo)學(xué)生把java的知識點融入程序設(shè)計中,調(diào)動學(xué)生的積極性,使得學(xué)生在快樂學(xué)習(xí)的過程中,最終提高學(xué)生的編程能力和查閱資料的能力。
2.1 理論和實踐教學(xué)一體化
以前,大部分院校Java程序設(shè)計課程的教學(xué)包括理論和實驗兩部分內(nèi)容,部分院校有課程設(shè)計環(huán)節(jié)。其中,理論教學(xué)主要在教室完成,采用“教師講,學(xué)生聽”的模式,然后再到實驗室進行實驗課。根據(jù)實驗課學(xué)生完成情況,任課教師發(fā)現(xiàn),學(xué)生很難靈活運用課堂上學(xué)到的理論知識完成實驗內(nèi)容。
根據(jù)Java程序設(shè)計課程實踐性較強的特點,改革原有的教學(xué)模式,實施理論和實踐一體化教學(xué)方法,將課程教學(xué)環(huán)境從課堂搬進實驗室,理論學(xué)習(xí)與實踐操作穿插進行,有效解決了傳統(tǒng)的理論學(xué)習(xí)后再做實驗,時間跨度較大,學(xué)生容易將理論知識遺忘而導(dǎo)致理論與實踐脫節(jié)的問題。而枯燥的理論知識一旦變成某一小型目標(biāo)實踐任務(wù)的理論指導(dǎo),便可成功地激發(fā)學(xué)生的學(xué)習(xí)興趣,從平時課堂的點滴收獲中促進學(xué)生的實踐能力的培養(yǎng)。
理論和實踐一體化的教學(xué)模式從根本上改變了傳統(tǒng)的師生關(guān)系,學(xué)生由知識的被動接受者變成了主動參與者,課堂教學(xué)中突出學(xué)生的參與,采取“教師引導(dǎo),學(xué)生為主”的模式,引導(dǎo)學(xué)生獨立構(gòu)思、設(shè)計、模擬和實現(xiàn)。這種學(xué)生參與性較強的和諧課堂氛圍有利于知識的吸收和傳播,同時還能培養(yǎng)學(xué)生們的主體意識,協(xié)作精神,創(chuàng)新精神和工程意識。
2.2 將項目按照知識點進行分解
為了加強學(xué)生工程思維的培養(yǎng),在授課過程中,除了簡單的基于知識點的實驗外,引入了貫穿多個知識點的較大的項目,任課教師按照軟件工程的思想,指導(dǎo)學(xué)生逐步完成項目。
項目的選取要涵蓋Java授課的知識點,并能夠進行項目分解,采用增量開發(fā)的模式,項目的完成與授課同步進行,學(xué)完需要的知識點后,安排實驗,完成相應(yīng)的項目模塊。
引入項目時教師講述項目的目標(biāo)及需求分析,列出項目要完成的基本功能,然后根據(jù)授課的知識點將項目進行分解,使學(xué)生對要完成的任務(wù)有初步認(rèn)識,然后帶著任務(wù)學(xué)習(xí),激發(fā)學(xué)生的學(xué)習(xí)興趣,加深對知識點的理解,并掌握如何應(yīng)用該知識解決具體問題。
【項目1】簡易計算器:以圖形化方式實現(xiàn)一個簡易的計算器,界面上有0~9的數(shù)字鍵,可以實現(xiàn)+、-、*、/、(、)的運算,并提供退格、清空、等于等功能鍵,還有一個文本框用來顯示處理結(jié)果。打開計算器后,用戶單擊數(shù)字鍵或功能鍵,運算結(jié)果顯示在文本框。
根據(jù)該項目要完成的基本功能,將項目分成4部分完成。第一部分定義計算表達(dá)式值的類,實現(xiàn)按照運算符的優(yōu)先級完成表達(dá)式的求值,該部分內(nèi)容在完成Java基本知識的學(xué)習(xí)后就可以完成;第二部分實現(xiàn)計算器界面設(shè)計,包括運算數(shù)、運算符、功能鍵和顯示結(jié)果的文本框,該部分內(nèi)容在完成GUI界面設(shè)計的學(xué)習(xí)后就可以完成;第三部分實現(xiàn)計算器事件處理,用戶單擊運算數(shù)鍵、運算符鍵和功能鍵后,可以做出相應(yīng)的處理,將結(jié)果顯示在文本框內(nèi),該部分內(nèi)容在完成GUI事件學(xué)習(xí)后可以完成;第四部分實現(xiàn)異常事件的處理,該部分完成異常處理后可以完成。
【項目2】局域網(wǎng)聊天工具:實現(xiàn)一個簡單的局域網(wǎng)聊天工具,用戶登錄聊天系統(tǒng),在好友列表中選擇聊天對象,啟動聊天界面,結(jié)束后關(guān)閉聊天界面。聊天記錄保存在本地,在數(shù)據(jù)庫中也有備份。用戶之間還可以發(fā)送文本。
根據(jù)要完成的基本任務(wù),該項目分成5部分完成。第一部分實現(xiàn)聊天工具的圖形化設(shè)計,包括主界面和聊天界面,該部分內(nèi)容在完成GUI圖形化程序設(shè)計內(nèi)容的學(xué)習(xí)后可以完成;第二部分實現(xiàn)一對一的聊天模式,用戶可以和好友聊天,顯示發(fā)送和接收到的消息,該部分內(nèi)容完成網(wǎng)絡(luò)編程的學(xué)習(xí)后可以完成;第三部分實現(xiàn)文件讀寫及網(wǎng)絡(luò)傳輸,用戶可以查看自己和好友的聊天記錄,該信息以文件的方式保存在本地或服務(wù)器,用戶之間可以進行文件傳送,該部分內(nèi)容完成文件的讀寫和輸入輸出流的學(xué)習(xí)后可以完成;第四部分實現(xiàn)多線程,用戶可以同時和多個好友進行聊天,該部分內(nèi)容完成多線程編程的學(xué)習(xí)后可以完成;第五部分實現(xiàn)數(shù)據(jù)庫存儲,用戶個人信息存儲在數(shù)據(jù)庫中,個人驗證通過鏈接數(shù)據(jù)庫完成,此外,用戶的好友信息及聊天記錄也可以嘗試數(shù)據(jù)庫存儲,該部分內(nèi)容完成數(shù)據(jù)庫編程技術(shù)的學(xué)習(xí)后可以完成。
3 結(jié)論
通過對工程教育思維的理解,我院選擇了Java程序設(shè)計課程進行工程教育改革,將教學(xué)環(huán)境完全轉(zhuǎn)移到實驗室完成,理論與實踐教學(xué)同步進行,通過由簡單到復(fù)雜的實驗使學(xué)生掌握java語法的應(yīng)用;引入增量式項目,將項目分量嵌入到相應(yīng)知識點的教學(xué),通過高級編程技術(shù)調(diào)動學(xué)生學(xué)習(xí)積極性,通過實際項目的完成提高學(xué)生編程能力。
參考文獻:
[1] 姜大志,孫浩軍. 基于CDIO的主動式項目驅(qū)動學(xué)習(xí)方法研究——以Java類課程教學(xué)改革為例[J].高等工程教育研究,2012(4):159-164.
[2] 王偉,孟祥貴,黃寅. 基于工程教育的實驗教學(xué)模式探索[J].《實驗技術(shù)與管理》,2013(10):172-174.
[3] 范俊英,張鑒新,楊智,陳海山. 校企結(jié)合下的一體化增量式Java項目教學(xué)研究[J].《高計算機光盤軟件與應(yīng)用》,2013(1):22-24.
[4] 王剛.增量式教學(xué)在高職Java Me游戲設(shè)計課程中的實踐].軟件導(dǎo)刊,2011(3):1827-183.