李 妮
(運(yùn)城學(xué)院 公共計(jì)算機(jī)教學(xué)部,山西 運(yùn)城 044000)
C語言程序設(shè)計(jì)課程項(xiàng)目教學(xué)實(shí)踐
李 妮
(運(yùn)城學(xué)院 公共計(jì)算機(jī)教學(xué)部,山西 運(yùn)城 044000)
在C語言程序設(shè)計(jì)課程中應(yīng)用項(xiàng)目教學(xué)法突破了傳統(tǒng)的教學(xué)模式,將理論知識的學(xué)習(xí)與應(yīng)用能力培養(yǎng)有機(jī)結(jié)合.根據(jù)應(yīng)用目標(biāo)的要求,項(xiàng)目課堂教學(xué)過程分解為三個(gè)階段,課程內(nèi)容和項(xiàng)目案例也分解為三個(gè)層次模塊有效地配合項(xiàng)目課堂教學(xué).
C語言程序設(shè)計(jì);項(xiàng)目教學(xué)法;應(yīng)用能力
在信息爆炸的知識經(jīng)濟(jì)時(shí)代,信息技術(shù)的普及要求現(xiàn)代工作者能夠在解決實(shí)際問題時(shí)具備更多的信息技術(shù)技巧及能力.如何提高學(xué)生利用信息技術(shù)表述、分析問題和解決問題的能力,培養(yǎng)創(chuàng)新型和應(yīng)用型人才成為高等教育的重要目標(biāo)之一.
傳統(tǒng)的教學(xué)方法很難滿足信息化社會應(yīng)用型人才的培養(yǎng)要求.因此,近二十年來,世界各國都在探索新的教育教學(xué)法或教學(xué)模式,特別是以培養(yǎng)實(shí)踐能力為核心的項(xiàng)目教學(xué)法.由于項(xiàng)目教學(xué)法對于充分發(fā)掘?qū)W生的創(chuàng)造潛能,并促使其在提高動(dòng)手能力、組織能力等方面起著十分重要和有效的作用,它在基礎(chǔ)教育、職業(yè)教育、高等教育和成人教育中得到了廣泛的應(yīng)用,對教育的發(fā)展產(chǎn)生極為深刻而廣泛的影響.
基于建構(gòu)主義的項(xiàng)目教學(xué)法與傳統(tǒng)的教學(xué)法相比,有很大的區(qū)別,主要表現(xiàn)在改變了傳統(tǒng)的三個(gè)中心,由以教師為中心轉(zhuǎn)變?yōu)橐詫W(xué)生為中心,由以課本為中心轉(zhuǎn)變?yōu)橐皂?xiàng)目為中心,由以課堂為中心轉(zhuǎn)變?yōu)橐詫?shí)踐為中心.項(xiàng)目教學(xué)法突破傳統(tǒng)的教學(xué)模式,可以在增強(qiáng)學(xué)生的動(dòng)手能力、思變能力、探究能力、創(chuàng)新能力和社會能力的同時(shí),又能構(gòu)建一個(gè)開放性、研究性的學(xué)習(xí)環(huán)境,并可使學(xué)生以足夠的空間,按自己的方式去進(jìn)行研究性的學(xué)習(xí).
非計(jì)算機(jī)專業(yè)的C語言程序設(shè)計(jì)教學(xué)多用傳統(tǒng)教學(xué)法.傳統(tǒng)C語言程序設(shè)計(jì)教學(xué),經(jīng)常會出現(xiàn)課堂上學(xué)到的理論知識與實(shí)踐脫節(jié),教師用例過于理論化,學(xué)生很難用學(xué)到的知識解決實(shí)際問題.這正是教學(xué)方法不注重能力培養(yǎng),學(xué)習(xí)背景沒有嵌入實(shí)際情景而造成的.
項(xiàng)目教學(xué)法能夠使理論知識與應(yīng)用能力培養(yǎng)有機(jī)結(jié)合[1].教學(xué)過程中,師生通過共同學(xué)習(xí)理解、分解并逐步實(shí)施一個(gè)與現(xiàn)實(shí)緊密結(jié)合的小型項(xiàng)目進(jìn)行教學(xué)活動(dòng).它實(shí)質(zhì)上就是一種基于建構(gòu)主義學(xué)習(xí)理論的探究性學(xué)習(xí)模式,強(qiáng)調(diào)知識意義和能力建構(gòu)性,強(qiáng)調(diào)協(xié)作學(xué)習(xí),在不斷解決問題、實(shí)現(xiàn)階段任務(wù)中完成對知識的意義建構(gòu).根據(jù)信息技術(shù)課程特點(diǎn),采用項(xiàng)目教學(xué)法,增強(qiáng)學(xué)生的動(dòng)手能力、思變能力、探究能力、創(chuàng)新能力和社會能力的同時(shí),構(gòu)建一個(gè)開放性、研究性的學(xué)習(xí)環(huán)境,使學(xué)生以足夠的空間,按自己的方式去進(jìn)行研究性的學(xué)習(xí).
項(xiàng)目課堂教學(xué)的內(nèi)容是由知識和項(xiàng)目一步步分解而來,知識重構(gòu)和項(xiàng)目內(nèi)容的選取是否在難度、復(fù)雜度上適合學(xué)生,項(xiàng)目子內(nèi)容或子案例是否分解的正確合理,這些因素決定了項(xiàng)目教學(xué)內(nèi)容的合理性及實(shí)施效果.項(xiàng)目的完整程序很容易地能夠建立起來,但是也遇到了一些問題:項(xiàng)目案例是綜合性的程序設(shè)計(jì),很難將項(xiàng)目案例程序合理分解為較小的課堂用例[2],融入到授課過程中;在課堂教學(xué)中,往往只選取一個(gè)主要的項(xiàng)目案例與課程內(nèi)容結(jié)合,學(xué)生從中獲取的實(shí)踐經(jīng)驗(yàn)不夠,能力提高不顯著.
為了有效地實(shí)施項(xiàng)目教學(xué)法,應(yīng)將項(xiàng)目與課程的內(nèi)容相結(jié)合,分階段分層次實(shí)現(xiàn).依據(jù)“應(yīng)用入手,學(xué)中建,建中學(xué);分解項(xiàng)目,逐步深入與完善”的項(xiàng)目教學(xué)思想[3],將課堂教學(xué)過程分解為三個(gè)階段,將項(xiàng)目和課程內(nèi)容也分解為這三個(gè)層次模塊配合項(xiàng)目教學(xué)三個(gè)階段的學(xué)習(xí).
初級階段的知識模塊主要是結(jié)構(gòu)化程序設(shè)計(jì)基礎(chǔ),包含C語言程序設(shè)計(jì)課程的基本知識、基本數(shù)據(jù)類型及其定義與操作、程序的基本結(jié)構(gòu).初級階段的項(xiàng)目模塊包括設(shè)計(jì)項(xiàng)目軟件系統(tǒng)的初級界面、軟件菜單主界面的優(yōu)化——實(shí)現(xiàn)人機(jī)交互、開發(fā)編寫某些二級菜單軟件界面和軟件菜單主界面的循環(huán)顯示等.項(xiàng)目教學(xué)初級階段的過程如下:
第一次理論課是對C語言程序設(shè)計(jì)課程的總體介紹,為了讓學(xué)生對項(xiàng)目教學(xué)方法有大致的了解,教師應(yīng)選擇簡單的項(xiàng)目例子,向?qū)W生展示C語言在生活中的應(yīng)用,例如學(xué)校信息管理系統(tǒng)、工資管理系統(tǒng)和超市商品管理系統(tǒng)等.介紹項(xiàng)目的功能,項(xiàng)目開發(fā)的總體過程,并要求學(xué)生以小組為單位[4]選擇一個(gè)合適的項(xiàng)目共同去完成.教師需要提供一些項(xiàng)目案例供學(xué)生自由選擇,學(xué)生也可以根據(jù)自己的興趣自擬題目.要求學(xué)生課下根據(jù)自己選擇的項(xiàng)目進(jìn)行市場調(diào)研并寫出需求分析.教師通過實(shí)驗(yàn)報(bào)告了解每個(gè)小組的項(xiàng)目調(diào)研情況,給出修改意見,學(xué)生繼續(xù)對項(xiàng)目的設(shè)計(jì)做修改.
通過對基本數(shù)據(jù)類型和程序的基本結(jié)構(gòu)的學(xué)習(xí),教師總結(jié)教學(xué)項(xiàng)目案例中項(xiàng)目軟件系統(tǒng)界面的設(shè)計(jì)特點(diǎn),要求學(xué)生根據(jù)要設(shè)計(jì)項(xiàng)目的風(fēng)格,設(shè)計(jì)項(xiàng)目軟件系統(tǒng)的初級界面.學(xué)生模仿教學(xué)案例中的程序,討論界面的內(nèi)容并編程實(shí)現(xiàn).教師檢查每個(gè)小組的項(xiàng)目程序,給出修改意見,小組討論后繼續(xù)完善程序.接著進(jìn)一步對軟件菜單主界面進(jìn)行優(yōu)化:實(shí)現(xiàn)人機(jī)交互、軟件主界面的循環(huán)顯示等.
教師將此階段的項(xiàng)目成果進(jìn)行點(diǎn)評,并在教學(xué)博客上展示優(yōu)秀的項(xiàng)目程序.
中級階段的知識模塊主要是模塊化程序設(shè)計(jì)基礎(chǔ),包含函數(shù)的編寫和調(diào)用、變量的作用域與生存期的運(yùn)用.中級階段的項(xiàng)目模塊包括軟件功能模塊的劃分、實(shí)現(xiàn)軟件系統(tǒng)各級菜單的顯示、選擇、循環(huán)實(shí)現(xiàn)、優(yōu)化某些功能函數(shù)設(shè)計(jì),設(shè)計(jì)合理的全局變量等.項(xiàng)目教學(xué)中級階段的過程如下:
教師通過分析幾個(gè)典型的教學(xué)項(xiàng)目案例,總結(jié)函數(shù)的特點(diǎn),運(yùn)用模塊劃分方法定義合理的軟件項(xiàng)目模塊功能,講解系統(tǒng)模塊結(jié)構(gòu)圖的畫法,分析各模塊功能及函數(shù)功能.學(xué)生通過初級階段對項(xiàng)目的調(diào)研,綜合分析系統(tǒng)功能,討論軟件功能模塊的劃分,并在實(shí)驗(yàn)報(bào)告中畫出系統(tǒng)模塊結(jié)構(gòu)圖,詳細(xì)描述各模塊功能及函數(shù)功能.每個(gè)組內(nèi)的成員都要分擔(dān)一部分功能模塊的實(shí)現(xiàn),從中體會多人合作開發(fā)軟件的方法.教師通過參與小組的討論指導(dǎo)學(xué)生,給出必要的提示.
要實(shí)現(xiàn)每個(gè)功能模塊的選擇實(shí)際上就是實(shí)現(xiàn)軟件系統(tǒng)中各級菜單的顯示、選擇、循環(huán)等操作.教師選取項(xiàng)目案例講解系統(tǒng)中各級菜單的操作過程,例如怎樣通過鍵盤的選擇,從主菜單進(jìn)入二級菜單;若想返回主菜單重新選擇,主菜單怎樣重新顯示等.主菜單中的每個(gè)選擇項(xiàng)都是一個(gè)功能模塊,若有下一級的菜單,是對功能模塊更小的劃分.教師選擇幾個(gè)項(xiàng)目案例中的多個(gè)功能模塊進(jìn)行分析并編程實(shí)現(xiàn),講解項(xiàng)目中函數(shù)和變量的使用,以及如何對項(xiàng)目模塊獨(dú)立調(diào)試和綜合調(diào)試等.項(xiàng)目小組共同完成系統(tǒng)的主菜單部分,其中每一個(gè)菜單項(xiàng)由組內(nèi)成員對自己項(xiàng)目模塊獨(dú)立調(diào)試并分別編程實(shí)現(xiàn),最后將所有功能模塊進(jìn)行綜合調(diào)試.教師檢查每個(gè)小組的項(xiàng)目程序,提出修改意見,學(xué)生繼續(xù)對整個(gè)項(xiàng)目程序進(jìn)行優(yōu)化.通過教學(xué)博客展示各小組的項(xiàng)目程序,小組間進(jìn)行相互的學(xué)習(xí),并提出優(yōu)點(diǎn)和改進(jìn)意見.
高級階段的知識模塊主要是復(fù)雜數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)方法,包含數(shù)組、指針、結(jié)構(gòu)體、文件的操作和應(yīng)用.高級階段的項(xiàng)目模塊包括利用數(shù)組和指針設(shè)計(jì)、優(yōu)化每個(gè)功能模塊的函數(shù),利用文件存儲數(shù)據(jù),利用結(jié)構(gòu)體再次優(yōu)化項(xiàng)目程序.項(xiàng)目教學(xué)高級階段的過程如下:
結(jié)合批量數(shù)據(jù)的輸入、操作、存儲和輸出,教師對教學(xué)項(xiàng)目案例進(jìn)行再次優(yōu)化,對以前項(xiàng)目程序進(jìn)行改寫,講解如何利用數(shù)組和指針設(shè)計(jì)、優(yōu)化每個(gè)功能模塊的函數(shù),利用文件存儲數(shù)據(jù)的方法.這部分是項(xiàng)目教學(xué)的難點(diǎn),教師需要指導(dǎo)學(xué)生利用數(shù)組和指針,采用不同的方法對項(xiàng)目程序進(jìn)行改進(jìn).小組討論后,每個(gè)組員對自己承擔(dān)的那部分功能模塊進(jìn)行修改,最后將所有功能模塊進(jìn)行綜合調(diào)試.
結(jié)構(gòu)體數(shù)據(jù)類型可以把有邏輯聯(lián)系的多種類型的數(shù)據(jù)結(jié)合在一起,可以對項(xiàng)目程序進(jìn)行再次優(yōu)化.教師講解如何用結(jié)構(gòu)體來重新設(shè)計(jì)實(shí)現(xiàn)數(shù)據(jù)字典中的數(shù)據(jù)結(jié)構(gòu),并用此數(shù)據(jù)結(jié)構(gòu)來優(yōu)化并完善程序.小組討論后,采取統(tǒng)一的結(jié)構(gòu)體數(shù)據(jù)類型,每個(gè)組員對自己承擔(dān)的那部分功能模塊進(jìn)行修改,最后將所有功能模塊進(jìn)行綜合調(diào)試.
教師將最終的項(xiàng)目成果在博客上展示,并對項(xiàng)目教學(xué)效果進(jìn)行評價(jià).評價(jià)結(jié)果由三部分組成:各小組對組員的評價(jià)、小組間的相互評價(jià)和教師對學(xué)生的評價(jià)[5].
非計(jì)算機(jī)專業(yè)計(jì)算機(jī)基礎(chǔ)教育體系課程的教學(xué)應(yīng)注重學(xué)生從實(shí)際中尋找問題、解決問題,提高實(shí)踐能力和情感的培養(yǎng),項(xiàng)目教學(xué)方法在C語言程序設(shè)計(jì)課程中的應(yīng)用,提高了學(xué)生掌握并具備運(yùn)用信息技術(shù)解決工作、生活中問題的能力.
〔1〕孟朝霞.C語言程序設(shè)計(jì)課程項(xiàng)目教學(xué)目標(biāo)建設(shè)與實(shí)踐[J].中國科技信息,2010(04).
〔2〕李妮,孟朝霞.案例教學(xué)法探討——在非計(jì)算機(jī)專業(yè)本科生《C語言程序設(shè)計(jì)》課程中的應(yīng)用[J].中國科技信息,2008(11).
〔3〕孟朝霞.C語言課程的應(yīng)用性目標(biāo)模型[J].運(yùn)城學(xué)院,2009(01).
〔4〕李妮.小組合作學(xué)習(xí)教學(xué)探討[J].運(yùn)城學(xué)院,2007(05).
〔5〕李妮.大學(xué)計(jì)算機(jī)基礎(chǔ).課程中的項(xiàng)目教學(xué)法實(shí)踐[J].運(yùn)城學(xué)院,2009(01).
G642
A
1673-260X(2011)10-0242-02
2009年山西省普通本科高等教育教學(xué)改革研究項(xiàng)目(2009309);運(yùn)城學(xué)院科研項(xiàng)目(JY-2009004)