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