摘要:針對C/C++語言實驗教學中“重結果輕過程,重驗證輕應用,重模仿輕創(chuàng)新”的問題,提出從解決復雜的工程問題出發(fā),構建多層次、階梯型與交叉式的程序設計類實驗教學體系,說明實驗教學改革的目標及措施,并從實驗形式、實驗方式和實驗內容3方面闡述具體實施過程。
關鍵詞:程序設計語言課程;實驗教學;創(chuàng)新人才;應用能力
0.引言
創(chuàng)新型人才是建設創(chuàng)新型國家的力量和重要依托,黨的十八大對創(chuàng)新創(chuàng)業(yè)人才培養(yǎng)做出重要部署,國務院對加強創(chuàng)新教育提出明確要求。我國高等教育法也指出:高等教育的任務是培養(yǎng)具有創(chuàng)新精神和實踐能力的高級專門人才。實驗教學是培養(yǎng)學生應用能力和創(chuàng)新能力的重要環(huán)節(jié),尤其對實踐性較強的軟件工程專業(yè),應通過工程實踐開拓學生的創(chuàng)新思維,在實際應用中提升創(chuàng)新意識和技能。
程序設計語言類課程是計算機相關專業(yè)的核心基礎課,而C/C++通常是理工科學生接觸的第一門計算機高級語言,對于提升低年級本科生應用創(chuàng)新能力至關重要。傳統(tǒng)程序設計語言類課程實驗教學往往重結果輕過程,重驗證輕應用,重模仿輕創(chuàng)新。為探索面向應用創(chuàng)新能力培養(yǎng)的實驗教學模式,在C/C++語言課程中開展立體式實驗教學。
1.實驗教學中的創(chuàng)新能力培養(yǎng)
創(chuàng)新能力是個體運用一切已知信息,包括已有的知識和經驗等,產生某種獨特、新穎、有社會或個人價值產品的能力;創(chuàng)新人才指具有創(chuàng)新意識、創(chuàng)新精神、創(chuàng)新思維、創(chuàng)新能力并取得創(chuàng)新成果的人才,因此,創(chuàng)新教育應以提升學生的創(chuàng)新能力為目標,主要從培養(yǎng)創(chuàng)新意識、創(chuàng)新思維和創(chuàng)新技能3個方面開展。
實驗教學促使學生通過實踐理解并應用知識,相比于理論授課,更有利于多層次多角度地培養(yǎng)創(chuàng)新能力。在實踐中激勵創(chuàng)新意識,即激勵推崇創(chuàng)新、求新求變、積極探索的精神,能夠有效激發(fā)創(chuàng)新欲望;在應用中培養(yǎng)創(chuàng)新思維,鼓勵打破思維定勢,采用批判地視角,提出與眾不同的設想或有新意的解決方案;通過工程訓練實驗提升創(chuàng)新技能,加強獨立獲取知識和運用知識的能力、高效的信息搜集和處理能力、發(fā)現分析和解決問題的能力,以及運用創(chuàng)新思維及方法將知識轉化為成果的能力。
2.實驗教學中的問題及原因
2.1實驗內容缺乏系統(tǒng)性與實用性
傳統(tǒng)課堂教學通?;谟嬎銠C高級語言的語法體系展開,實驗內容往往是驗證某章節(jié)學習的語法規(guī)則為主。這種教學模式忽略知識之間的關聯,不利于建立完整的知識體系,因此學生容易迷失在繁雜的語法點中。實驗題目缺少工程應用背景,一般利用某個經典算法解決數學問題或實現簡單的事務管理,例如用冒泡排序算法處理學生成績。這種編程訓練側重鞏固語法和算法實現,學生難以將知識映射到實際問題,不利于構建計算思維與創(chuàng)新思維。
2.2實驗形式缺乏層次與梯度
此類課程通常為大一學生開設,考慮到授課對象計算機基礎和自學能力較弱,且缺乏相關工程訓練,因此實驗的類型通常以驗證性實驗和程序設計性實驗為主,以簡單的小組項目開發(fā)為輔。對于簡單的驗證性實驗,學生一般通過機械地模仿教材案例學習語法,缺乏創(chuàng)新學習的動機與環(huán)境。各個章節(jié)的設計性實驗題目都較為獨立,難以將知識點有機地融合起來。綜合性實驗一般在課程設計中進行,學生無法在學習過程中體會應用知識的成就感,錯失了提高學習熱情的最佳時機。這種實驗體系中實驗形式相對獨立且缺乏層次感,各種實驗題目的設置缺乏系統(tǒng)性與關聯性,不利于通過實際應用激發(fā)學生的創(chuàng)新意識。
2.3實驗過程缺乏創(chuàng)新激勵
在實驗教學環(huán)節(jié)中,教師往往忽視設計思路和創(chuàng)新意識的引導,很少有針對性地進行創(chuàng)新技能訓練。當前高校師生比過低,這一客觀因素導致深入推行創(chuàng)新教育面臨嚴峻挑戰(zhàn)。對于大班制授課模式,教師每次指導百余學生上機操作,很難有針對性地進行創(chuàng)新思維的啟發(fā)。實驗題目難易的設置通常沒有明顯的區(qū)分度,對于有一定編程基礎和計算機基礎薄弱的學生,完成實驗的要求基本一致。此外,驗證實驗結果一般要求程序滿足功能性需求即可,而忽略引導學生深入分析問題,從而進一步優(yōu)化程序。這種實驗過程與考核標準導致學生以完成代碼為目標,缺乏深入的思考和創(chuàng)新訓練,不利于創(chuàng)新能力的培養(yǎng)。
3.實驗教學改革的目標及措施
根據2015年5月國務院辦公廳印發(fā)的《關于深化高等學校創(chuàng)新創(chuàng)業(yè)教育改革的實施意見》,我院積極推進程序設計類課程的應用創(chuàng)新能力培養(yǎng),從教學理念、教學模式及教學方法進行全方位的改革。
(1)革新教學理念,貫徹“應用激勵創(chuàng)新”的培養(yǎng)方針。摒棄語法導向的教學,構建“多學科融合,面向創(chuàng)新應用”的實驗教學體系。基于跨院系跨專業(yè)交叉培養(yǎng)的新機制,實驗內容可來源于各個學科的具體實際問題,鼓勵融合其他學科的思維方式或技術手段解決問題。實驗教學應以運用程序設計思想解決工程及科學問題為著眼點,不僅著力提升學生的編程技能,還需注重培養(yǎng)學生的逆向思維、批判思維與創(chuàng)造性思維,鼓勵學生敢想、敢說和敢做。
(2)改革教學模式,豐富實驗教學的層次。全面完善教學體系與課程設置,打破軟件工程相關課程之間的壁壘,統(tǒng)籌規(guī)劃程序設計相關課程的知識體系。及時更新陳舊的教學內容,從實際工程項目或科研課題中提煉素材,建立可分解、可擴展、可重用的實驗教學案例庫,實施設計性實驗與綜合性實驗同步與異步相結合的教學模式。
(3)強化創(chuàng)新引導,健全激勵機制。采用小班授課形式,增強實驗指導力度,全面開展啟發(fā)式的討論教學,以激發(fā)創(chuàng)新精神和創(chuàng)新意識為宗旨,踐行“做中學”與“學中做”的自主學習模式。同時,全面提升教師創(chuàng)新教育水平,在實驗過程中結合學生特點因材施教,有針對性地進行創(chuàng)新意識的引導和創(chuàng)新技能的培訓。
4.實驗教學改革的實踐
為切實推進在程序設計類課程中實施創(chuàng)新教育,針對授課對象的特點及C/C++課程特點,從應用出發(fā)構建計算機高級語言的知識體系,精心設計教學案例,循序漸進地開展多層次的教學活動。
4.1多層次的實驗形式
在立體式的實驗體系中,多種實驗形式有機融合在共同的教學目標中,將驗證性實驗、設計性實驗及綜合性實驗統(tǒng)一在創(chuàng)新實驗框架下。將較為復雜的工程項目進行簡化,分解為幾個相關的案例,某些案例中可抽取若干主要問題,每個子問題實現時映射到相關知識點。在不同的教學階段分別解決這些子問題。同一案例可以在各種相關課程中使用,引導學生通過不同角度分析問題。
以在線游戲網站項目為例,將其簡化為單機版游戲的開發(fā),可分解為棋類游戲、牌類游戲和迷宮游戲等案例。在C課程中完成三連棋、貪吃蛇和漢諾塔等游戲的設計;而在C++課程中完成撲克牌、國際象棋和開心農場等游戲。棋類游戲分解方式如圖1所示。
教師在課程開始時介紹游戲網站開發(fā)的項目背景,將單機游戲設計作為綜合性實驗的目標。引導學生利用面向過程程序設計的思想分析游戲架構,將復雜問題分解成功能模塊,鼓勵學生從軟件設計者的角度思考問題。在設計性實驗中引入待解決的問題,啟發(fā)學生運用程序設計的方法實現某些功能。在講授c++語言時可再次分析該案例,引導學生體會面向對象的設計方法。這種項目-案例-問題三級驅動的實驗教學模式,不僅有助于培養(yǎng)學生的計算機思維方式,還能有效提升學習熱情并激發(fā)創(chuàng)新意識。
4.2階梯式的實驗方式
結合多層次的實驗形式,借鑒軟件工程中增量式的開發(fā)方式,在實驗教學中因材施教,針對學生特點設置實驗目標。對于剛接觸程序設計的初學者,教師引導從小型游戲人手由淺入深地剖析程序,使學生體會知識點的應用,熟練運用c或c++語言實現經典算法,實驗目標是有效提升編程能力。在此基礎上,引導學生掌握程序設計的思路和方法,合理規(guī)劃程序,從時空效率、代碼規(guī)范性及創(chuàng)新性功能等角度優(yōu)化代碼,著力培養(yǎng)學生的工程實踐能力。對于學有余力的學生,鼓勵通過自主學習實現在線游戲的開發(fā)系統(tǒng),從游戲可玩性、人機交互方式以及系統(tǒng)負載等方面完善系統(tǒng),最終開發(fā)設計具有實用價值的網絡游戲。這種遞進式的實驗方式可以激勵創(chuàng)新精神,在工程應用中培養(yǎng)學生的創(chuàng)新思維,切實提高創(chuàng)新技能。
4.3交叉式的實驗內容
面向創(chuàng)新人才培養(yǎng)的實驗教學,要求實驗內容來源于工程項目或科研課題,引導學生利用程序思路和方法解決實際工程或科學問題。為了進一步完成創(chuàng)新實驗的要求,還需結合數據結構、項目管理、網絡通信以及相關計算機科學知識,通過項目實訓將各門課程知識有機融合,有助于學生建立完整的計算機知識體系。此外,將交叉學科項目引入實驗教學中,鼓勵軟件工程專業(yè)的學生更多地了解其他行業(yè)的專業(yè)知識,實驗題目涉及機械工程、信號處理、數學分析、交通運輸等多學科的工程問題,培養(yǎng)多維角度思考問題、多學科啟發(fā)下發(fā)現問題和解決問題的綜合能力。這種多學科交叉式實驗教學可開拓創(chuàng)新思維,能夠有效激發(fā)求知欲望和探索精神,對于應用型復合人才的培養(yǎng)具有積極作用。
5.結語
為培養(yǎng)能夠解決實際工程問題的創(chuàng)新實用性人才,在程序設計語言類實驗課程中進行面向創(chuàng)新教育的實驗教學改革十分必要。立體式創(chuàng)新實驗教學模式倡導知識和實踐的無縫結合,注重解決實際問題的綜合能力培養(yǎng);以興趣驅動學習,注重學生創(chuàng)新意識的提升與能力的挖掘。3年的教學實踐表明,應用多層次、階梯式與交叉式的實驗體系,使學習目標更加明確,對提升學習積極性和激發(fā)創(chuàng)新精神起到一定作用。近年來軟件學院參加國際ACM-ICPC大賽、MCM-ICM比賽及各級軟件設計比賽的人數逐年遞增,更多的低年級本科生積極加入大學生創(chuàng)新項目、教師的橫縱課題及科研團隊中。然而,要進一步提升創(chuàng)新應用人才培養(yǎng)的質量,還需深入全面地進行相關課程教學改革,從完善多學科啟發(fā)的案例庫、推進在線自主教學平臺建設及加強教師創(chuàng)新教學能力等方面進行探索。