劉美玲 李熹 黃文鈞
摘要:從軟件工程專業(yè)的培養(yǎng)目標(biāo)出發(fā),根據(jù)Java程序設(shè)計(jì)課程的特點(diǎn),結(jié)合廣西民族大學(xué)軟件工程專業(yè)Java課程設(shè)計(jì)的教學(xué)實(shí)踐,從課程設(shè)計(jì)的概念、大綱制定與方案設(shè)計(jì)等幾個(gè)方面介紹Java課程設(shè)計(jì)的作用與具體實(shí)施方案,總結(jié)近幾年課程設(shè)計(jì)的實(shí)踐心得與教學(xué)經(jīng)驗(yàn)。
關(guān)鍵詞:課程設(shè)計(jì);Java程序設(shè)計(jì);實(shí)踐教學(xué);軟件工程
0、引言
軟件工程專業(yè)本科生的培養(yǎng)目標(biāo)是面向軟件產(chǎn)業(yè)界對(duì)軟件工程專業(yè)技術(shù)人才的需求,培養(yǎng)具備扎實(shí)的計(jì)算機(jī)科學(xué)技術(shù)基本知識(shí),受過良好的軟件設(shè)計(jì)、開發(fā)和工程管理方法基本訓(xùn)練的應(yīng)用型高級(jí)技術(shù)人才。
Java程序設(shè)計(jì)是軟件工程專業(yè)的一門重要課程,該門課程的課程設(shè)計(jì)作為實(shí)踐教學(xué)的重要環(huán)節(jié),對(duì)培養(yǎng)學(xué)生的學(xué)習(xí)能力、問題分析與解決能力、實(shí)踐創(chuàng)新能力起著重要的作用,同時(shí)還可以培養(yǎng)學(xué)生的軟件工程思想,提高學(xué)生的軟件開發(fā)能力。
1、什么是課程設(shè)計(jì)
課程設(shè)計(jì)是學(xué)生在學(xué)完課程之后集中一兩周時(shí)間,以個(gè)人獨(dú)立完成或團(tuán)隊(duì)分工合作等方式,圍繞某一設(shè)計(jì)題目進(jìn)行專業(yè)實(shí)踐活動(dòng),旨在鞏固、強(qiáng)化、拓展所學(xué)知識(shí),提高學(xué)生實(shí)踐操作能力和自學(xué)創(chuàng)新能力,培養(yǎng)學(xué)生團(tuán)隊(duì)合作意識(shí)。
課程設(shè)計(jì)是針對(duì)性較強(qiáng)的實(shí)踐教學(xué)環(huán)節(jié),將課程基本理論與工程實(shí)際相聯(lián)系的綜合訓(xùn)練,是培養(yǎng)應(yīng)用型人才的一個(gè)重要步驟。課程設(shè)計(jì)可以使學(xué)生通過查閱資料、分析題目、確定設(shè)計(jì)方案等一系列步驟將理論知識(shí)與工程實(shí)踐相結(jié)合,從而加深對(duì)所學(xué)知識(shí)的理解與鞏固,提高整體思維能力、綜合應(yīng)用能力和創(chuàng)新能力。
2、Java課程設(shè)計(jì)大綱的制定
根據(jù)Java程序設(shè)計(jì)課程的教學(xué)大綱要求,制定相應(yīng)的課程設(shè)計(jì)大綱,明確課程設(shè)計(jì)的目的、任務(wù)要求、時(shí)間安排、設(shè)計(jì)文檔要求、考核方式、備選課題等。由于課程設(shè)計(jì)以個(gè)人獨(dú)立完成為主,因此課程設(shè)計(jì)的難易程度應(yīng)適當(dāng),保證學(xué)生在指定的時(shí)間內(nèi)能順利完成。根據(jù)計(jì)算機(jī)技術(shù)的應(yīng)用范圍與學(xué)生當(dāng)前的知識(shí)儲(chǔ)備情況,備選題目可設(shè)置多種類型,如小型桌面軟件類、管理系統(tǒng)類、網(wǎng)絡(luò)編程類等題目,當(dāng)然,學(xué)生也可以自擬題目。課程設(shè)計(jì)文檔是學(xué)生對(duì)自己的作品在系統(tǒng)總體結(jié)構(gòu)、功能模塊、程序流程圖、類圖、主要算法、遇到的主要問題與解決方法等方面進(jìn)行說明的文字材料,同時(shí)要求學(xué)生在文檔的最后總結(jié)在完成課程設(shè)計(jì)過程中的心得體會(huì)。
3、Java課程設(shè)計(jì)方案
Java課程設(shè)計(jì)的實(shí)施主要由選題、指導(dǎo)、考核3個(gè)環(huán)節(jié)組成,其中,選題是首要的步驟,指導(dǎo)是教師了解學(xué)生遇到的問題和完成進(jìn)度并給予輔導(dǎo)建議的過程,考核是對(duì)學(xué)生的作品進(jìn)行檢查與評(píng)價(jià)。
3.1 選題
Java課程設(shè)計(jì)題目的設(shè)置要與軟件工程專業(yè)培養(yǎng)目標(biāo)和Java課程的教學(xué)大綱要求相一致。課題應(yīng)盡量滿足理論知識(shí)與專業(yè)技術(shù)相結(jié)合、軟件工程理論與項(xiàng)目實(shí)際需求相結(jié)合的要求,既要全面覆蓋理論課程所學(xué)知識(shí),適合實(shí)踐教學(xué)和啟發(fā)創(chuàng)新,又要聯(lián)系工程實(shí)際,并適應(yīng)本專業(yè)的發(fā)展趨勢(shì)。課題應(yīng)具有一定的可操作性、設(shè)計(jì)性、靈活性、挑戰(zhàn)性和趣味性。課程設(shè)計(jì)內(nèi)容難易程度的確定要以中等水平的學(xué)生在規(guī)定時(shí)間內(nèi)經(jīng)過努力能完成任務(wù)為依據(jù)。
另外,課題應(yīng)盡可能地與學(xué)生的實(shí)際學(xué)習(xí)、生活相關(guān),這樣學(xué)生在調(diào)研、分析設(shè)計(jì)時(shí)更容易了解需求。例如,學(xué)生成績(jī)管理系統(tǒng)、圖書信息管理系統(tǒng)、宿舍管理系統(tǒng)、ATM柜員機(jī)模擬程序等課題與學(xué)生的學(xué)習(xí)、生活相關(guān),在使用計(jì)算機(jī)時(shí)常用的計(jì)算器、畫圖板、音頻或視頻播放器等都可以作為選題。
在學(xué)生明確課程設(shè)計(jì)的大綱要求后,根據(jù)自己對(duì)Java語言知識(shí)的掌握程度與感興趣的研究方向,可以從課程設(shè)計(jì)大綱的備選題目中選擇適合自己的題目,也可以自擬題目。
3.2 指導(dǎo)
在課程設(shè)計(jì)中,學(xué)生是主體,教師是主導(dǎo),因此指導(dǎo)應(yīng)講究方法與藝術(shù),最大程度地發(fā)揮教師的導(dǎo)向作用與學(xué)生的主動(dòng)性與創(chuàng)造性。指導(dǎo)分為兩個(gè)階段,第一個(gè)階段是對(duì)學(xué)生選題的指導(dǎo),第二個(gè)階段是學(xué)生在完成課程設(shè)計(jì)的過程中教師對(duì)學(xué)生的集中輔導(dǎo)與答疑。指導(dǎo)過程同時(shí)也是教師對(duì)學(xué)生進(jìn)度的檢查與監(jiān)督過程。
1)選題指導(dǎo)。
教師在指導(dǎo)學(xué)生選題時(shí)要說明各種題目的難度與要求,根據(jù)學(xué)生基礎(chǔ)與能力的不同,因材施教,推薦不同的題目,幫助學(xué)生把握好方向。
對(duì)于理論基礎(chǔ)好、動(dòng)手能力強(qiáng)的學(xué)生,可以給他們提供難度較高、有挑戰(zhàn)性的題目;對(duì)于理論基礎(chǔ)好動(dòng)手能力一般的學(xué)生,難度較高、可操作性強(qiáng)的題目可以激發(fā)他們的探索精神、提高動(dòng)手能力;對(duì)于理論基礎(chǔ)與動(dòng)手能力都一般的學(xué)生來說,難度中等、有可參照原型的題目較適合他們;基礎(chǔ)差的學(xué)生要獨(dú)立完成設(shè)計(jì)比較困難,因此教師可以建議他們選擇源于教材、難度低的擴(kuò)展性題目。
2)設(shè)計(jì)指導(dǎo)。
學(xué)生在課程設(shè)計(jì)的具體執(zhí)行過程中主要由個(gè)人獨(dú)立設(shè)計(jì)與教師指導(dǎo)兩個(gè)部分構(gòu)成。個(gè)人獨(dú)立設(shè)計(jì)是學(xué)生利用課余時(shí)間對(duì)自己的課題進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。除此之外,在課程設(shè)計(jì)期間,教師安排每周2次,每次4~5學(xué)時(shí)在實(shí)驗(yàn)室集中指導(dǎo)與答疑。通過這樣的方式,教師可以參與到學(xué)生的設(shè)計(jì)中,了解并開拓學(xué)生的思路,發(fā)現(xiàn)問題并引導(dǎo)如何解決問題,還可以發(fā)掘?qū)W生的潛能,同時(shí)也可以對(duì)整個(gè)課程設(shè)計(jì)的過程進(jìn)行監(jiān)督與管理,提高課程設(shè)計(jì)的質(zhì)量與效果。
在Java課程的教學(xué)過程中,教師應(yīng)該逐漸了解學(xué)生的學(xué)習(xí)態(tài)度與學(xué)習(xí)情況,因此,鑒于學(xué)生態(tài)度與基礎(chǔ)不同,教師在設(shè)計(jì)的指導(dǎo)上也要因材施教,有針對(duì)性。對(duì)于理論基礎(chǔ)好、動(dòng)手能力強(qiáng)的學(xué)生,教師可以引導(dǎo)他們進(jìn)行深入的探索與研究,進(jìn)行創(chuàng)新性的設(shè)計(jì),而不僅僅局限在基本設(shè)計(jì)要求上。教師要參與他們的設(shè)計(jì)中,聽取他們的思路,對(duì)有一定創(chuàng)新性、合理的想法給予鼓勵(lì),并給他們提出建議,推薦有關(guān)的資料。由于這類學(xué)生對(duì)新技術(shù)的求知欲強(qiáng),但新技術(shù)在最初應(yīng)用時(shí)容易出現(xiàn)問題,所以教師在聽取學(xué)生的思路時(shí),要及時(shí)發(fā)現(xiàn)并糾正他們?cè)O(shè)計(jì)中的不合理成分,引導(dǎo)他們朝著正確的方向前行。
對(duì)于理論基礎(chǔ)好動(dòng)手能力一般的學(xué)生,他們?cè)谙到y(tǒng)分析與設(shè)計(jì)中一般都能夠完成得很好,但是編程實(shí)踐的能力欠缺,因此教師通過啟發(fā)式的方法引導(dǎo)學(xué)生,發(fā)揮學(xué)生的理論水平進(jìn)行創(chuàng)新性的設(shè)計(jì),在系統(tǒng)實(shí)現(xiàn)時(shí)給學(xué)生推薦參考資料,加強(qiáng)對(duì)基礎(chǔ)知識(shí)的應(yīng)用能力。endprint
對(duì)于大部分理論基礎(chǔ)與動(dòng)手能力都一般的學(xué)生,教師要幫助學(xué)生加深對(duì)理論知識(shí)的理解,同時(shí)在設(shè)計(jì)上多加指導(dǎo)與啟發(fā),引導(dǎo)學(xué)生更為完善地完成設(shè)計(jì),并在設(shè)計(jì)中或多或少地表現(xiàn)出一些自己的特色,然后在編碼實(shí)現(xiàn)時(shí)給予更多實(shí)際操作性的指導(dǎo)。
在課程設(shè)計(jì)的指導(dǎo)中,除了教師的指導(dǎo),也可以采取“強(qiáng)幫弱”的形式,讓能力較強(qiáng)的學(xué)生參與能力較差的學(xué)生的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)中,促進(jìn)他們之間的交流與幫助。
3.3 考核
學(xué)生在規(guī)定的時(shí)間內(nèi)完成課程設(shè)計(jì)之后,教師要對(duì)學(xué)生的作品進(jìn)行考核,考核的目的不僅僅是為了檢查學(xué)生完成的情況,更重要的是給他們一個(gè)講解其設(shè)計(jì)思路并演示作品的機(jī)會(huì)??己酥饕扇W(xué)生講解作品分析設(shè)計(jì)思路并演示說明作品、教師提問的答辯考核方式,這有助于學(xué)生加強(qiáng)知識(shí)的全面理解,培養(yǎng)其語言組織與表達(dá)能力、應(yīng)變能力等。
答辯過程要求全班學(xué)生參加,分為學(xué)生自述、教師提問、學(xué)生提問3個(gè)環(huán)節(jié)。首先由學(xué)生針對(duì)其作品從系統(tǒng)分析、設(shè)計(jì)、關(guān)鍵技術(shù)與算法、存在問題等方面進(jìn)行講解,然后演示作品。之后,教師與其他同學(xué)可以對(duì)答辯人的作品從設(shè)計(jì)思路、功能、性能、代碼與技術(shù)等方面進(jìn)行提問。通過答辯,并結(jié)合學(xué)生的設(shè)計(jì)說明書、答辯水平、動(dòng)手能力、獨(dú)立分析問題與解決問題的能力、創(chuàng)新精神與學(xué)習(xí)態(tài)度等進(jìn)行綜合考評(píng)。對(duì)優(yōu)秀設(shè)計(jì)者,給予表揚(yáng)與鼓勵(lì),并號(hào)召其他同學(xué)學(xué)習(xí),在評(píng)分時(shí)適當(dāng)加分,以調(diào)動(dòng)學(xué)生進(jìn)行課程設(shè)計(jì)的積極性;對(duì)僅完成基本要求的學(xué)生,肯定他們的努力,并鼓勵(lì)他們多實(shí)踐;對(duì)未達(dá)到要求的學(xué)生,要求其進(jìn)行整改或限期令其重做。
4、關(guān)于Java課程設(shè)計(jì)的幾點(diǎn)思考
這幾年Java課程設(shè)計(jì)的教學(xué)效果表明,課程設(shè)計(jì)為學(xué)生鞏固所學(xué)知識(shí)并能學(xué)以致用、提高綜合應(yīng)用能力提供了重要的實(shí)踐平臺(tái),教師也從課程設(shè)計(jì)實(shí)踐教學(xué)中獲得了一些有用的經(jīng)驗(yàn),為進(jìn)一步完善課程設(shè)計(jì)教學(xué)提供幫助與參考。
1)注意因材施教,根據(jù)學(xué)生的基礎(chǔ)布置不同的課題。
制定課程設(shè)計(jì)大綱時(shí),首先制定一個(gè)對(duì)于大多數(shù)學(xué)生都比較合適的基本實(shí)踐要求,然后再針對(duì)不同學(xué)生的基礎(chǔ)設(shè)置難易程度不同的課題。這樣對(duì)大多數(shù)學(xué)生來說,他們既不會(huì)感到實(shí)踐要求高不可及,又感覺到有一定的難度,比較有挑戰(zhàn)性。
2)及時(shí)發(fā)現(xiàn)并總結(jié)問題,積累經(jīng)驗(yàn)。
在課程設(shè)計(jì)的整個(gè)教學(xué)環(huán)節(jié)中,教師要善于從中發(fā)現(xiàn)并總結(jié)問題,給予及時(shí)、到位的指導(dǎo)。例如,在指導(dǎo)學(xué)生完成課程設(shè)計(jì)時(shí),對(duì)于大部分學(xué)生普遍遇到的問題,教師要及時(shí)發(fā)現(xiàn)并進(jìn)行講解;從學(xué)生上交的課程設(shè)計(jì)文檔中發(fā)現(xiàn)學(xué)生利用面向?qū)ο蠹夹g(shù)進(jìn)行程序設(shè)計(jì)存在的問題,分析問題產(chǎn)生的原因,以改進(jìn)教學(xué)方法;在課程設(shè)計(jì)答辯考核之后,教師還要對(duì)全班課程設(shè)計(jì)的情況進(jìn)行全面總結(jié),不斷改進(jìn)??傊谡n程設(shè)計(jì)的任何一個(gè)環(huán)節(jié),教師都要善于發(fā)現(xiàn)問題,總結(jié)經(jīng)驗(yàn)。
3)教師要不斷完善自己的知識(shí)結(jié)構(gòu)。
從課程設(shè)計(jì)的大綱制定、任務(wù)布置到指導(dǎo)與考核都需要教師付出很多時(shí)間與精力,而且對(duì)教師的專業(yè)知識(shí)與能力要求也很高,因此要想保證課程設(shè)計(jì)的質(zhì)量與效果,很大程度上取決于教師的責(zé)任心和知識(shí)結(jié)構(gòu)的完善。
4)在課程設(shè)計(jì)中培養(yǎng)學(xué)生的軟件工程思想。
JaVa程序設(shè)計(jì)是軟件工程課程的先修課程,在講授程序設(shè)計(jì)語言時(shí),教師可以適當(dāng)灌輸一些軟件工程的思想,讓學(xué)生對(duì)軟件開發(fā)的基本過程有初步的認(rèn)識(shí),避免學(xué)生陷入“學(xué)習(xí)程序設(shè)計(jì)課程只是學(xué)編程、軟件開發(fā)就是編程”的思想誤區(qū)。實(shí)際上,學(xué)生在課程設(shè)計(jì)過程中對(duì)系統(tǒng)進(jìn)行分析、設(shè)計(jì)、編碼、測(cè)試等都體現(xiàn)了軟件工程思想的運(yùn)用,程序設(shè)計(jì)是軟件開發(fā)過程的一個(gè)階段,通過課程設(shè)計(jì)能夠加深學(xué)生對(duì)程序設(shè)計(jì)語言的理解,同時(shí)也能較好地培養(yǎng)學(xué)生的軟件工程思想,為后續(xù)軟件工程課程的教學(xué)打下良好的基礎(chǔ)。
5)根據(jù)任務(wù)的大小,可適當(dāng)采取小組協(xié)作方式。
在這幾年的Java課程設(shè)計(jì)中,由于是面向大二學(xué)生,重點(diǎn)是培養(yǎng)學(xué)生的個(gè)人能力,因此任務(wù)的設(shè)計(jì)主要以個(gè)人能獨(dú)立完成為依據(jù)。到了大三、大四,則重點(diǎn)培養(yǎng)團(tuán)隊(duì)合作意識(shí)。當(dāng)然,如果課程設(shè)計(jì)的任務(wù)量大、難度大,就可以采取小組成員相互協(xié)作的方式完成。教學(xué)過程中可以采用分組比賽、獎(jiǎng)勵(lì)等措施來激勵(lì)各組尤其是知識(shí)較弱的學(xué)生不斷求上進(jìn),完善自我,增強(qiáng)團(tuán)隊(duì)合作意識(shí)和團(tuán)隊(duì)榮譽(yù)感。
5、結(jié)語
Java課程設(shè)計(jì)已經(jīng)在軟件工程專業(yè)的4屆學(xué)生中進(jìn)行了實(shí)踐,教學(xué)效果表明,課程設(shè)計(jì)達(dá)到了提高學(xué)生動(dòng)手能力、學(xué)習(xí)能力與綜合應(yīng)用能力的目的。但是,課程設(shè)計(jì)的教學(xué)改革任務(wù)重,如何通過課程設(shè)計(jì)實(shí)踐提高學(xué)生的知識(shí)應(yīng)用能力與實(shí)踐水平、培養(yǎng)應(yīng)用型人才是教學(xué)研究不斷探索與實(shí)踐的方向。endprint