李紅葉 山東圣翰財(cái)貿(mào)職業(yè)學(xué)院 250316
項(xiàng)目驅(qū)動(dòng)教學(xué)法在《C語言程序設(shè)計(jì)》教學(xué)中的應(yīng)用
李紅葉 山東圣翰財(cái)貿(mào)職業(yè)學(xué)院 250316
《C語言程序設(shè)計(jì)》是高職院校計(jì)算機(jī)專業(yè)的必修課,針對(duì)高職教育強(qiáng)調(diào)理實(shí)踐訓(xùn)練、工學(xué)結(jié)合,“教,學(xué),做”一體化等特點(diǎn),本文對(duì)項(xiàng)目驅(qū)動(dòng)教學(xué)法進(jìn)行了探索和分析,并針對(duì)此課程的教學(xué)內(nèi)容設(shè)計(jì)了項(xiàng)目化教學(xué)的具體實(shí)施方案。該方案在實(shí)際的課程教學(xué)中極大地提高了學(xué)生的學(xué)習(xí)積極性,并取得了良好的教學(xué)效果。
C語言程序設(shè)計(jì);實(shí)踐訓(xùn)練;項(xiàng)目驅(qū)動(dòng)教學(xué)法
項(xiàng)目驅(qū)動(dòng)教學(xué)法要求在教學(xué)過程中,以完成一個(gè)個(gè)具體的項(xiàng)目為線索,把教學(xué)內(nèi)容巧妙地融入到每個(gè)項(xiàng)目的各個(gè)環(huán)節(jié)中去。在項(xiàng)目的實(shí)現(xiàn)過程中,會(huì)無形的對(duì)某些的知識(shí)進(jìn)行深化或擴(kuò)充,這樣就拓寬了知識(shí)的廣度和深度,直至完整的項(xiàng)目都被實(shí)現(xiàn)。在完成項(xiàng)目的同時(shí),培養(yǎng)了學(xué)生的創(chuàng)新意識(shí)、創(chuàng)新能力以及自主學(xué)習(xí)的能力。
《C語言程序設(shè)計(jì)》是一門技術(shù)性和實(shí)用性都很強(qiáng)的課程,C語言的具有功能豐富、表達(dá)力強(qiáng)、目標(biāo)程序運(yùn)行效率高等特點(diǎn)。但C語言涉及的概念比較復(fù)雜,規(guī)則繁多,使用靈活,不少初學(xué)者難以掌握、易出錯(cuò)。由于受到傳統(tǒng)教學(xué)模式的影響,之前的教學(xué)效果不是很理想。多年來,我們學(xué)院按照高等職業(yè)技術(shù)教育的培養(yǎng)目標(biāo),基于建構(gòu)主義學(xué)習(xí)理論,采用項(xiàng)目驅(qū)動(dòng)教學(xué)法,對(duì)《C語言程序設(shè)計(jì)》課程的教學(xué)進(jìn)行積極改革與探索,取得了良好的教學(xué)效果。
對(duì)于學(xué)生來說,學(xué)習(xí)一門課程,不僅僅是掌握一些關(guān)于這門課程的知識(shí),更重要的是知識(shí)的應(yīng)用和學(xué)習(xí)方法的掌握,并能在今后的學(xué)習(xí)過程中觸類旁通。對(duì)于高職院校的學(xué)生來說,對(duì)實(shí)踐能力的要求更為突出。在長期教學(xué)實(shí)踐的基礎(chǔ)上,我們決定采用基于項(xiàng)目驅(qū)動(dòng)的教學(xué)方法,以一個(gè)完整的軟件開發(fā)項(xiàng)目貫穿整個(gè)課程教學(xué)過程的始終;以項(xiàng)目的建構(gòu)過程為線索安排教學(xué)過程;整個(gè)教學(xué)過程是由項(xiàng)目的任務(wù)驅(qū)動(dòng)[1]。學(xué)生在學(xué)習(xí)過程中理解并參與一個(gè)完整項(xiàng)目的分析、設(shè)計(jì)、模塊化實(shí)現(xiàn)的全過程,這樣就在課堂教學(xué)中把理論和實(shí)踐教學(xué)有機(jī)地結(jié)合起來,實(shí)現(xiàn)了“教、學(xué)、做”一體化,充分發(fā)揮了學(xué)生的主體作用。在項(xiàng)目的實(shí)現(xiàn)過程中,嚴(yán)格按照軟件工程的步驟進(jìn)行開發(fā),使學(xué)生深刻理解軟件項(xiàng)目完成的全過程,把充分調(diào)動(dòng)了學(xué)生對(duì)課程學(xué)習(xí)的積極性,學(xué)生分析問題和解決問題能力地得到提高。
項(xiàng)目的選取要符合高職學(xué)生的學(xué)情,既能突出工學(xué)結(jié)合的特色,又要保證項(xiàng)目的實(shí)現(xiàn)能夠涵蓋C語言程序設(shè)計(jì)的所有基本內(nèi)容,并且具有一定的代表性和實(shí)用性,為后期的綜合實(shí)訓(xùn)和畢業(yè)設(shè)計(jì)打下良好的基礎(chǔ)。本課程選擇“學(xué)生成績管理系統(tǒng)”項(xiàng)目作為整個(gè)教學(xué)的案例項(xiàng)目,將該項(xiàng)目進(jìn)行模塊化分解,根據(jù)學(xué)生的知識(shí)基礎(chǔ)和接受能力,并結(jié)合該課程的教學(xué)目標(biāo)逐步展開教學(xué),將《C語言程序設(shè)計(jì)》這門課程的知識(shí)點(diǎn)融合到該項(xiàng)目的各個(gè)模塊中,在完成項(xiàng)目的過程中,必須掌握以下知識(shí):文件的建立、打開、讀、寫等操作;系統(tǒng)的組織包含數(shù)據(jù)輸入、修改、查詢、統(tǒng)計(jì)、輸出等功能,函數(shù)的調(diào)用;數(shù)據(jù)內(nèi)容的組織涉及數(shù)組、結(jié)構(gòu)體、指針及對(duì)它們的操作等。該項(xiàng)目貼近學(xué)生生活,學(xué)生容易理解、且規(guī)模適中,又具有一定的實(shí)用性,能夠較好的引起學(xué)生的興趣。學(xué)生開始編寫單一的簡單程序?qū)崿F(xiàn)添加記錄、查詢、排序、統(tǒng)計(jì)等功能,到學(xué)習(xí)到后期的函數(shù)、結(jié)構(gòu)和指針等知識(shí)時(shí),便可以對(duì)早期開發(fā)的各功能模塊進(jìn)行補(bǔ)充和完善,逐步完成學(xué)生成績管理系統(tǒng)。
筆者以用C語言開發(fā)的一個(gè)小型的“學(xué)生成績管理系統(tǒng)”程序?yàn)榘咐?,將C語言程序設(shè)計(jì)的全部知識(shí)點(diǎn)串聯(lián)起來。通過該項(xiàng)目驅(qū)動(dòng),將程序設(shè)計(jì)中所涉及的數(shù)據(jù)類型與各種運(yùn)算、程序控制結(jié)構(gòu)、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體、文件等的內(nèi)容分配到各個(gè)章節(jié)中詳細(xì)介紹,并逐步實(shí)現(xiàn)全部系統(tǒng)功能。使讀者對(duì)C語言程序設(shè)計(jì)的過程與所涉及知識(shí)有一個(gè)清晰的理解,力求理論與實(shí)踐相結(jié)合。這里先介紹“學(xué)生成績管理系統(tǒng)”所要實(shí)現(xiàn)的基本功能以及相應(yīng)的功能模塊劃分。
本系統(tǒng)需要實(shí)現(xiàn)的功能包括:學(xué)生信息的輸入與輸出以及學(xué)生信息的查詢、修改、插入和刪除,學(xué)生成績總分和平均值的計(jì)算以及學(xué)生成績的排序等。
項(xiàng)目采用模塊化程序設(shè)計(jì)方法,所謂的模塊化程序設(shè)計(jì)方法是指把程序設(shè)計(jì)成多個(gè)模塊,每個(gè)模塊只實(shí)現(xiàn)比較單一的功能即為一個(gè)子系統(tǒng)。子系統(tǒng)又可細(xì)分為幾個(gè)下一級(jí)子系統(tǒng),逐層分解,最末層為實(shí)現(xiàn)具體功能的模塊[2]。這些功能模塊便組成了整個(gè)的“學(xué)生成績管理系統(tǒng)”,頂層模塊由信息輸入模塊、信息輸出模塊、信息查詢模塊、信息修改模塊、插入修改模塊、刪除記錄模塊、計(jì)算成績模塊和排序模塊組成。其中信息查詢模塊又分為三個(gè)子模塊,分別為按姓名查詢、按學(xué)號(hào)查詢和按院系查詢。計(jì)算成績模塊也分為三個(gè)子模塊,分別為計(jì)算學(xué)生總成績、計(jì)算學(xué)生平均成績和計(jì)算課程平均成績。排序模塊分為按學(xué)號(hào)排序和按成績排序兩個(gè)子模塊。模塊化的設(shè)計(jì)方法使程序結(jié)構(gòu)更清晰,方便程序的組織,符合“自頂向下,逐步細(xì)化”的程序設(shè)計(jì)思路。每個(gè)模塊都可以獨(dú)立設(shè)計(jì),方便實(shí)現(xiàn)大程序,也有利于多人合作進(jìn)行程序開發(fā)。
本課程的第二章講解的是數(shù)據(jù)類型、運(yùn)算符與表達(dá)式的有關(guān)知識(shí)。在本項(xiàng)目中,就需要使用本章知識(shí)對(duì)學(xué)生的姓名、學(xué)號(hào)、年齡、性別、班級(jí)、各科成績等各種類型的數(shù)據(jù)進(jìn)行存儲(chǔ)和處理。
第三章介紹的程序控制結(jié)構(gòu)。在項(xiàng)目的設(shè)計(jì)中,運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)“自頂向下,逐步求精”思想方法,對(duì)系統(tǒng)中的每個(gè)子模塊都可由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖。
第四章介紹函數(shù)與預(yù)處理。在項(xiàng)目的設(shè)計(jì)中,可對(duì)項(xiàng)目中的子模塊分別進(jìn)行函數(shù)設(shè)計(jì),按要求進(jìn)行詳細(xì)設(shè)計(jì),具體實(shí)現(xiàn)各自的功能
第五章介紹數(shù)組的概念及應(yīng)用。在項(xiàng)目的設(shè)計(jì)中,是對(duì)一批學(xué)生的信息進(jìn)行管理,存儲(chǔ)和處理這些相關(guān)信息可以考慮用數(shù)組。
第六章介紹指針的相關(guān)知識(shí),為第七章中的鏈表打好基礎(chǔ)。
第七章介紹結(jié)構(gòu)體、共用體的概念及應(yīng)用。項(xiàng)目的設(shè)計(jì)中,由于每個(gè)學(xué)生的信息如學(xué)生姓名、學(xué)號(hào)、年齡、性別、所在班級(jí)、各科成績等,是相互關(guān)聯(lián)的有著其內(nèi)在聯(lián)系數(shù)據(jù)項(xiàng)。因此可定義一個(gè)結(jié)構(gòu)體將這些信息合為一個(gè)整體,并各數(shù)據(jù)項(xiàng)作為該結(jié)構(gòu)體的成員。
第八章介紹文件的常用操作。在項(xiàng)目的設(shè)計(jì)中有七個(gè)功能模塊函數(shù)在處理信息時(shí)都涉及對(duì)文件的打開、文件的讀或?qū)懠瓣P(guān)閉等操作。
學(xué)生在項(xiàng)目驅(qū)動(dòng)的教學(xué)過程中,理解和掌握本課程要求的知識(shí)和技能,真切體驗(yàn)到了實(shí)際項(xiàng)目開發(fā)過程的艱辛與樂趣,培養(yǎng)了學(xué)生分析問題和解決問題的能力。改變了傳統(tǒng)的以教師為中心的教學(xué)方法,轉(zhuǎn)變?yōu)橐詫W(xué)生和實(shí)踐能力為中心。選取一個(gè)可以貫穿本課程主要內(nèi)容的項(xiàng)目,使之在教學(xué)過程中逐漸完善。使學(xué)生在學(xué)習(xí)本課程時(shí),有一個(gè)完整的、適中的、具體的項(xiàng)目作為知識(shí)應(yīng)用的載體,避免學(xué)習(xí)只停留在抽象枯燥的理論層面[3]。項(xiàng)目化教學(xué)能極大地激發(fā)學(xué)生學(xué)習(xí)興趣,提高學(xué)生的專業(yè)素質(zhì)和綜合能力,能夠取得良好的教學(xué)效果。
[1]顧明.項(xiàng)目教學(xué)法在軟件工程教學(xué)中的嘗試.計(jì)算機(jī)時(shí)代[M],2007.11
[2]蔣慶斌,徐國慶著.基于工作任務(wù)的職業(yè)教育項(xiàng)目課程研究[J].職業(yè)技術(shù)教育,2005(22)
[3]黃林國,凌代紅,張麗君.高職計(jì)算機(jī)應(yīng)用基礎(chǔ)的教學(xué)改革與實(shí)驗(yàn)創(chuàng)新[J].計(jì)算機(jī)教育,2007(18):111~112
10.3969/j.issn.1001-8972.2012.06.096
李紅葉(1983- )女,籍貫(山東省濟(jì)南市)、山東圣翰財(cái)貿(mào)職業(yè)學(xué)院、研究生、碩士、研究方向:H.264視頻編解碼技術(shù)。