陳鑫影
大連交通大學 遼寧大連 116021
C語言高效、靈活,被廣泛應用于科學計算,可以在許多軟件開發中看到C語言的影子。C語言也是進一步學習其他高級語言的基礎語言,如C++、Java和C#等,以及相關的課程,如數據結構,數據庫、操作系統等課程。然而,目前在大多數課程教學過程中,仍以“以課堂為中心、以教師為中心、以教材為中心”,表現為“滿堂灌”“填鴨式”教學方式[1]。在C語言的教學過程中也存在這樣的問題,容易使學生養成上課就等著教師教的依賴習慣。“三中心”教學方式只注重知識傳授,通常由主講教師選擇一本教材,依據教學進度計劃表逐節講解說明,課上講解例題,課后布置作業,統一安排上機實習,學期結束進行復習、考試。這種教學方法使學生成為“知識容器”,忽視了學生是學習的主體,使學生長期處于“他主的、被動的、單個的、接受式”的狀態,無法做到因材施教,造成學生學習自主性下降,缺乏主動汲取知識的意識和能力[2]。這種比較單向的輸入式教學方法,使學生沒有實際的實踐能力來解決問題。為解決現存的問題,本文將依據OBE+PBL+CDIO組合模式理念,改進C語言程序設計教學相關內容和方法。
首先介紹C語言的結構特點,以及它所具有的函數封裝代碼的思想。這些C語言固有的特點利于結合OBE、PBL和CDIO等模式理念,對C語言程序設計課程進行教學改革。
一個C程序是由若干個函數所構成,每個函數負責完成一定的任務,這些函數可以在一個源文件中,也可以分布在若干個源文件中。當程序需要修改某個函數時,只需要重新編譯該函數所在的源文件,不必重新編譯其他函數所在的源文件。因此,用函數封裝解決某一問題的過程便于程序的模塊化管理。比如,如果某個同學想計算圓的面積和梯形的面積,那么這個同學無須知道計算圓面積的算法和計算梯形面積的算法,只要在他編寫的main函數中調用(鏈接)circle.c和trapezoid.c中的函數即可,也就是說circle.c和trapezoid.c中的函數就是可復用的代碼(工程圖如圖1所示)。getCircleArea、getTrapezoidArea和main三個函數,分別在main.c,circle.c和trapezoid.c源文件中。主函數main負責調用getCircleArea和getTrapezoidArea函數得到圓和梯形的面積。

圖1 工程圖
OBE提供了一種新的、有效的方法來提高學習效果,它強調將學生置于課堂的核心位置,并且注重對他們的學習成果的反饋。PBL教學方法是以問題為導向的,也是以學生為中心的教學方法。CDIO理論強調從構思到實施,從設計到運作,注重實踐、團隊合作和工程能力的發展,以提升項目的效率和成功率。C語言的封裝性和模塊化管理,使得每個函數具有一定的獨立性。這些特點利于在課程學習過程中對問題和項目進行劃分,使學生以個體或者團隊的形式針對具體子問題進行解決。如此,可以將學生置于課堂的核心位置,以問題為導向,對學生的成果進行合理、有效的評價,注重學生的成果反饋。
因此,OBE+PBL+CDIO組合教學改革模式的第一階段“理論教學部分”采用OBE+PBL工程教育理念進行成果(問題)導向、以學生為中心的教學。OBE+PBL+CDIO組合教學改革模式的第二階段“實踐教學部分”將在OBE+PBL組合教學改革模式的基礎上引入CDIO教學模式。由于CDIO模式強調實踐操作,注重團隊的協同配合,著眼于“創意、規劃、執行、結果”這四個核心要素。因此,在課程的實踐環節將充分結合CDIO模式的特點。針對項目問題的難易程度,結合學生的自身條件和興趣愛好,對應C語言函數的封裝性、程序的模塊化管理的特點,對同學進行分組、分團隊分工,使得組內和組間能夠協同互助、協同設計、協同創新。具體的基于OBE+PBL+CDIO的兩階段漸進式教學方法,參見圖2所示。

圖2 基于OBE+PBL+CDIO的兩階段漸進式教學方法
因此,在C語言教學過程中,針對前述分析的、普遍存在的“三中心”教學方式(以課堂為中心、以教師為中心、以教材為中心),和“滿堂灌”“填鴨式”教學方法[1],本文將基于OBE、PBL和CDIO組合模式理念,對C語言程序設計教學過程進行如下具體改革措施。
1.3.1 對教學流程進行重構
依據OBE+PBL+CDIO組合模式理念,以實際工作任務為依據,以項目為載體,以任務為驅動,側重對學生綜合應用能力的培養,對教學流程進行重構。
1.3.2 對學生動手能力與團隊合作能力進行培養
根據CDIO工程的教學原則,我們應當著眼于提升學生的實踐技巧、團隊合作精神,并將其融入課堂活動。我們應當采用多種方式,從實際的項目出發,鼓勵學生積極主動地參與,并且深入了解如何有效地劃分項目,安排資源,實現有效的組織和相互配合,從而更好地發揮出他們的潛質[3]。
1.3.3 基于線上線下融合的教學方法實現“教學做”一體化
通過OBE+PBL+CDIO的組合模式,“教學做”的教學方法可以實現線上線下的融合,其中,“教學做”的四個步驟可以幫助學生更好地掌握知識,并且可以通過多個與現實相關的項目開發來實現這一目標。通過將線上和線下課程教學融合在一起,讓學生在學習的同時也能夠進行實際操作,從而實現“教學做”的整合[1]。
1.3.4 強化實踐教學,激發學生的創新意識
通過實踐,可以提高學生學習的興趣性和目的性,從而推動學生學習的主動性和內驅力。通過實踐,學生還可以活學活用,理論融于實際,提高解決現實問題的能力。鼓勵學生盡可能通過實踐將理論與實際相結合,以更為有效地促進教學改革成果轉化。
根據OBE+PBL+CDIO教育教學理念,我們應該重新審視“教為本”課程,將學生置于課堂的核心位置,以實踐任務為基礎,以項目為載體,以任務為驅動,加強學生的綜合應用能力,讓他們以項目驅動的方式進行學習[4]。在教學中,我們重點關注項目和工作任務的需求,并精心挑選理論知識。在“C語言程序設計”課程中,可以選取多個由簡入繁、由淺入深、循序漸進的代表性項目作為教學載體,如學科成績管理系統等。根據CDIO模式,將每個教學項目細分為若干任務,并以此為基礎,采用構思—設計—編碼—運行的流程,以確保每一個教學項目都能夠有效地完成,并且能夠通過測試、交付與驗收、運行維護等環節來檢驗其有效性。
教師可以為學生提供多種選擇,讓他們能夠更加自主地探索,并將教學項目分成簡單小項目教學和綜合性大項目教學。課堂重點集中在如何幫助學生更好地運用所學知識來解決問題,我們會對項目進行拆分,按照一定的模塊來組織,并且鼓勵在課堂上建立團隊主動探索和思考。團隊內會協同配合,共同完成項目的開發、編輯和測試,并把所有的成果匯集起來,形成一篇綜述性的報告,最后進行答辯驗收[5]。
通過項目教學法,我們可以將傳統的教學方式與新興的教學模式結合起來,使學習者能夠更好地學習和掌握新知識和新技能。學生或學習小組可以通過使用教學平臺中的各種教學工具,進行自主探究學習。此外,教學過程中,教師還可以與學生進行直接的互動,以學生為中心,以學生提出的問題為導向,幫助學習者更好地理解新的概念。
參加課上和校內的實踐,不僅能夠體現學生對知識的掌握程度,而且還能夠有效地推動課程改革,將理論與實踐緊密結合,從而更好地實現教學改革的目標。在課程實踐環節中,教師將利用課內時間組織校內上機實踐。同時,教師將依據學生自身情況,引導學生、鼓勵學生參與解決實際問題,進一步拓展課上課程實踐環節。
(1)已經依據OBE+PBL+CDIO組合模式理念,針對知識點有目的地引導、分層次講解知識點和重點習題。講解內容已經生成視頻,并存放于超星泛雅平臺。
(2)基于OBE+PBL+CDIO組合教學模式的“兩階段”教學體系結構,已經設計出融合“課前預習筆記”“課前測驗”“課中測驗”“課后復習筆記”“課后作業”“課后測驗”以及“階段性測驗和作業”等環節的教學計劃和教學章節分配內容。具體的課程分配內容已經設計并存放于超星泛雅平臺。
(3)為了實現基于OBE+PBL+CDIO組合教學模式的“兩階段”教學體系結構,已經建立了“競教融合、以競促學”體系。教學改革組組織了2022年“藍橋杯全國軟件和信息技術專業人才大賽”省賽、國賽,本次省賽我校共59人獲獎,在全國總決賽中共有5名同學獲獎。
該教學改革基于OBE+PBL+CDIO組合教學模式的教學體系結構,改變原有的單向的、輸入式教學方法,通過將線上和線下課程教學融合,讓學生在學習的同時,也能夠進行實際操作,使學生通過鍛煉實踐能力來解決問題。鼓勵學生通過實踐將理論與實際相結合,以有效促進教學改革成果轉化,從而實現“教學做”的真正整合。