張白+吳國(guó)強(qiáng)+韋海成+肖明霞
摘 要 基于CDIO教育模式,構(gòu)建項(xiàng)目驅(qū)動(dòng)與任務(wù)驅(qū)動(dòng)相結(jié)合的C語(yǔ)言教學(xué)方法,以綜合項(xiàng)目為總體目標(biāo),以語(yǔ)法知識(shí)為主線,通過(guò)函數(shù)封裝教學(xué)過(guò)程成果,通過(guò)綜合項(xiàng)目集成學(xué)生教學(xué)過(guò)程成果,提高學(xué)生學(xué)習(xí)成就感。并以數(shù)學(xué)分析軟件項(xiàng)目為例,闡述如何實(shí)施基于CDIO的C語(yǔ)言程序設(shè)計(jì)教學(xué)改革。
關(guān)鍵詞 CDIO;項(xiàng)目驅(qū)動(dòng);數(shù)學(xué)分析軟件項(xiàng)目;任務(wù)驅(qū)動(dòng)
中圖分類(lèi)號(hào):G642.0 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1671-489X(2017)22-0098-03
Research on Application of CDIO Mode in C Language Teaching//
ZHANG Bai, WU Guoqiang, WEI Haicheng, XIAO Mingxia
Abstract The CDIO teaching mode based on project driven is intro-
duced in this paper, C language teaching method combining with task
driven method and project driven method is constructed, it has a
comprehensive project as the overall goal, and grammar knowledge
as the main line, through the packaging function of teaching process
achievements, then integrated students teaching process achieve-ments into the comprehensive project, finally improved students learning achievement by these way. Taking the mathematical analy-sis software project as an example, this paper expounds how to im-plement the teaching reform of C programming language based on CDIO.
Key words CDIO; project driven; mathematical analysis software project; task driven
1 引言
C語(yǔ)言程序設(shè)計(jì)是測(cè)控技術(shù)與儀器專(zhuān)業(yè)的一門(mén)重要專(zhuān)業(yè)基礎(chǔ)課,是所有程序設(shè)計(jì)相關(guān)課程的基礎(chǔ),如單片機(jī)、智能儀器、測(cè)控電路等重要專(zhuān)業(yè)課程。當(dāng)前以數(shù)據(jù)類(lèi)型、運(yùn)算符、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等基本語(yǔ)法知識(shí)為邏輯的教學(xué)方法在C語(yǔ)言傳統(tǒng)教學(xué)中廣泛采用[1]。這種線性教學(xué)模式可以循序漸進(jìn)地把教學(xué)內(nèi)容傳授給學(xué)生,但是很難鍛煉學(xué)生的邏輯思維和解決實(shí)際問(wèn)題的能力。傳統(tǒng)以語(yǔ)法知識(shí)點(diǎn)為主的理論教學(xué),學(xué)生普遍反映知識(shí)點(diǎn)零散繁多,解決實(shí)際問(wèn)題困難。同時(shí),C語(yǔ)言常常采用筆試為主的考核方式,注重語(yǔ)法知識(shí)等記憶性?xún)?nèi)容的考核,卻忽視了對(duì)學(xué)生實(shí)踐編程能力的考核,造成很多學(xué)生會(huì)閱讀程序但不會(huì)編程[2]。因此,改進(jìn)C語(yǔ)言教學(xué)方式,提高學(xué)生學(xué)習(xí)興趣,促進(jìn)學(xué)生對(duì)理論知識(shí)的掌握與實(shí)際編程能力的提高,培養(yǎng)學(xué)生邏輯思維,成為任課教師的研究重點(diǎn)。
CDIO(Conceive,構(gòu)思;Design,設(shè)計(jì);Implement,實(shí)現(xiàn);Operate,運(yùn)作)作為一種新的工程教育理念,在教學(xué)過(guò)程中貫徹項(xiàng)目開(kāi)發(fā)的思路,旨在重點(diǎn)培養(yǎng)學(xué)生熟練運(yùn)用專(zhuān)業(yè)基礎(chǔ)知識(shí)的能力、工程分析和解決問(wèn)題的能力、團(tuán)隊(duì)協(xié)作和交流的能力[3]。借鑒CDIO工程教育模式,通過(guò)項(xiàng)目驅(qū)動(dòng)教學(xué)法與任務(wù)驅(qū)動(dòng)教學(xué)法的結(jié)合,宏觀教學(xué)過(guò)程采用項(xiàng)目驅(qū)動(dòng)教學(xué)方式,微觀教學(xué)過(guò)程采用任務(wù)驅(qū)動(dòng)教過(guò)方法,充分結(jié)合項(xiàng)目驅(qū)動(dòng)教學(xué)的明確目標(biāo)性與任務(wù)驅(qū)動(dòng)教學(xué)的清晰邏輯性的優(yōu)勢(shì),并對(duì)C語(yǔ)言程序設(shè)計(jì)課程教學(xué)內(nèi)容進(jìn)行精簡(jiǎn),期望調(diào)動(dòng)學(xué)生的學(xué)習(xí)熱情,提高學(xué)生的實(shí)際編程能力,達(dá)到C語(yǔ)言課程的教學(xué)目標(biāo)。
2 C語(yǔ)言教學(xué)現(xiàn)狀
學(xué)習(xí)興趣低 由于當(dāng)前JAVA、C++、C#等高級(jí)程序設(shè)計(jì)語(yǔ)言的流行與就業(yè)需求,學(xué)生對(duì)于學(xué)習(xí)C語(yǔ)言這類(lèi)基礎(chǔ)性編程語(yǔ)言的興趣越來(lái)越低。特別是學(xué)習(xí)主動(dòng)的學(xué)生,他們對(duì)于當(dāng)前軟件開(kāi)發(fā)中常見(jiàn)的快速界面開(kāi)發(fā)平臺(tái)的興趣遠(yuǎn)遠(yuǎn)高于C語(yǔ)言;而學(xué)習(xí)被動(dòng)的學(xué)生,枯燥的語(yǔ)法知識(shí)也難以提升他們的學(xué)習(xí)興趣。
學(xué)習(xí)主動(dòng)性差 當(dāng)前學(xué)生學(xué)習(xí)積極性偏低,以北方民族大學(xué)測(cè)控技術(shù)與儀器班級(jí)為例,課前預(yù)習(xí)與課后復(fù)習(xí)寥寥無(wú)幾;課前預(yù)習(xí)的空白是造成課堂教學(xué)效果削弱的主要原因之一,課后復(fù)習(xí)的缺失是造成學(xué)生語(yǔ)法知識(shí)薄弱的關(guān)鍵因素之一。
過(guò)度注重語(yǔ)法 C語(yǔ)言教學(xué)中以語(yǔ)法為中心開(kāi)展教學(xué),往往造成重語(yǔ)法而輕算法的問(wèn)題。筆者在以往的教學(xué)過(guò)程中發(fā)現(xiàn),部分學(xué)生雖然對(duì)語(yǔ)法基本掌握,但就是無(wú)法編寫(xiě)實(shí)際程序。這與英語(yǔ)教學(xué)中存在的單詞量足夠而無(wú)法實(shí)際應(yīng)用的問(wèn)題極其相似。事實(shí)證明,編程實(shí)踐是掌握語(yǔ)法細(xì)節(jié)的關(guān)鍵途徑。
注重卷面考試 現(xiàn)行C語(yǔ)言考試以筆試考試為主,忽略實(shí)際編程能力,這直接造成學(xué)生考試前突擊復(fù)習(xí)的現(xiàn)象。大量通過(guò)死記硬背的方式通過(guò)考試的學(xué)生基本不具備實(shí)際編程能力,這對(duì)于C語(yǔ)言課程以及基于C語(yǔ)言的其他專(zhuān)業(yè)課教學(xué)帶來(lái)極大隱患。
3 教學(xué)探索與實(shí)踐
分組教學(xué)模式 由于C語(yǔ)言程序設(shè)計(jì)的靈活性,同樣的問(wèn)題可以有多種多樣的實(shí)現(xiàn)方式,這就為開(kāi)展分組教學(xué)提供了良好的條件。將教學(xué)班級(jí)分為若干小組,通過(guò)小組討論交流的方式提高學(xué)生的參與度。為實(shí)現(xiàn)鍛煉同組學(xué)生的邏輯思維能力,要求每組學(xué)生設(shè)計(jì)不同的程序?qū)崿F(xiàn)任務(wù)要求,通過(guò)組成小組討論完成學(xué)習(xí)任務(wù),相互學(xué)習(xí)、相互監(jiān)督、相互借鑒。同時(shí),為避免學(xué)習(xí)能力弱的小組成員抄襲他人程序,允許無(wú)法獨(dú)立設(shè)計(jì)不同程序的學(xué)生在認(rèn)真分析小組其他學(xué)生的程序的基礎(chǔ)上,對(duì)程序進(jìn)行詳細(xì)注釋?zhuān)由钇淅斫?,提高學(xué)習(xí)質(zhì)量。endprint
項(xiàng)目驅(qū)動(dòng)教學(xué)模式 傳統(tǒng)以語(yǔ)法知識(shí)為重點(diǎn)的C語(yǔ)言教學(xué)過(guò)程以例題為依托,闡述相關(guān)算法,講授相關(guān)語(yǔ)法知識(shí)。但演示例題多且相對(duì)陳舊,例題之間關(guān)聯(lián)性差,往往都是獨(dú)立題目,難以實(shí)現(xiàn)代碼的復(fù)用,難以增加學(xué)生的學(xué)習(xí)成就感。同時(shí),當(dāng)前學(xué)生普遍存在的課前不預(yù)習(xí)、課后不復(fù)習(xí)的學(xué)習(xí)問(wèn)題,也造成傳統(tǒng)教學(xué)效果越來(lái)越差。因此,引入項(xiàng)目式教學(xué),打破以語(yǔ)法為中心的傳統(tǒng)教學(xué),設(shè)計(jì)綜合性項(xiàng)目,以任務(wù)涵蓋語(yǔ)法知識(shí)點(diǎn),以多任務(wù)函數(shù)構(gòu)建綜合性項(xiàng)目。
1)項(xiàng)目的選擇及任務(wù)設(shè)定,單純的項(xiàng)目式教學(xué)法難以適用于C語(yǔ)言教學(xué),過(guò)大的教學(xué)項(xiàng)目難度過(guò)大,學(xué)生難以接受,過(guò)小的教學(xué)項(xiàng)目又難以起到項(xiàng)目驅(qū)動(dòng)教學(xué)的目的。而任務(wù)驅(qū)動(dòng)教學(xué)適合通過(guò)小型項(xiàng)目或任務(wù)講授理論知識(shí)與編程技巧。因此,通過(guò)結(jié)合項(xiàng)目驅(qū)動(dòng)教學(xué)與任務(wù)驅(qū)動(dòng)教學(xué),宏觀上采取項(xiàng)目驅(qū)動(dòng),微觀上采取任務(wù)驅(qū)動(dòng),靈活開(kāi)展教學(xué)。由于C語(yǔ)言知識(shí)點(diǎn)散,一個(gè)項(xiàng)目難以覆蓋所有知識(shí)點(diǎn),為此,首先將教學(xué)內(nèi)容劃分為若干個(gè)項(xiàng)目子任務(wù),每個(gè)子任務(wù)覆蓋主要語(yǔ)法知識(shí)點(diǎn),并以函數(shù)實(shí)現(xiàn)封裝。
如循環(huán)結(jié)構(gòu)項(xiàng)目任務(wù),設(shè)計(jì)奇數(shù)和與偶數(shù)和的求取,要求分別采用while、do-while和for實(shí)現(xiàn)。在進(jìn)行理論教學(xué)時(shí),由教師先對(duì)任務(wù)進(jìn)行算法分析與設(shè)計(jì),在講解過(guò)程中引入若干問(wèn)題,以問(wèn)題引導(dǎo)學(xué)生思維,重點(diǎn)闡述算法邏輯思路,讓學(xué)生在上機(jī)實(shí)驗(yàn)中加深語(yǔ)法知識(shí)點(diǎn)認(rèn)識(shí)與建立算法邏輯思維。
C語(yǔ)言教學(xué)綜合項(xiàng)目設(shè)計(jì)為數(shù)學(xué)分析軟件項(xiàng)目,項(xiàng)目包含的功能函數(shù)由運(yùn)算功能、選擇功能、數(shù)據(jù)排序、數(shù)據(jù)求和、平均值計(jì)算、面積體積計(jì)算、矩陣計(jì)算等。學(xué)生在練習(xí)的過(guò)程中,不斷積累數(shù)學(xué)分析軟件的函數(shù),完善數(shù)學(xué)分析軟件功能,并在項(xiàng)目子任務(wù)綜合過(guò)程中加深對(duì)原有學(xué)習(xí)內(nèi)容的認(rèn)識(shí),增加學(xué)生的成就感。
2)項(xiàng)目的實(shí)施,項(xiàng)目以函數(shù)的形式予以實(shí)施,教師在教學(xué)過(guò)程中仍然按照現(xiàn)有教材的組織順序進(jìn)行教學(xué),但將每章內(nèi)容中的語(yǔ)法嵌入項(xiàng)目子任務(wù)中,例如:運(yùn)算功能通過(guò)函數(shù)封裝實(shí)現(xiàn)C語(yǔ)言支持的所有運(yùn)算符,要求不同小組實(shí)現(xiàn)不同運(yùn)算符的運(yùn)算;選擇功能實(shí)現(xiàn)不同輸入下選擇不同的功能,要求不同小組實(shí)現(xiàn)不同結(jié)構(gòu)的選擇;數(shù)據(jù)排序功能通過(guò)函數(shù)封裝實(shí)現(xiàn)數(shù)組數(shù)據(jù)的排序,要求不同小組實(shí)現(xiàn)不同循環(huán)結(jié)構(gòu)、不同數(shù)據(jù)結(jié)構(gòu)的排序;平均值計(jì)算功能通過(guò)函數(shù)封裝實(shí)現(xiàn)數(shù)組的平均值計(jì)算,要求不同小組實(shí)現(xiàn)不同數(shù)據(jù)類(lèi)型、不同數(shù)組結(jié)構(gòu)的平均值計(jì)算;面積體積計(jì)算功能通過(guò)函數(shù)封裝實(shí)現(xiàn)幾何體的面積與體積計(jì)算,要求不同小組實(shí)現(xiàn)不同幾何體的面積與體積計(jì)算;矩陣計(jì)算功能要求通過(guò)函數(shù)封裝實(shí)現(xiàn)矩陣的簡(jiǎn)單運(yùn)算,如矩陣的和、差、乘積、逆與行列式等。
項(xiàng)目采用開(kāi)放性任務(wù),對(duì)任務(wù)本身不做過(guò)多約束要求。同時(shí),小組可以提出自己的任務(wù)題目,充分發(fā)揮學(xué)生的創(chuàng)造性與主動(dòng)性,增強(qiáng)學(xué)生的學(xué)習(xí)效果。最終,學(xué)生可將教學(xué)過(guò)程中設(shè)計(jì)的各函數(shù)集成在一起,構(gòu)建一個(gè)綜合數(shù)學(xué)分析軟件,通過(guò)選擇結(jié)構(gòu)實(shí)現(xiàn)不同功能的調(diào)用,使得學(xué)生有充分的學(xué)習(xí)成就感。
任務(wù)驅(qū)動(dòng)教學(xué)模式 傳統(tǒng)的理論教學(xué)過(guò)程以教師講授為主,學(xué)生參與不積極,學(xué)習(xí)興趣不高,教學(xué)效果難以達(dá)到教學(xué)目標(biāo)[4]。特別是C語(yǔ)言程序設(shè)計(jì)涉及龐雜的語(yǔ)法規(guī)則與靈活多變的算法設(shè)計(jì),傳統(tǒng)的課堂教學(xué)更難提升學(xué)生的興趣與學(xué)習(xí)欲望[5]。因此,根據(jù)學(xué)生的學(xué)習(xí)基礎(chǔ),調(diào)整教學(xué)內(nèi)容與例題,以最精練的教學(xué)例題展現(xiàn)語(yǔ)法知識(shí)與算法設(shè)計(jì)思路,通過(guò)問(wèn)題引入知識(shí)點(diǎn),通過(guò)知識(shí)點(diǎn)構(gòu)建項(xiàng)目子任務(wù),并在小組實(shí)踐中運(yùn)用并鞏固理論知識(shí)點(diǎn)。
如選擇結(jié)構(gòu)中,首先提出在軟件設(shè)計(jì)中常常面臨二元選擇或者多元選擇的問(wèn)題,如教務(wù)系統(tǒng)登錄時(shí)的身份選擇就是典型的選擇結(jié)構(gòu)。課堂教學(xué)示例以項(xiàng)目驅(qū)動(dòng)教學(xué)采用的教學(xué)綜合項(xiàng)目為目標(biāo),各子功能的經(jīng)典結(jié)構(gòu)作為教學(xué)實(shí)例,引導(dǎo)學(xué)生使用語(yǔ)法知識(shí)點(diǎn)與設(shè)計(jì)算法。并且學(xué)生獨(dú)立實(shí)施子功能時(shí),進(jìn)一步練習(xí)語(yǔ)法知識(shí)點(diǎn),鍛煉邏輯思維能力與實(shí)踐應(yīng)用能力。對(duì)于學(xué)生遇到的瓶頸問(wèn)題,通過(guò)小組討論,發(fā)揮學(xué)生的積極性與創(chuàng)造性;對(duì)于小組無(wú)法解決的問(wèn)題,教師幫助梳理思路,學(xué)生負(fù)責(zé)編程并驗(yàn)證結(jié)果;對(duì)于學(xué)生共同存在的問(wèn)題,通過(guò)討論群或者課上有針對(duì)性的系統(tǒng)講解,加深學(xué)生算法設(shè)計(jì)與編程實(shí)現(xiàn)的能力。
4 考核方式
C語(yǔ)言程序設(shè)計(jì)注重學(xué)生的實(shí)踐編程能力,傳統(tǒng)的筆試評(píng)價(jià)難以充分反映學(xué)生的實(shí)踐編程能力。為此,本課程注重過(guò)程評(píng)價(jià),加強(qiáng)實(shí)踐能力考核,弱化筆試考試??己朔绞桨綍r(shí)成績(jī)10%、上機(jī)考試20%、實(shí)驗(yàn)成績(jī)20%和期末成績(jī)50%四部分。其中,平時(shí)成績(jī)包括上課出勤與作業(yè);上機(jī)考試與實(shí)驗(yàn)主要考核學(xué)生的實(shí)際編程與調(diào)試能力,而為了提高學(xué)生對(duì)于項(xiàng)目的重視程度,上機(jī)考試內(nèi)容來(lái)源于數(shù)學(xué)分析軟件項(xiàng)目中的子任務(wù),采用隨機(jī)抽取的方式進(jìn)行考核。
5 結(jié)論
本文借鑒CDIO工程教學(xué)模式,構(gòu)建項(xiàng)目驅(qū)動(dòng)與任務(wù)驅(qū)動(dòng)相結(jié)合的C語(yǔ)言教學(xué)方法,形成以綜合項(xiàng)目為總體目標(biāo),語(yǔ)法知識(shí)為主線,通過(guò)函數(shù)封裝教學(xué)過(guò)程成果,通過(guò)綜合項(xiàng)目集成學(xué)生教學(xué)過(guò)程成果,提高學(xué)生學(xué)習(xí)成就感。精簡(jiǎn)教學(xué)內(nèi)容,通過(guò)任務(wù)驅(qū)動(dòng)實(shí)現(xiàn)項(xiàng)目子任務(wù)的內(nèi)容,通過(guò)綜合教學(xué)項(xiàng)目提升學(xué)生學(xué)習(xí)的成就感,梳理繁多的語(yǔ)法知識(shí)點(diǎn),通過(guò)開(kāi)放的任務(wù)要求激發(fā)學(xué)生的創(chuàng)造性和積極性。筆者通過(guò)這些教學(xué)方法和評(píng)價(jià)方法的改進(jìn),學(xué)生學(xué)習(xí)的積極性有顯著改觀,實(shí)踐編程能力較往屆有明顯增強(qiáng),綜合應(yīng)用知識(shí)的能力得到了提升。
參考文獻(xiàn)
[1]張蕾.基于項(xiàng)目化教學(xué)的“C語(yǔ)言程序設(shè)計(jì)”課程改革[J].計(jì)算機(jī)教育,2013(2):17-20.
[2]于延,周?chē)?guó)輝,李紅宇,等.CDIO模式下C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)改革[J].計(jì)算機(jī)教育,2016(2):122-126.
[3]姜大志,孫浩軍.基于CDIO的主動(dòng)式項(xiàng)目驅(qū)動(dòng)學(xué)習(xí)方法研究:以Java類(lèi)課程教學(xué)改革為例[J].高等工程教育研究,2012(4):159-164.
[4]張白,周春艷.CDIO模式在智能儀器教學(xué)中的應(yīng)用研究[J].中國(guó)教育技術(shù)裝備,2015(22):92-93,97.
[5]王重英.C語(yǔ)言程序設(shè)計(jì)教學(xué)改革與實(shí)踐[J].軟件,2012(5):111-112,118.endprint