,, ,,,
“面向?qū)ο蟪绦蛟O(shè)計(jì)”課程是我校自2008年起針對(duì)信息管理與信息系統(tǒng)專(zhuān)業(yè)開(kāi)設(shè)的一門(mén)程序設(shè)計(jì)必修專(zhuān)業(yè)課程,也是整個(gè)計(jì)算機(jī)課程教學(xué)體系中非常重要的一個(gè)環(huán)節(jié)。該課程采用具有簡(jiǎn)單、安全、與平臺(tái)無(wú)關(guān)、多線程等特點(diǎn)的JAVA程序設(shè)計(jì)語(yǔ)言。開(kāi)設(shè)此門(mén)課程,旨在讓學(xué)生了解面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想和基礎(chǔ)知識(shí),提高自主學(xué)習(xí)能力以及分析和解決問(wèn)題的能力、創(chuàng)新能力,為其后續(xù)課程的學(xué)習(xí)奠定良好的基礎(chǔ)。根據(jù)多年的教學(xué)經(jīng)驗(yàn),我們總結(jié)了教學(xué)過(guò)程中存在的的問(wèn)題,并進(jìn)行了一些改革和探索以解決這些問(wèn)題。
“面向?qū)ο蟪绦蛟O(shè)計(jì)”課程涉及的概念多、零散、抽象。教師大多是按照設(shè)計(jì)好的教學(xué)模式,通過(guò)電子課件來(lái)進(jìn)行教學(xué)。由于教學(xué)時(shí)數(shù)和教學(xué)進(jìn)度的制約,理論課往往成了電子課件的展示課,教師對(duì)學(xué)生的關(guān)心程度幾乎為零,學(xué)生不能主動(dòng)參與到教學(xué)環(huán)節(jié)中[1]。加之我校信管專(zhuān)業(yè)部分學(xué)生是文科生,因此在學(xué)習(xí)這門(mén)課程時(shí)更是有一定的難度。
教師以往在講授這門(mén)課程時(shí)通常存在兩種情況:一是忽略概念的講解,直接講例題。由于學(xué)生之前主要學(xué)習(xí)C語(yǔ)言程序,已經(jīng)習(xí)慣了面向過(guò)程的編程思想,如果缺乏理論的指導(dǎo),很難轉(zhuǎn)變到面向?qū)ο缶幊趟枷?。二是先講解JAVA中的概念,然后再舉例說(shuō)明。由于JAVA的概念和語(yǔ)法本身就難以理解,加上每個(gè)例題之間沒(méi)有相互的關(guān)聯(lián),教師容易陷入解釋概念和語(yǔ)法的誤區(qū)中,忽略了算法設(shè)計(jì)這一環(huán)節(jié)。因此,學(xué)生即使掌握了每個(gè)知識(shí)點(diǎn),也不能學(xué)以致用。
出現(xiàn)這些問(wèn)題的根本原因在于沒(méi)有把計(jì)算思維教育融入到教學(xué)中。面向?qū)ο蟪绦蛟O(shè)計(jì)要從面向?qū)ο蟮乃枷搿⒚嫦驅(qū)ο蟮某橄蟾拍詈退惴ň幊痰确矫鎸?duì)學(xué)生進(jìn)行計(jì)算思維訓(xùn)練,提高學(xué)生分析、解決問(wèn)題的綜合能力[2]。
“面向?qū)ο蟪绦蛟O(shè)計(jì)”是一門(mén)很重視實(shí)踐環(huán)節(jié)的課程,以往的實(shí)驗(yàn)課僅僅是對(duì)理論課所講授的內(nèi)容做驗(yàn)證,實(shí)驗(yàn)內(nèi)容單一、枯燥,自主設(shè)計(jì)的內(nèi)容很少。實(shí)驗(yàn)內(nèi)容大多數(shù)來(lái)源于教材,針對(duì)每個(gè)章節(jié)所設(shè)計(jì),內(nèi)容陳舊,前后缺乏關(guān)聯(lián)。另外,學(xué)生在實(shí)踐環(huán)節(jié)主要關(guān)注語(yǔ)法規(guī)則,只是機(jī)械地模仿或照抄書(shū)本上的例題,找語(yǔ)法錯(cuò)誤,很難深入分析問(wèn)題,不能融會(huì)貫通,對(duì)系統(tǒng)開(kāi)發(fā)的方法、概念認(rèn)識(shí)模糊,即使所有的實(shí)驗(yàn)題目都會(huì)做,沒(méi)有通過(guò)一些綜合的項(xiàng)目訓(xùn)練,也很難把握面向?qū)ο蟪绦蛟O(shè)計(jì)的總體思想[3]。
由于實(shí)驗(yàn)內(nèi)容的設(shè)置缺乏科學(xué)性、系統(tǒng)性,學(xué)生僅能使用JAVA語(yǔ)法規(guī)則編寫(xiě)簡(jiǎn)單的程序,而分析問(wèn)題、解決問(wèn)題和系統(tǒng)設(shè)計(jì)等一系列的計(jì)算思維十分欠缺,遇到實(shí)際問(wèn)題仍感到無(wú)從下手。
以往“面向?qū)ο蟪绦蛟O(shè)計(jì)”課程的考核主要采用筆試,考核內(nèi)容多是類(lèi)、對(duì)象、方法、多態(tài)、繼承、接口和多線程等概念。筆試試卷從題庫(kù)里抽題,不能根據(jù)學(xué)生的實(shí)際情況進(jìn)行組卷。學(xué)生往往對(duì)一些知識(shí)點(diǎn)或概念進(jìn)行記憶性的學(xué)習(xí),忽略實(shí)際編程能力的提高。這種考核方式存在試題難易度不易把握、評(píng)價(jià)標(biāo)準(zhǔn)不夠合理的問(wèn)題,即使學(xué)生取得了高分,也不能如實(shí)反映教學(xué)中的薄弱環(huán)節(jié),更體現(xiàn)不出學(xué)生的學(xué)習(xí)能力和創(chuàng)造能力,失去了考核的目的和意義。因此,需要根據(jù)該課程和學(xué)生的特點(diǎn),找出合適的考核方式[4]。從2011年起,我校就在調(diào)整課程設(shè)置、改進(jìn)理論和實(shí)驗(yàn)課教學(xué)內(nèi)容、加強(qiáng)學(xué)生計(jì)算思維訓(xùn)練、提高學(xué)生創(chuàng)新能力和綜合素質(zhì)等方面進(jìn)行了一系列的改革。
在傳統(tǒng)的教學(xué)模式下,學(xué)生不知道為什么要學(xué)習(xí)這門(mén)課程,也不明白學(xué)習(xí)這門(mén)課程對(duì)今后的學(xué)習(xí)和工作有何用處。因此,我們利用每學(xué)期第一次理論課向?qū)W生介紹課程的學(xué)習(xí)目標(biāo)和今后學(xué)習(xí)的方向,讓學(xué)生明確JAVA課程學(xué)習(xí)的目標(biāo)是掌握J(rèn)AVA的基本概念和語(yǔ)法,熟悉面向?qū)ο蟮木幊趟枷牒头椒ǎ軌蚴褂肑AVA語(yǔ)言進(jìn)行一些簡(jiǎn)單的系統(tǒng)設(shè)計(jì)和開(kāi)發(fā),在這個(gè)基礎(chǔ)上可以繼續(xù)學(xué)習(xí)J2ME編程和J2EE企業(yè)開(kāi)發(fā)等。
在2012年為信息管理和信息系統(tǒng)專(zhuān)業(yè)制定的新的培養(yǎng)方案中,我們將面向?qū)ο蟪绦蛟O(shè)計(jì)課程教學(xué)時(shí)數(shù)由60學(xué)時(shí)調(diào)整為72學(xué)時(shí),其中理論課36學(xué)時(shí),實(shí)驗(yàn)課36學(xué)時(shí)。在課程結(jié)束之后,繼續(xù)開(kāi)設(shè)一門(mén)與JAVA語(yǔ)言相關(guān)的“Android應(yīng)用系統(tǒng)”限選課程,讓學(xué)生能夠了解JAVA在實(shí)際開(kāi)發(fā)中的應(yīng)用。
對(duì)理論教學(xué)內(nèi)容進(jìn)行調(diào)整,注重將計(jì)算思維訓(xùn)練融入到教學(xué)內(nèi)容中,讓學(xué)生掌握面向?qū)ο蟮木幊趟枷牒头椒?。瑞士著名的?jì)算機(jī)科學(xué)家Niklaus Wirth教授曾經(jīng)說(shuō)過(guò):因?yàn)橐M(jìn)行程序設(shè)計(jì),才學(xué)習(xí)語(yǔ)言,語(yǔ)言是程序設(shè)計(jì)的工具,本質(zhì)是為了程序設(shè)計(jì),而不要本末倒置[5]。
課堂上,教師不再過(guò)多地講解語(yǔ)法,而是強(qiáng)調(diào)面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)勢(shì),體現(xiàn)面向?qū)ο蟮木幊趟枷?。由于學(xué)生的先修課程是C語(yǔ)言,面向過(guò)程的編程思維方式在學(xué)生的腦海里根深蒂固。C語(yǔ)言里的許多功能需要編寫(xiě)函數(shù)來(lái)完成,但是在JAVA里只要直接調(diào)用系統(tǒng)類(lèi)庫(kù)中的方法就能完成。例如,用JFrame類(lèi)創(chuàng)建一個(gè)簡(jiǎn)單的窗口,由此可以引入類(lèi)的概念。類(lèi)是對(duì)客觀事物的抽象,是用來(lái)創(chuàng)建對(duì)象的模板。類(lèi)中包括對(duì)同一類(lèi)型事物的屬性和行為的描述,通過(guò)接口和外界發(fā)生聯(lián)系。類(lèi)可以建立對(duì)象,每個(gè)對(duì)象可以具體地說(shuō)明數(shù)據(jù)和行為,因此能逐步引入面向?qū)ο蟮幕舅枷?,潛移默化地影響學(xué)生。向?qū)W生解釋面向?qū)ο蟮木幊桃?guī)則、為什么要有這些規(guī)則和如何應(yīng)用這些規(guī)則的過(guò)程,實(shí)際上就是在培養(yǎng)學(xué)生的計(jì)算思維。
注意概念和例題的講解,前后要有一定的聯(lián)系和層次結(jié)構(gòu)。面向?qū)ο笾械脑S多概念看似零散,沒(méi)有關(guān)聯(lián),但實(shí)際上對(duì)編程起著十分重要的作用[6]。如果只是單純講解某一個(gè)點(diǎn),沒(méi)有把相關(guān)的概念串聯(lián)在一起,學(xué)生會(huì)感到一頭霧水,毫無(wú)頭緒。在進(jìn)行類(lèi)和對(duì)象這一章的教學(xué)時(shí),我們選取了計(jì)算梯形面積的例子。具體步驟是先定義一個(gè)具有計(jì)算面積方法的人,然后分別建立對(duì)象laderOne和laderTwo計(jì)算不同梯形的面積。在講到后面實(shí)例變量和類(lèi)變量的時(shí)候,由于要計(jì)算下底相同、上底和高不同的梯形面積,就可以把下底定義成類(lèi)變量。在講到多態(tài)時(shí),可以將這個(gè)例題進(jìn)一步擴(kuò)展,建立一個(gè)圖形類(lèi),圖形類(lèi)有梯形、圓形子類(lèi),通過(guò)實(shí)現(xiàn)圖形類(lèi)的抽象方法完成面積的計(jì)算。在講到接口內(nèi)容時(shí),仍然可以使用圖形面積的例子,讓學(xué)生理解使用多態(tài)和接口的不同之處。這樣的教學(xué)過(guò)程使學(xué)生清楚地看出這些主要概念的運(yùn)用及其之間的聯(lián)系[7],有助于進(jìn)一步從面向?qū)ο笏枷牒统橄蟮母拍罱嵌扰囵B(yǎng)學(xué)生計(jì)算思維能力。
實(shí)踐教學(xué)是對(duì)理論教學(xué)效果的檢驗(yàn)。通過(guò)實(shí)踐教學(xué),把面向?qū)ο缶幊趟枷牒驼Z(yǔ)言?xún)?nèi)容相結(jié)合,從邏輯思維方面訓(xùn)練學(xué)生的計(jì)算思維,提高學(xué)生的自主學(xué)習(xí)能力,培養(yǎng)學(xué)生的團(tuán)隊(duì)協(xié)作能力[8]。因此,實(shí)踐教學(xué)的改革顯得尤為重要。
實(shí)踐課程的開(kāi)始階段主要以驗(yàn)證性實(shí)驗(yàn)為主。針對(duì)每次理論課講解的內(nèi)容,從歷年的全國(guó)計(jì)算機(jī)等級(jí)考試、學(xué)科競(jìng)賽中精選一些題目,讓學(xué)生完成。在選擇題目時(shí)注意前后的連貫性。
實(shí)踐課程的中后期則通過(guò)課程設(shè)計(jì)來(lái)加強(qiáng)學(xué)生的編程能力和面向?qū)ο笏枷氲呐囵B(yǎng)。課程設(shè)計(jì)分為教師引導(dǎo)、學(xué)生實(shí)踐、交流討論和提交作品考核4個(gè)階段。
我們根據(jù)學(xué)生的具體情況設(shè)計(jì)了3-4個(gè)課程設(shè)計(jì)項(xiàng)目。這些項(xiàng)目要難度適中、知識(shí)覆蓋面廣,每個(gè)項(xiàng)目列出需要掌握的教學(xué)知識(shí)點(diǎn)。4個(gè)課程設(shè)計(jì)項(xiàng)目和涉及的主要知識(shí)點(diǎn)如表1所示。學(xué)生根據(jù)能力組成小組,完成其中的一個(gè)項(xiàng)目。指定一名學(xué)生為組長(zhǎng),其余學(xué)生各有分工,在提交課程設(shè)計(jì)報(bào)告和完成的項(xiàng)目時(shí)進(jìn)行現(xiàn)場(chǎng)答辯演示。在課程設(shè)計(jì)實(shí)施過(guò)程中,教師按照軟件工程中需求分析、項(xiàng)目設(shè)計(jì)、實(shí)施、調(diào)試維護(hù)4個(gè)階段指導(dǎo)學(xué)生完成整個(gè)項(xiàng)目。在實(shí)踐課上,教師把實(shí)訓(xùn)項(xiàng)目任務(wù)書(shū)下達(dá)給學(xué)生,根據(jù)任務(wù)書(shū),指導(dǎo)學(xué)生完成需求分析,對(duì)所涉及的技術(shù)要點(diǎn)進(jìn)行講解;學(xué)生在課堂上對(duì)所需要實(shí)現(xiàn)的功能和技術(shù)開(kāi)展討論,并提出需要解決的問(wèn)題。學(xué)生根據(jù)任務(wù)書(shū)的要求完成項(xiàng)目。
表1 課程設(shè)計(jì)項(xiàng)目及主要知識(shí)點(diǎn)
采用筆試和實(shí)踐成績(jī)相結(jié)合的方式考核,筆試、實(shí)踐成績(jī)各占50%。實(shí)踐成績(jī)主要依據(jù)最后上交的課程設(shè)計(jì)報(bào)告和現(xiàn)場(chǎng)答辯。答辯以小組為單位,選派一名學(xué)生對(duì)項(xiàng)目進(jìn)行演示和現(xiàn)場(chǎng)解答。教師將根據(jù)每個(gè)小組學(xué)習(xí)態(tài)度、課程設(shè)計(jì)報(bào)告的規(guī)范性、項(xiàng)目設(shè)計(jì)的情況、技術(shù)能力、編程能力、現(xiàn)場(chǎng)演示和回答問(wèn)題情況,并結(jié)合每位同學(xué)的具體工作量打分[9]。這種考核方式更有利于綜合評(píng)價(jià)學(xué)生的能力,激發(fā)學(xué)生的學(xué)習(xí)熱情。
我們改進(jìn)了理論教學(xué)方法,注重培養(yǎng)學(xué)生的計(jì)算思維;編寫(xiě)實(shí)驗(yàn)指導(dǎo),通過(guò)案例訓(xùn)練學(xué)生的實(shí)踐技能。經(jīng)過(guò)幾年的努力,不僅提高了整個(gè)教學(xué)團(tuán)隊(duì)的教學(xué)能力和科研水平,學(xué)生也取得了可喜的成績(jī)。
從2012年開(kāi)始,我校信管專(zhuān)業(yè)的學(xué)生陸續(xù)參加了“藍(lán)橋杯”軟件設(shè)計(jì)大賽,2013年獲得“藍(lán)橋杯”軟件設(shè)計(jì)大賽安徽省的二等獎(jiǎng)和三等獎(jiǎng),2014年獲得了全國(guó)總決賽三等獎(jiǎng)。學(xué)生開(kāi)發(fā)的基于Android平臺(tái)的“人體導(dǎo)航”軟件,參加安徽省“創(chuàng)青春大學(xué)生創(chuàng)業(yè)大賽”蚌埠醫(yī)學(xué)院校內(nèi)選拔賽中獲得第一名,并選送安徽省參賽。此外,以學(xué)生為主體成功申報(bào)了3項(xiàng)國(guó)家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目。
教學(xué)改革任重道遠(yuǎn),一切改革工作都要以促進(jìn)學(xué)生成長(zhǎng)為目的[10]。
我們?cè)诶碚摵蛯?shí)踐教學(xué)改革中注重計(jì)算思維能力的訓(xùn)練,鍛煉了醫(yī)學(xué)院校學(xué)生的邏輯思維能力,培養(yǎng)了學(xué)生嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)和創(chuàng)新能力。教學(xué)改革應(yīng)該是全方位的,不僅要注重課堂教學(xué)環(huán)節(jié),還要關(guān)注學(xué)生的課外學(xué)習(xí)、網(wǎng)絡(luò)在線學(xué)習(xí)等,這些方面都需要我們進(jìn)一步探索。