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