李政偉,葛欣,席景科,聶茹
(中國礦業(yè)大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,徐州221116)
工程教育專業(yè)認(rèn)證是實現(xiàn)工程教育和工程師資格國際互認(rèn)的重要基礎(chǔ)?!禖++程序設(shè)計》是計算機(jī)相關(guān)專業(yè)的重要基礎(chǔ)課。依照工程教育專業(yè)認(rèn)證的“以學(xué)生為中心,以產(chǎn)出為導(dǎo)向”的人才培養(yǎng)理念,本課程不僅是對C++語言的學(xué)習(xí),也是對學(xué)生軟件開發(fā)的啟蒙和初步訓(xùn)練,對于培養(yǎng)學(xué)生靈活運(yùn)用所學(xué)知識,夯實軟件開發(fā)基礎(chǔ)非常關(guān)鍵。學(xué)生對本課程的學(xué)習(xí)質(zhì)量,將直接影響后續(xù)專業(yè)課程的學(xué)習(xí),在很大程度上影響著計算機(jī)類專業(yè)人才的培養(yǎng)質(zhì)量。在工程教育專業(yè)認(rèn)證背景下,筆者結(jié)合近年的教學(xué)實踐,在吸取兄弟院校卓有成效的教學(xué)改革基礎(chǔ)上,從優(yōu)化和完善教學(xué)內(nèi)容,拓展第二課堂,強(qiáng)化實踐動手能力,分階段分層次對學(xué)生的學(xué)習(xí)效果進(jìn)行過程化考核等多個方面進(jìn)行探討與解析,提出適應(yīng)于工程教育專業(yè)認(rèn)證要求的《C++程序設(shè)計》課程的教學(xué)改革措施,以期提升課程教學(xué)質(zhì)量。
作為“第一門”高校計算機(jī)相關(guān)專業(yè)的基礎(chǔ)必修課,新生對該課程的期望值很高,然而實際上,不僅學(xué)生普遍反映“難學(xué)”,教師也反映“難教”。筆者多年來一直承擔(dān)《C++程序設(shè)計》的教學(xué)工作,通過梳理面向復(fù)雜工程問題的工程教育要求,發(fā)現(xiàn)現(xiàn)有的《C++程序設(shè)計》教學(xué)主要存在以下問題:
(1)繁雜的語法規(guī)則使初學(xué)者望而生畏
和常規(guī)的程序設(shè)計語言相比,C++語言的語法規(guī)則繁雜,甚至某些規(guī)則還與硬件有關(guān)。對于剛剛步入校門的大一新生而言,理解并掌握這些規(guī)則存在較大困難。學(xué)生普遍反映概念繁多,規(guī)則復(fù)雜,難以實際運(yùn)用。相當(dāng)一部分學(xué)生被紛繁復(fù)雜的語法所嚇倒,對程序設(shè)計產(chǎn)生畏難情緒,進(jìn)而影響到后續(xù)課程的學(xué)習(xí)。
(2)實踐教學(xué)方法滯后
目前的實踐教學(xué)停留在對課堂知識點(diǎn)、教材例題的膚淺驗證上,實驗設(shè)計枯燥無味。程序設(shè)計教學(xué)方法與培養(yǎng)目標(biāo)嚴(yán)重脫節(jié),不僅削弱了學(xué)生的學(xué)習(xí)積極性,而且程序設(shè)計思維得不到有效鍛煉,不利于創(chuàng)新型人才的工程實踐能力的培養(yǎng)。
(3)對專業(yè)能力的培養(yǎng)重視不夠
教師在教學(xué)過程中太過循規(guī)蹈矩,過于注重語法、語義的繁文縟節(jié)。學(xué)生花了很大精力學(xué)習(xí)語法,卻仍然無法順利編程解決實際問題;忽視程序設(shè)計思維的引導(dǎo)和鍛煉,導(dǎo)致分析問題、解決問題的能力不高,很大程度上影響了學(xué)生專業(yè)能力的培養(yǎng)。
(4)考核方式重理論輕實踐
目前,該課程的考核方式分為平時成績和期末成績兩部分。這類形式單調(diào)的考核方式,忽視了動手操作與日常應(yīng)用能力的考核,導(dǎo)致“高能低分、低能高分”的不合理考核現(xiàn)狀,無法客觀公平地評價學(xué)生的實際學(xué)習(xí)情況。
課題組結(jié)合多年的教學(xué)實踐和課程特點(diǎn),以課程示例庫為依托,以工程教育專業(yè)認(rèn)證標(biāo)準(zhǔn)、規(guī)范為基礎(chǔ),以“學(xué)生為中心”,不斷優(yōu)化和完善教學(xué)內(nèi)容,拓展第二課堂,強(qiáng)化實踐動手能力,分階段分層次對學(xué)生的學(xué)習(xí)效果進(jìn)行過程化考核,構(gòu)建出符合工程教育專業(yè)認(rèn)證要求的《C++程序設(shè)計》教學(xué)體系和教學(xué)新模式。面向工程教育專業(yè)認(rèn)證的課程改革實施方案流程圖如圖1 所示。
圖1 面向工程教育專業(yè)認(rèn)證的課程改革實施方案流程圖
基于工程教育專業(yè)認(rèn)證以“學(xué)生為中心”理念,始終將學(xué)生放在課程教學(xué)工作的首位,始終關(guān)注學(xué)生的學(xué)習(xí)效果,針對性地調(diào)整授課內(nèi)容、節(jié)奏、方式等。打破固定的章節(jié)結(jié)構(gòu),重新梳理和優(yōu)化整合《C++程序設(shè)計》教學(xué)內(nèi)容。廣泛收集、整理教學(xué)示例和項目,構(gòu)建符合工程教育專業(yè)認(rèn)證要求的教學(xué)示例庫,針對性引導(dǎo)學(xué)生在編程實踐中進(jìn)行強(qiáng)化訓(xùn)練?!禖++程序設(shè)計》課程的部分知識模塊及示例展示如圖2 所示。
圖2《C++程序設(shè)計》課程部分知識模塊及示例
示例的目標(biāo)不是針對單個或幾個知識點(diǎn)的簡單展示,而是應(yīng)該體現(xiàn)實際應(yīng)用場景、具有啟示和示范意義。C++課程面向?qū)ο蟛糠稚婕邦惡蛯ο蟮幕靖拍睢?gòu)造函數(shù),析構(gòu)函數(shù),靜態(tài)成員、友元函數(shù)、繼承、多態(tài)性、文件操作、運(yùn)算符重載等知識點(diǎn)。根據(jù)項目的難易程度,可選取“校園人員管理系統(tǒng)”、“飛機(jī)訂票管理系統(tǒng)”、“坦克大戰(zhàn)”、“貪食蛇”等學(xué)生較為熟悉的場景示例供課堂講解和課下分析使用。
此外,可以根據(jù)需要把一個實際項目分解為若干個子項目,將知識點(diǎn)融入到各個子項目中,實現(xiàn)教學(xué)內(nèi)容的循序漸進(jìn)。以“校園人員管理系統(tǒng)”為例,其常見模塊包括人員管理、學(xué)生管理、教師管理、教學(xué)管理等。在設(shè)計學(xué)生類和教師類時可以涵蓋面向?qū)ο蟮幕靖拍?、類和對象定義、繼承與派生等知識點(diǎn)。校園人員管理系統(tǒng)設(shè)計與C++課程知識點(diǎn)對應(yīng)關(guān)系如表1 所示。
表1 項目示例劃分
實驗教學(xué)是工程應(yīng)用型人才培養(yǎng)的重要內(nèi)容。依照“循序漸進(jìn)”的核心思想,構(gòu)建為兩層“階梯式”C++實驗教學(xué)體系(如圖3 所示)。實驗內(nèi)容從模仿型實驗、基本型實驗、提高型實驗、逐步遞進(jìn)過渡到綜合型實驗。
圖3 增量式項目C++實驗教學(xué)體系(部分)
實驗項目不再僅僅局限于驗證型實驗,而是設(shè)計為涵蓋基礎(chǔ)和應(yīng)用的增量式實驗教學(xué)體系。其中,基礎(chǔ)層注重基本知識,用以幫助學(xué)生掌握C++基本語法和理解面向過程的程序設(shè)計方法?;A(chǔ)層實驗又被細(xì)分為模仿型程序、基本型和提高型實驗。學(xué)生通過基礎(chǔ)層實驗項目鞏固所學(xué)知識點(diǎn),有助于按照教學(xué)節(jié)奏安排學(xué)生循序漸進(jìn)開展編程實踐。
應(yīng)用層著重系統(tǒng)設(shè)計及軟件開發(fā)能力訓(xùn)練,強(qiáng)調(diào)課程知識點(diǎn)的前后聯(lián)系和融會貫通。該層以綜合型實驗項目為主,結(jié)合實際工程應(yīng)用設(shè)計并實現(xiàn)出相應(yīng)實用型信息系統(tǒng)。相對于基本型實驗而言,其綜合性、復(fù)雜性和應(yīng)用性更高,有助于引導(dǎo)學(xué)生加強(qiáng)對各個知識點(diǎn)的融會貫通,提高其應(yīng)用系統(tǒng)開發(fā)的綜合能力。圖4是以圖書信息管理系統(tǒng)為例的增量式項目實踐說明。該系統(tǒng)根據(jù)課程內(nèi)容的不斷深入,逐級遞進(jìn)設(shè)計出六個版本,將新知識點(diǎn)漸進(jìn)融入到每一個版本中。前一個版本是后一個版本的基礎(chǔ),而后一個版本是前一個版本的繼承和拓展。通過上述六個版本的增量式訓(xùn)練,學(xué)生在循序漸進(jìn)學(xué)習(xí)新知識的同時,也實現(xiàn)了對舊知識的不斷鞏固和強(qiáng)化。在實際操作中,教師可以設(shè)計基于不同應(yīng)用背景不同類型的綜合型實驗項目,鼓勵并鍛煉學(xué)生的分工協(xié)作能力。
圖4 增量式圖書信息管理系統(tǒng)
一方面組織教師參與指導(dǎo)學(xué)生第二課堂活動,另一方面鼓勵學(xué)生參與教師的科研項目,撰寫并發(fā)表科研論文;推動、引導(dǎo)學(xué)生參加學(xué)科競賽(例如藍(lán)橋杯軟件設(shè)計大賽、ACM/ICPC 國際大學(xué)生程序設(shè)計競賽等),不斷強(qiáng)化學(xué)生的分析與解決問題的能力、進(jìn)一步激發(fā)學(xué)生的創(chuàng)新意識和編程能力;采用“以賽促學(xué),以學(xué)促教”的人才培養(yǎng)方式;為學(xué)生動手實踐能力的發(fā)揮提供固定平臺和場所,并安排專任教師進(jìn)行現(xiàn)場輔導(dǎo)。
為了體現(xiàn)考核過程的客觀公正性,采用分階段機(jī)考取代一考定終身的傳統(tǒng)評價方式(采用周考和期末考試相結(jié)合的方式,并已經(jīng)推廣至一周多考)。按照兩層實踐教學(xué)體系設(shè)置考題,側(cè)重編程能力考核。當(dāng)學(xué)生完成某一階段的實踐內(nèi)容之后,就能通過機(jī)考及時評價對該階段知識點(diǎn)的掌握情況,實現(xiàn)分階段完成知識點(diǎn)的學(xué)習(xí)和考核任務(wù)。這樣不僅提高了成績評定的透明度,同時也有助于學(xué)生了解自身學(xué)習(xí)情況,及時調(diào)整學(xué)習(xí)方向,提高自主學(xué)習(xí)效果。對于平時成績的考核,將改進(jìn)以往局限于日常作業(yè)和出勤的簡單考核模式,而是分階段記錄并評價學(xué)生的日常表現(xiàn),并將其作為成績評定的主要依據(jù)。另外,課題組開發(fā)了基于個性化畫像的考試評價軟件,針對每個學(xué)生的不同答題情況,自動生成其對相應(yīng)知識點(diǎn)的掌握情況,以便于教師開展因材施教和個性化輔導(dǎo)。
總之,以工程教育專業(yè)認(rèn)證標(biāo)準(zhǔn)、規(guī)范為基礎(chǔ),以示例庫為依托,不斷優(yōu)化和完善《C++程序設(shè)計》教學(xué)內(nèi)容,按照兩層實踐教學(xué)體系架構(gòu),分階段分層次對學(xué)生的學(xué)習(xí)效果進(jìn)行過程化考核,杜絕“高能低分、低能高分”現(xiàn)象發(fā)生。積極拓展第二課堂,強(qiáng)化學(xué)生的實踐動手能力,實現(xiàn)以編程能力培養(yǎng)為目標(biāo)的分階段考核,構(gòu)建符合工程教育專業(yè)認(rèn)證要求的《C++程序設(shè)計》的全新教學(xué)體系和教學(xué)模式。從實際的教學(xué)達(dá)成度來看,學(xué)生的學(xué)習(xí)積極性較以往明顯增高,在平時的上機(jī)實踐中,絕大部分學(xué)生能做到獨(dú)立分析和解決問題,而最后的考核結(jié)果統(tǒng)計也達(dá)到了預(yù)期目標(biāo)。