向志華,張莉敏
(廣東理工學院 信息技術學院,廣東 肇慶 526100)
“C++程序設計”不僅是應用型本科院校計算機科學與技術、軟件工程等專業的核心課程,也是后續“數據結構”“算法設計”等多門專業課程的基礎。其主要目的是培養學生計算機編程的基本技能以及良好的計算思維能力,在課程的教學過程中,任課教師不僅要注重對學生理論知識的傳授,更要加強對學生實際操作能力的鍛煉和培養。通過課程內的教學改革實施,讓學生更好地掌握“C++程序設計”的基礎理論知識和學習方法,通過課程內的教學實踐環節鞏固理論知識,培養學生良好的思想修養、工程職業道德規范、社會責任感和團隊協作精神,學會以面向對象的角度設計和開發小型應用程序。
現有的教學模式存在教學手段單一、內容繁雜、不能吸引學生興趣等現象,怎樣更新和改進傳統的教學模式,培養學生的學習主動性和計算思維等都是值得思考的問題。
傳統教學面向新業態程度不夠,新工科的提出是新業態發展的需要,緊密聯系產業發展,把新產業、新技術[1]融入課程教學,面向產業化和工程化改革課程教學。傳統教學過程中,教師通過語言講述和PowerPoint課件等教學工具來實現知識的傳授,主要以教師的主動講授和學生的被動接收為主。在這種“滿堂灌”的教學模式下,通常以教師為主體,學生是被動接收,難以提高學生的學習積極性。
在傳統實踐課程教學中,通常以課程單個驗證性實驗居多,所考查的課程知識點孤立,呈碎片化,缺乏連貫性和統一性,而綜合性、設計性、創新性實驗項目偏少。
通過多年的教學實踐發現,以往的考核方式往往較為傳統,忽視了學生的學習自主性,弱化了學生解決問題的能力,學生的職業道德、工程實踐和創新能力培養不足。“新工科”背景下對人才能力提出了多維度[2]和更全面的要求,傳統課程教學通常只是對課本知識進行考核,而對學生的實踐和創新能力、團隊協作、職業素養考核不足。
按照理實一體、課內外互補的指導思想,以項目為載體組織教學內容,通過課前自學、翻轉課堂等方式更好地培養學生主動學習能力,在實訓室和校外實訓基地完成所有實訓工作,更好地將“教、學、做”結合在一起,課程理論與實踐有效結合。
在高等院校計算機專業的課程體系中,“C++程序設計”是一門開設面非常廣泛的專業基礎課程,在進行知識講授的同時進行課程思政教育是必不可少的。教師教學必須分析學生特點,深入發掘課程蘊含的思政教育資源,促進知識傳授、能力培養與德育培養緊密結合。構建節點化、關聯化的知識體系[3],并結合應用型本科學生特點,科學設計凸顯前沿性、交叉性與綜合性的教材內容。
依據新工科人才培養理念與要求,以“學生為中心”,針對性地調整授課內容、節奏、方式等,構建符合新工科專業認證的項目式教學示例庫[4],建立SPOC在線教學課程,更好地進行線上線下多元混合教學。
學生程序設計基礎薄弱,缺乏計算思維,對各類考證、競賽內容掌握不夠深入。本次教學內容的修訂,除本課程所需各種練習題、測試題外,引入了行業新技術題目、行業面試考題、往年考研題、軟件考證題以及軟件競賽題,提高學生參加各類考證的通過率及獲獎率。
隨著新工科時代的到來,課程考核方式需要一定的變化,才能進一步提高學生的技術應用能力,充分發揮學生的創造能力。因此,在考核過程中,教師需要將考試評分與學生的形成性評價進行相應的結合,針對學生的發展情況,進行多方面的綜合考核。
以“C++程序設計”課程的地位和特點為依據,以新工科課程建設為目標導向,實施新工科理念下的課程改革。通過構建以教師為主導、學生為參與主體的“C++程序設計”項目模塊化課程體系,有效地培養學生主動學習的興趣和熱情,增強學生的綜合設計和創新應用能力。具體設計思路如圖1所示。

圖1 新工科背景下“C++程序設計”課程教學改革主要思路
3.2.1 開發、修訂教學大綱
對珠三角區域軟件行業的發展進行調研,與企業加強溝通,了解行業的新需求、新技術,修訂開發基于工作過程為導向的教學大綱。對本課程相應崗位的典型工作任務進行分析,結合職業證書要求和各類軟件大賽要求,修訂理論、實踐教學大綱及教學進度。
3.2.2 提高課程內容的整體創新程度
新工科背景下的人才需要具有較強的工程實踐和創新能力[5]。為了更好地提升學生思想素質和實踐創新能力,充分滲透課程思政教學理念,進行理論知識和實踐項目的融合,建立教學資源庫,主要包括教案、課件、實訓項目、試題庫等。并結合學生實踐情況和項目化案例,進一步修訂教材初稿并出版配套的理論教材和實踐教材。
“C++程序設計”課程包括面向過程程序設計和面向對象設計,面向對象是重難點內容,主要包含類和對象的基本概念、構造函數、析構函數、靜態成員、友元函數、繼承、多態性、文件操作、運算符重載等知識點。根據項目的難易程度,可選取“社區診所的簡單信息管理系統”“簡單汽車管理系統”“股票管理”“學生信息管理系統”等學生較為熟悉的示例供課堂講解和課下分析使用,建立“C++程序設計”項目化的課程體系,培養學生程序開發、算法設計及創新的能力。圖2為“C++程序設計”課程部分知識模塊及示例。

圖2 “C++程序設計”課程部分知識模塊及示例
3.2.3 教學改革實施過程
(1)教學設計滲透課程思政元素。
“C++程序設計”課程不僅需要培養學生的創新開拓精神,還要培養學生踏實刻苦的“工匠精神”、協調配合的團隊精神以及認真嚴謹的科研態度,培養學生解決實際問題的編程能力。教師可以通過企業生產實踐中的案例分析、貼近生活的類比、團隊合作的項目教學,更好地將思政教育融入專業課的教學過程。通過調試程序、糾錯培養學生養成嚴謹的科學作風。例如學習面向對象的思想時,可以以銀行客戶管理系統為例,通過層次化遞進教學,環環相扣深入講解,并將其貫穿各知識點進行教學,具體包括類和對象、數組類、類的組合、類的繼承、類的派生、多文件結構編程[6]等知識點,培養學生踏實認真的學習鉆研精神,并通過該案例可以討論銀行賬戶的信息安全問題,對網絡工程專業以及以后進行信息系統設計、開發的學生,可以培養其認真的工作作風和嚴謹的職業素養。
(2)構建從易到難增量式“項目驅動”的分層實驗教學。
根據學生的接受程度和信息效果因材施教、差異化教學,構建循序漸進的“階梯式”C++實驗教學體系,實驗內容從模仿型實驗、提高型實驗、逐步遞進過渡到綜合型實驗。按照理實一體、課內外互補的課程指導思想,以項目為載體組織教學內容,突出學生的主體地位,完成所有的理論和實踐教學環節,實現“教、學、做”有機融合;通過課堂講授、團隊學習、分組討論、習題鞏固、個體輔導、學生展示、比賽考證等手段,實現從模仿到應用到創新的遞進式培養。
(3)建立“C++程序設計”SPOC在線教學平臺,進行線上線下多元混合教學。
依據新工科人才培養理念與要求,始終關注學生的學習效果,有針對性地調整授課內容、節奏、方式等。重新梳理整合和優化課程的教學內容,將每一個獨立的知識點進行聯合的貫穿,打破固定的章節結構,廣泛收集、整理教學示例和項目,構建符合新工科專業認證要求的項目式教學示例庫。加強企業合作,吸納行業新技術與新成果,建立新工科新形態的SPOC在線課程。
以翻轉課堂的形式設計教學過程。課程線上視頻由項目團隊根據教學大綱所拍攝,以小視頻為主。教師利用集中上課的時間布置任務,學生利用課外時間按計劃在指定的時間內自主學習視頻課程,并完成相應的實訓,教師通過平臺督促學生按計劃完成學習,并利用面授時間進行答疑和更深層次的研討。
(4)優化考核方式。
在考核過程中,教師需要將考試評分與學生的形成性評價進行結合,針對學生的發展情況,對其進行多方面的綜合考核。為了更好地將過程考核和終結考核、理論考核和實踐考核相結合,可以分階段、分層次對學生的學習效果進行過程化考核,如線上成績考核學生的視頻學習、作業、測試情況,線下成績考核學生的分組討論能力、課堂展示情況,進一步綜合評價學生的理論知識掌握和編程實踐能力。通過SPOC在線教學的展開,教師可以通過在線學習數據了解學生的學習情況,包括學生的作業和測試正確率,從而確定學生對問題和知識點的掌握程度。同時,教師通過成績排名關注“優秀”學生和“不及格”學生的學習情況,進一步對學生進行有針對性的指導,對于“優秀學生”增強編程能力的培養,可以輔導其參加各類學科競賽,提升學科競賽的獲獎率和獲獎等級,對于“不及格學生”加強對基礎知識相關習題的練習。
具體考核方式為:線上成績15%、線下平時成績10%、實訓成績15%、期末上機考試60%,教師需要提高對考核結果的重視程度,進一步改進教學內容,在學生的反饋中調整自身的定位,有利于提高新工科教學的綜合質量。
(1)充分滲透課程思政的教學理念,構建教案課件、教學案例等課程資源,并將思政過程滲入課堂教學,不僅能教會學生基本知識和工作技能,更能培養學生良好的道德素質。
(2)注重理論教學與軟件開發技術的緊密結合,將新技術和新方法及時引入教學,將課程教學內容與職業崗位工作任務銜接。通過實施從易到難增量式“項目驅動”的分層教學,使學生熟悉程序設計基本思路,掌握軟件編程技能,并通過全面的職業素質訓練,實現“零距離”上崗。
(3)“以賽促學,以學促教”,不斷強化學生的分析問題與解決問題的能力,進一步激發學生的創新意識和編程能力。
(4)線上線下混合式教學。在新工科理論和課程思政理念的指導下,完善理論課程設計、實踐教學體系和教學方法,建立一套較完整的、實用性強的SPOC線上課程。設計翻轉課堂,通過在線學習、在線互動等形式,結合教師的課堂指導,激發學生學習的興趣。培養學生進行課程知識點的講解和微課制作,教師與學生在彼此互動中共同提高。
本文分析了當前“C++程序設計”教學的現狀,并依據新工科人才培養理念與要求,吸納行業新技術與新成果,重新梳理整合和優化課程的教學內容,融合思政元素進行項目化課程教學改革,建立新工科新形態的SPOC在線教學課程,更好地進行線上線下多元混合教學,構建“教、學、做”一體化的“C++程序設計”課程教學模式。