許德武
(浙江師范大學(xué) 經(jīng)濟(jì)與管理學(xué)院,浙江 金華321004)
現(xiàn)在計(jì)算機(jī)專(zhuān)業(yè)的軟件開(kāi)發(fā)類(lèi)人才的培養(yǎng)存在著嚴(yán)重的缺陷,一方面是學(xué)生感覺(jué)學(xué)習(xí)的課程是孤立的,與其他課程關(guān)聯(lián)性不強(qiáng),即使學(xué)習(xí)了好幾門(mén)程序設(shè)計(jì)類(lèi)課程也沒(méi)有學(xué)會(huì)編程,遇到一個(gè)開(kāi)發(fā)管理信息系統(tǒng)的問(wèn)題還是束手無(wú)策,不能很好的解決[1-3]。另一方面是用人單位感覺(jué)應(yīng)屆畢業(yè)生沒(méi)有編程能力、更沒(méi)有做項(xiàng)目的經(jīng)驗(yàn),如果招聘應(yīng)屆生,學(xué)生上手很慢,還需要對(duì)其再花費(fèi)額外的培訓(xùn)成本,所以只喜歡招聘有工作經(jīng)驗(yàn)的往屆畢業(yè)生,這也是應(yīng)屆畢業(yè)生很難就業(yè)的主要原因之一。面對(duì)這種局面,作為教育工作者,我們需要深刻的反思在教育實(shí)施過(guò)程中存在的種種問(wèn)題:為什么我們的教學(xué)內(nèi)容滯后于社會(huì)上用人單位的需求?為什么學(xué)生認(rèn)真地學(xué)習(xí)了一門(mén)課,但最后卻只是記住了一些語(yǔ)法等內(nèi)容,不知道能具體做什么?為什么學(xué)生學(xué)習(xí)了好幾種程序設(shè)計(jì)語(yǔ)言和數(shù)據(jù)庫(kù),甚至是畢業(yè)了,還是不會(huì)開(kāi)發(fā)小型管理信息系統(tǒng)?……面對(duì)種種的問(wèn)題,需要對(duì)現(xiàn)行的計(jì)算機(jī)專(zhuān)業(yè)的教學(xué)思路進(jìn)行調(diào)整。本文所說(shuō)的“項(xiàng)目”均是指用計(jì)算機(jī)編程語(yǔ)言開(kāi)發(fā)的“計(jì)算機(jī)軟件”[4-5]。
分析目前的教學(xué)現(xiàn)狀,存在的問(wèn)題很多,造成這種局面的原因也很多,例如很多教師是從某所高校畢業(yè)就直接進(jìn)入高校教書(shū),雖然學(xué)歷很高,理論水平也很好,但是沒(méi)有在公司工作過(guò)的經(jīng)歷,自然開(kāi)發(fā)“系統(tǒng)”的經(jīng)驗(yàn)也不足;還有就是實(shí)驗(yàn)教師的教學(xué)工作量計(jì)算不合理,老師設(shè)計(jì)的實(shí)驗(yàn)題目缺乏實(shí)用性等等,究其原因很重要的一點(diǎn)是大部分教師“重理論教學(xué),輕實(shí)驗(yàn)教學(xué)”導(dǎo)致的,忽略了對(duì)學(xué)生動(dòng)手能力的培養(yǎng)。要加強(qiáng)學(xué)生的動(dòng)手能力,要從加強(qiáng)實(shí)驗(yàn)教學(xué)入手,讓學(xué)生成為課堂的主角,教師只起到輔助、提醒的作用。為了解決這個(gè)問(wèn)題,我們一方面建議增加實(shí)驗(yàn)課的課時(shí),另一方面需要對(duì)實(shí)驗(yàn)內(nèi)容進(jìn)行調(diào)整?,F(xiàn)在,很多身處教學(xué)一線的老師提出了新的教學(xué)改革方案,例如有的老師提出向高年級(jí)的學(xué)生設(shè)計(jì)綜合性實(shí)驗(yàn),即先設(shè)計(jì)出一個(gè)較大的系統(tǒng)(即項(xiàng)目),再根據(jù)教學(xué)內(nèi)容把這個(gè)項(xiàng)目分解成幾個(gè)相應(yīng)的模塊,根據(jù)系統(tǒng)前后臺(tái)的功能把相關(guān)的一門(mén)或幾門(mén)課程的知識(shí)點(diǎn)組合起來(lái)講解,學(xué)生就會(huì)感到這種講課方式具有一定的實(shí)用性和趣味性,學(xué)生就會(huì)主動(dòng)學(xué)習(xí),達(dá)到事半功倍的效果[6-7]。但是這個(gè)方法也存在一定的局限性,即在低年級(jí)的學(xué)生中沒(méi)辦法展開(kāi)。也有老師在實(shí)驗(yàn)中引入某些實(shí)用性更強(qiáng)的實(shí)例,再根據(jù)這些實(shí)例來(lái)講解相應(yīng)知識(shí)點(diǎn),促進(jìn)培養(yǎng)學(xué)生解決現(xiàn)實(shí)生活中的實(shí)際問(wèn)題的能力和興趣,但是這種方法存在不能解決的致命弱點(diǎn),那就是各個(gè)小案例之間沒(méi)有關(guān)聯(lián),學(xué)生對(duì)各個(gè)知識(shí)點(diǎn)缺乏一個(gè)整體的認(rèn)識(shí),所以“項(xiàng)目分解教學(xué)法”就能很好地解決這一問(wèn)題,它可以針對(duì)某一門(mén)課進(jìn)行理論教學(xué)和實(shí)驗(yàn)教學(xué)內(nèi)容的設(shè)計(jì),并以此為依據(jù)展開(kāi)教學(xué)。
所謂“項(xiàng)目分解教學(xué)法”就是教師在設(shè)計(jì)理論教學(xué)和實(shí)驗(yàn)教學(xué)的時(shí)候要針對(duì)各門(mén)程序設(shè)計(jì)類(lèi)課程的教學(xué)內(nèi)容和重點(diǎn),每門(mén)課的理論教學(xué)案例和實(shí)驗(yàn)內(nèi)容就針對(duì)一個(gè)大的項(xiàng)目展開(kāi),設(shè)計(jì)的項(xiàng)目要有針對(duì)性和整體性,再根據(jù)每周的知識(shí)點(diǎn),把這個(gè)項(xiàng)目分解成各個(gè)小的單元,雖然看似每周的教學(xué)內(nèi)容和實(shí)驗(yàn)內(nèi)容是孤立的,實(shí)際上卻存在一定的內(nèi)在的關(guān)聯(lián)。教師在安排每周的教學(xué)內(nèi)容和實(shí)驗(yàn)內(nèi)容的時(shí)候都讓學(xué)生有針對(duì)性的練習(xí),一個(gè)學(xué)期下來(lái),通過(guò)最后2 ~3 次實(shí)驗(yàn)的整合,把平時(shí)完成的實(shí)驗(yàn)內(nèi)容進(jìn)行有效的整合、拼裝,最后完成一個(gè)較大的項(xiàng)目。通過(guò)這種方法的實(shí)驗(yàn)練習(xí),能夠使學(xué)生對(duì)程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí)重心不再僅僅局限于簡(jiǎn)單的語(yǔ)法學(xué)習(xí),而是將注意力轉(zhuǎn)移到分析問(wèn)題、解決問(wèn)題的能力上來(lái),提高項(xiàng)目開(kāi)發(fā)的能動(dòng)性和積極性,增加項(xiàng)目開(kāi)發(fā)的經(jīng)驗(yàn)[8]。
根據(jù)我院的課程設(shè)置,程序設(shè)計(jì)類(lèi)課程主要包括ASP.Net 應(yīng)用程序開(kāi)發(fā)、JavaEE 高級(jí)編程、網(wǎng)站規(guī)劃與Web 應(yīng)用程序設(shè)計(jì)、VB 程序設(shè)計(jì)、高級(jí)語(yǔ)言程序設(shè)計(jì)、面向?qū)ο蟪绦蛟O(shè)計(jì)——C + +、面向?qū)ο蟪绦蛟O(shè)計(jì)——Java、數(shù)據(jù)庫(kù)原理及應(yīng)用、網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)等課程。由于Java 語(yǔ)言的發(fā)展趨勢(shì)非常迅猛,幾乎成了“網(wǎng)絡(luò)編程的世界語(yǔ)”,應(yīng)用范圍也越來(lái)越廣,同時(shí)根據(jù)實(shí)際的教學(xué)需求、實(shí)踐的方便及學(xué)生的要求,我選擇“面向?qū)ο蟪绦蛟O(shè)計(jì)——Java”作為本項(xiàng)目的具體研究對(duì)象,舉兩個(gè)實(shí)驗(yàn)教學(xué)項(xiàng)目的例子進(jìn)行分解,供學(xué)生在上機(jī)實(shí)驗(yàn)的時(shí)候練習(xí)。
按照以往的教學(xué)經(jīng)驗(yàn),首先介紹Java 的集成開(kāi)發(fā)環(huán)境、變量定義及表達(dá)式,再介紹三種流程控制語(yǔ)句及常用算法,介紹一些面向?qū)ο蟮某绦蛟O(shè)計(jì)方面的內(nèi)容,然后再介紹流和文件系統(tǒng)、圖形用戶界面設(shè)計(jì),最后介紹異常處理和多線程。如果是高年級(jí)的學(xué)生可以適當(dāng)增加數(shù)據(jù)庫(kù)編程、網(wǎng)絡(luò)編程和多媒體編程等高級(jí)編程方面的內(nèi)容。如果按照這套流程講下來(lái),學(xué)生會(huì)覺(jué)得和學(xué)其他程序設(shè)計(jì)語(yǔ)言一樣,沒(méi)什么新意,老師總是圍繞著概念、算法反復(fù)舉例子,在學(xué)生看來(lái)也只是對(duì)這些理論進(jìn)行驗(yàn)證,但是學(xué)這些東西到底有什么用呢?學(xué)生會(huì)覺(jué)得困惑[9]。如果持續(xù)維持這種狀態(tài),學(xué)生很快會(huì)失去興趣,繼而失去了學(xué)習(xí)的動(dòng)力。
由于“項(xiàng)目驅(qū)動(dòng)”的教學(xué)方式相對(duì)傳統(tǒng)教學(xué)而言更具備系統(tǒng)化,個(gè)別知識(shí)點(diǎn)甚至打亂了原有教材的知識(shí)體系,解決這個(gè)問(wèn)題的有效辦法就是要在構(gòu)建好的案例程序庫(kù)中選取相應(yīng)的案例,并根據(jù)該案例來(lái)設(shè)計(jì)相關(guān)的任務(wù),并與學(xué)生共同探討學(xué)習(xí)。所以為了讓學(xué)生更好地掌握教材上的知識(shí)點(diǎn),上理論課的時(shí)候可以講解一些“小案例”來(lái)輔助學(xué)生融會(huì)貫通課本上的基礎(chǔ)知識(shí)。在日常的實(shí)驗(yàn)教學(xué)中,根據(jù)各章的內(nèi)容,建立了如表1 的案例庫(kù),以供學(xué)生上機(jī)實(shí)驗(yàn)時(shí)使用。該案例庫(kù)首先圍繞著“五子棋游戲”展開(kāi),在此基礎(chǔ)上增加一些游戲中沒(méi)有涉及到的“小案例”。經(jīng)過(guò)這樣一門(mén)課程的一個(gè)學(xué)期的上機(jī)實(shí)驗(yàn)練習(xí),學(xué)生基本掌握了“五子棋游戲”的開(kāi)發(fā),會(huì)有一定的成就感[10]。
采用“項(xiàng)目分解法”進(jìn)行教學(xué),首先就是要培養(yǎng)學(xué)生的興趣,讓學(xué)生對(duì)學(xué)完本門(mén)課程能實(shí)現(xiàn)一個(gè)什么樣的項(xiàng)目有一個(gè)整體了解,從而感覺(jué)學(xué)有所用。然后具體分析調(diào)用相應(yīng)的模塊實(shí)現(xiàn)了什么功能?主要用到的了教程的什么知識(shí)點(diǎn)?是如何實(shí)現(xiàn)的?最后回到教材對(duì)一般的語(yǔ)法和規(guī)則應(yīng)該怎么做?再把拆分好的模塊與書(shū)中的章節(jié)進(jìn)行緊密的銜接,進(jìn)行講解。這樣的方法可以讓學(xué)生不再覺(jué)得程序設(shè)計(jì)的枯燥,知道這些知識(shí)將有什么具體的作用,所以更容易讓學(xué)生接受,讓學(xué)生明白通過(guò)這門(mén)課程的學(xué)習(xí)可以做出什么樣的系統(tǒng)。本論文提出在“面向?qū)ο蟪绦蛟O(shè)計(jì)——Java”教學(xué)過(guò)程中采用的“項(xiàng)目分解教學(xué)法”,所強(qiáng)調(diào)的是在本課程的整個(gè)實(shí)踐教學(xué)過(guò)程中只設(shè)置一個(gè)“項(xiàng)目”,這就對(duì)“項(xiàng)目”的質(zhì)量要求更高,要求該案例必須幾乎能夠包含全部主要知識(shí)點(diǎn)。同時(shí),由于實(shí)驗(yàn)教學(xué)過(guò)程總是由淺入深、循序漸進(jìn)的,所以該案例的實(shí)施過(guò)程還應(yīng)該能夠按照實(shí)驗(yàn)教學(xué)內(nèi)容進(jìn)行合理的劃分,使之對(duì)應(yīng)于每章甚至每節(jié)課的內(nèi)容,從而使學(xué)生達(dá)到邊學(xué)邊練的目的[11-13]。
表1 章-知識(shí)點(diǎn)-項(xiàng)目案例庫(kù)對(duì)照表
根據(jù)Java 課程的特點(diǎn)和實(shí)驗(yàn)教學(xué)大綱的要求,我們選擇難度適中、應(yīng)用非常廣泛的“管理信息系統(tǒng)”類(lèi)項(xiàng)目為綜合案例,講解用“面向?qū)ο蟪绦蛟O(shè)計(jì)——Java”對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)、分解、知識(shí)講授、實(shí)驗(yàn)驗(yàn)證的全過(guò)程。在此,以“商品進(jìn)銷(xiāo)存管理系統(tǒng)”為邏輯主線設(shè)計(jì)“綜合案例”,該“綜合案例”貫穿于教學(xué)過(guò)程的始終,含有若干典型案例與教學(xué)內(nèi)容相匹配。我們?cè)俑鶕?jù)各章的知識(shí)點(diǎn)把本系統(tǒng)分解成以下幾個(gè)功能模塊,分別為用戶登錄、注冊(cè)、修改與查詢、統(tǒng)計(jì)、信息批量輸入輸出、網(wǎng)絡(luò)聊天、幫助與退出等。每個(gè)教學(xué)單元與其功能對(duì)應(yīng)的具體安排如表2 所示。
按照表1 和表2 對(duì)兩個(gè)完整的“項(xiàng)目”進(jìn)行“分解”,再根據(jù)每個(gè)“子項(xiàng)目”的難易程度進(jìn)行課時(shí)上的安排,而且要與上理論課的教學(xué)進(jìn)度、教學(xué)內(nèi)容要保持一致,所以這兩方面的步調(diào)控制還是有些難度的,這就要求教師在進(jìn)行“項(xiàng)目分解”的時(shí)候要對(duì)理論課和實(shí)驗(yàn)課所用的“項(xiàng)目”都有很好的把握,否則很容易導(dǎo)致教學(xué)進(jìn)度和實(shí)驗(yàn)進(jìn)度不統(tǒng)一的情況出現(xiàn),最后適得其反[14-15]。根據(jù)這個(gè)方法進(jìn)行推廣,逐步把程序設(shè)計(jì)類(lèi)課程都做成首先設(shè)計(jì)綜合案例,再根據(jù)章節(jié)、知識(shí)點(diǎn)進(jìn)行分解的教學(xué)模式。使學(xué)生每學(xué)完一門(mén)課就能做一個(gè)“項(xiàng)目”出來(lái),項(xiàng)目的大小可以根據(jù)學(xué)生的年紀(jì)高低、專(zhuān)業(yè)水平來(lái)定,水平高的同學(xué)可以逐步完善和提高項(xiàng)目的實(shí)用性以及規(guī)模。
“項(xiàng)目分解教學(xué)法”的基本思路是提出問(wèn)題、分解問(wèn)題、掌握知識(shí)點(diǎn)、解決問(wèn)題,符合學(xué)生的認(rèn)知規(guī)律,對(duì)于提高學(xué)生的學(xué)習(xí)效率有很大的幫助。本項(xiàng)目以“面向?qū)ο蟪绦蛟O(shè)計(jì)——Java”為研究對(duì)象,經(jīng)過(guò)教師的教學(xué)反饋、學(xué)生調(diào)查,我們需要逐步完善“項(xiàng)目”的規(guī)模,項(xiàng)目太大、太小,功能太多、太少,涉及的知識(shí)點(diǎn)太深、太淺都不合適。同時(shí),在“項(xiàng)目”的分解問(wèn)題上也多下功夫,否則不適合每周、每章的教學(xué)內(nèi)容,教學(xué)效果得不到保障,而且如果上理論課和實(shí)驗(yàn)課是兩個(gè)甚至是多個(gè)“項(xiàng)目”,那么更要注意提高這些“項(xiàng)目”的分解質(zhì)量,要符合實(shí)驗(yàn)教學(xué)進(jìn)度和實(shí)驗(yàn)教學(xué)大綱的要求,做到協(xié)調(diào)一致[16-17]。
表2 項(xiàng)目模塊分解-知識(shí)點(diǎn)對(duì)應(yīng)表
教師在“項(xiàng)目分解教學(xué)法”執(zhí)行的過(guò)程中首先要充分了解學(xué)生所具備的專(zhuān)業(yè)知識(shí),例如學(xué)習(xí)了哪些前序課程?后續(xù)課程有哪些?能完成多大規(guī)模的“項(xiàng)目”等等。教師要對(duì)“項(xiàng)目”開(kāi)發(fā)有很深的功底,能夠很準(zhǔn)確的把握項(xiàng)目的難度,對(duì)學(xué)生在實(shí)驗(yàn)過(guò)程中遇到不能解決的問(wèn)題很快幫助解決,所以這種教學(xué)方式雖然表面上看學(xué)生參與動(dòng)手研發(fā)的部分很多,但是實(shí)際上對(duì)教師的專(zhuān)業(yè)素質(zhì)要求更高,需要教師有很廣博的專(zhuān)業(yè)知識(shí)和大量的項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn),同時(shí)也要有大量的“項(xiàng)目”積累組成項(xiàng)目庫(kù),能夠提供多個(gè)“項(xiàng)目”供學(xué)生選擇。這就要求教師首先要提高自己的專(zhuān)業(yè)技能和軟件開(kāi)發(fā)方面的技巧,不能只掌握書(shū)本上的語(yǔ)法知識(shí),要具備一定的實(shí)際開(kāi)發(fā)經(jīng)驗(yàn),所以這種教學(xué)方法不但沒(méi)有減輕教師的工作量,反而提高了對(duì)教師的要求。而且在每個(gè)“子項(xiàng)目”開(kāi)發(fā)的過(guò)程中學(xué)生可以組成開(kāi)發(fā)小組,互相討論、設(shè)計(jì)教師分派的任務(wù),由基礎(chǔ)好、水平高的同學(xué)帶動(dòng)編程能力相對(duì)較弱的同學(xué),形成團(tuán)隊(duì),提高合作意識(shí)和團(tuán)隊(duì)精神,增進(jìn)同學(xué)之間的友誼。
本研究對(duì)“項(xiàng)目分解法”教學(xué)運(yùn)用于程序設(shè)計(jì)類(lèi)課程的實(shí)驗(yàn)教學(xué)方面進(jìn)行深入的探討,總結(jié)出程序設(shè)計(jì)類(lèi)課程教學(xué)中運(yùn)用案例教學(xué)的特點(diǎn)和具體操作方法,以此給能夠運(yùn)用“項(xiàng)目分解法”教學(xué)的相關(guān)學(xué)科以啟示,通過(guò)這一研究來(lái)培養(yǎng)學(xué)生分析問(wèn)題的能力,加深對(duì)以前學(xué)習(xí)的知識(shí)的理解,從而提高學(xué)生做大項(xiàng)目的能力,增加成就感,提高學(xué)習(xí)興趣,增加就業(yè)競(jìng)爭(zhēng)力。
[1] 馬玉潔.基于自主學(xué)習(xí)的計(jì)算機(jī)基礎(chǔ)教學(xué)改革研究[J]. 商丘師范學(xué)院學(xué)報(bào),2011(3):119-122,125.
[2] 張 琳. 大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)模式研究[J]. 計(jì)算機(jī)教育,2009(7):88-90.
[3] 馮博琴.計(jì)算機(jī)基礎(chǔ)教育新階段的教學(xué)改革研究[[J].中國(guó)大學(xué)教學(xué),2004(9):7-9.
[4] 高麗平,劉 姝.大學(xué)計(jì)算機(jī)基礎(chǔ)課程體系結(jié)構(gòu)改革及分層次教學(xué)[J].計(jì)算機(jī)教育,2011(16):44-47.
[5] 劉 雙.“案例教學(xué)”若干問(wèn)題的辨析[J]. 教學(xué)與管理,2003(6):31-32.
[6] 解永剛.關(guān)于VisualFoxPro 的案例教學(xué)方法[J].昆明大學(xué)學(xué)報(bào),2003(1):59-60.
[7] 黃艷峰.在Java 語(yǔ)言中實(shí)施“案例教學(xué)”的研究與探索[J].電腦知識(shí)與技術(shù),2010,6(5):1148-1149.
[8] 張 昕. 案例驅(qū)動(dòng)教學(xué)模式在《數(shù)據(jù)庫(kù)原理》實(shí)踐教學(xué)中的運(yùn)用[J].電腦知識(shí)與技術(shù),2008,3(6):1246-1247.
[9] 熊春榮.“C 語(yǔ)言程序設(shè)計(jì)”課程案例驅(qū)動(dòng)教學(xué)模式的研究與實(shí)踐[J],玉林師范學(xué)院學(xué)報(bào)(自然科學(xué)),2010,31(5):119-121.
[10] 肖 明. 案例教學(xué)法在“C + + 語(yǔ)言程序設(shè)計(jì)”教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2010(6):83-86.
[11] 雷東升,李揮劍.《C 語(yǔ)言程序設(shè)計(jì)》課程案例式教學(xué)模式的探討[J].北京交通管理干部學(xué)院學(xué)報(bào),2006,16(4):38-40.
[12] 張民杰.案例教學(xué)法——理論與實(shí)務(wù)[M]. 北京:九州出版社,2006.
[13] 余文森,林高明.經(jīng)典教學(xué)法50 例[M].福州:福建教育出版社,2010.
[14] 鄭金洲.案例教學(xué)指南[M].上海:華東師范大學(xué)出版社,2000.
[15] 孫維煌,劉 杰.C#案例開(kāi)發(fā)[M].北京:中國(guó)水利水電出版社,2005.
[16] 徐延平.案例教學(xué)及其運(yùn)用[D].長(zhǎng)沙:湖南師范大學(xué),2002.
[17] 王 新. 大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)改革[J]. 計(jì)算機(jī)教育,2008(8):106-107.