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