李夢雪



摘 要:教師教學能力和學生學習能力,在“新工科”的背景下,又面臨新的挑戰。高職院校與企業深度合作開展工程化教學是應對新挑戰的合理路徑和策略。本文以高職軟件技術專業C語言教學為例,引入工程化教學思想并設計教改策略,通過實踐在一定程度上提高了學生創新實踐能力和就業能力。
關鍵詞:C語言;工程化教學;教學研究;工程思維
0 引言
教師教學能力和學生學習能力,在“新工科”的背景下,又面臨新的挑戰。教學改革勢在必行,作為工程學科的軟件專業更應該走在教學改革的前列,創新校企合作策略,與企業協同育人構建良好的產業生態,讓學生在校期間的學習內容與企業的工作崗位無縫銜接。
C語言課程是軟件技術專業的專業基礎課,是計算機其他相關專業的必修課程,也是一門有利于培養學生求解能力的課程。對C語言課程工程化教學在軟件技術專業的研究,有利于成果在其他專業的實踐與推廣。
傳統的C語言教學缺點有:(1)教學內容以模塊化教學為主,以章節為基礎,由淺入深,各章節實踐環節沒有必然銜接,很少涉及工程思維;(2)采取教師主導一切的教學方式,學生在教師的引導下被迫接受學習內容,沒有系統且長效的問題驅動機制保障學生學習的熱情;(3)教學創新程度不夠,不能真正促進學生能力的提升,不利于未來職業發展。
1 工程背景下軟件技術專業C語言教學改革
工程背景下,要求學生能夠熟練掌握工程問題的描述與求解過程,高職院校的軟件技術專業雖不同于本科院校的軟件工程專業,但在解決“軟件開發”這種工程化問題時基本方法與路徑是相通的。
對比本科院校,結合高職院校自身特點,對軟件技術專業課程體系進行優化,如圖1所示。優化后的課程體系包含“一中心兩主線”。其中一中心是要解決的中心問題,包括三方面:工程思維培養、長效驅動機制保障、創新能力培養;兩主線,其一是軟件工程教育,以軟件工程八大階段為依據,最終讓學生掌握軟件開發的工程化過程;其二是核心課程教育,內容安排由淺入深,涵蓋工程思維培養,算法描述,代碼實現等多個方面,是解決軟件工程問題的實用工具。
C語言課程在“核心課程教育”中占據承上啟下的地位,是工程思維到工程實踐的橋梁,其難點是算法理解和程序設計語言表達。本文從以下幾個方面進行教學改革。
1.1 教學案例設計
教學改革中C語言課程的教學案例主要來自校企合作企業,以實際軟件開發項目為基礎,按照分層教學的要求軟件開發項目又細分為小型軟件開發項目和大型軟件開發項目,同時這些項目根據不同的場合分為課堂教學項目、實驗項目和拓展項目。從三個維度設計教學案例豐富了教學資源。以軟件工程應用問題為牽引,結合實際軟件工程應用項目,將適合C語言教學的工程案例進行簡化和改造,融入教學過程中。針對軟件開發項目中子問題設計實驗案例,每個案例按照簡化后軟件工程過程實施(少于八個步驟)。對于綜合項目實踐環節則選取較小規模軟件開發項目,按照較規范的軟件工程過程實施。
1.2 教學模式多元化
軟件技術專業屬于電子信息類專業,具備天然的信息化教學條件,“新工科”建設背景下,工程化教學的引入催生了多元化教學模式。傳統教學中,理論課和實踐課被割裂開來,學生在課堂學習理論知識在機房練習編程,模式固定僵化。
提升教學質量、提升學生創新能力是多元化教學模式的中心和側重點,采取各種教學方法和手段提高教學質量,其中包括教學互動的翻轉課堂、線上線下交流的雨課堂,以及像MOOC這樣的在線學習平臺。疫情期間,高校教師對在線直播與錄播進行了大量的探索與實踐,為多元化教學模式積累了大量的經驗。
1.3 分層培養
多元化教學模式的改革以及多維度教學案例設計能夠充分開展因材施教、推進分層培養人才。學生的基礎、學習能力不盡相同,針對性的課程案例讓學生的潛力被充分挖掘,實踐興趣與能力顯著提升,有效地建立了長效驅動機制保障學生學習質量和興趣。
學生在C語言程序課程教學實踐項目中能深刻體會到C語言的地位和重要性。對于基礎薄弱的學生應更側重于簡單項目實踐,實踐中不斷提升學生的興趣和自信心;對學有余力且實踐能力較強的同學為其提供更多機會參與技能比賽和科研項目。
當然,這些措施的具體實施需要合理的多維度的教學案例作為支撐,它是教改環節的關鍵。
2 C語言教學設計
通過軟件工程的八個過程逐步展現C語言的語法規范和算法設計規則,培養和提高學生綜合項目實踐能力。具體教學設計按照案例選擇—知識關聯—教學內容設計三個步驟逐層開展。
2.1 軟件工程案例選擇
由于面向軟件技術專業學生,工程案例選擇以系統設計問題為主,涉及到系統穩定性、設備可靠性、傳輸可靠性等。
2.2 知識關聯
將系統設計類工程問題選作案例之后的核心問題就是知識點的映射關聯,C語言的知識體系從簡單的表達式、流程控制等到復雜的函數、數組、指針、結構體等。選取具體的系統設計案例,如玩具汽車信息管理系統對各章節一級知識點進行映射。
2.3 教學內容設計
對C語言各章節中一級知識點和二級知識點進行映射之后接下來就是設計教學內容。以工程化的思路逐層展開,學生在工程問題的驅動下配合教師按照分析問題、建模、求解3個步驟實施,以玩具車信息管理為例。
分析問題環節,對玩具車信息管理就是對其名稱、型號、生產日期、價格等信息的管理。玩具車信息管理系統的信息處理主要體現在對汽車信息的增、刪、改、查、排序等方面。
建模環節主要是數據結構設計和系統功能設計,對玩具汽車的信息可以用C語言中的結構體進行描述如圖2。
系統功能的實現以數據結構設計為基礎,利用C語言函數的相關知識完成增、刪、改、查、排序等功能模塊定義,如刪除功能函數可定義為int delete(ToyCar car,int n,int num);該函數能實現顯示編號為num的玩具汽車,用戶確定刪除該記錄后,返回剩余玩具汽車數量,如果系統中沒有該編號則報錯。
問題求解環節需要編碼實現功能函數,需要對C語言的知識進行綜合應用,在工程化思想中編碼之后還要對系統進行測試和維護。
C語言工程化教學改革的課程設計通過上述三個步驟得到實踐。
3 教學實施與分析
本次教學改革活動分別在2019級和2020級軟件技術專業部分學生中開展。首先,按照以上的教學設計實施具體教學,引入工程問題,并將問題與課程的一級和二級知識點進行映射,逐層開展講授求解過程。其次,在實踐課程環節學生針對具體的函數功能模塊編碼實現。另外,為學有余力的同學提供更多的機會參與項目中來。
課程結束之后對教學效果進行了分析,參與學生120人,結果如表4。
實施結果表明,通過本次教學改革整體取得一定成效,大部分學生投入實踐課的時長明顯加長,期末平均分提高顯著,但部分同學認為工程化項目教學引入C語言課程占據了大量時間,比原來教學時長更長且工程問題較晦澀難懂。本文提出的分層教學方法還存在一定缺陷,相信在不斷的教學實踐中會變得越來越完善。
參考文獻
[1]蔣宗禮.本科工程教育:聚焦學生解決復雜工程問題能力的培養[J].中國大學教學,2016,(11):27-30.
[2]謝紅梅,周勇,陸榮.工程化課程教學探索研究——以“C語言程學設計”課程為例[J].工業和信息化教育,2021,(01):48-52.