中圖分類號:G712 文獻標識碼:A 文章編號:1674-7747(2025)06-0099-06
眾所周知,C語言是一種基礎的計算機編程語言,具有強大的功能和廣泛的應用領域。C語言程序設計能力是職業類院校計算機專業學生學習其他高級語言的重要基礎,也是他們拓展職業空間的必備技能之一[1-3]。提升C語言教學質量,直接關系到相關學生的知識內化程度及技能提升效果,一直是國內外各院校從事C語言教學的教師競相研究的熱點[4o。但由于該課程知識點繁雜,對學生的邏輯思維能力、抽象思維能力要求較高,增加了學生理解和掌握的難度,降低了學生學習的熱情和信心。為有效解決這一問題,本研究采用能夠與C程序協同運行的Proteus仿真軟件[7-9]以及Arduino創新平臺,圍繞職業教育涉及的C語言教學知識點和技能提升要求,構建能夠引導學生主動融入、啟迪學生獨立思考、吸引學生積極參與的虛實融通的沉浸式C語言課程教學項自案例,讓學生在“做中學、學中做”的雙向互動中,深度感受C語言的編程魅力,激發其自主探索的興趣
一、“C語言程序設計”課程教學中的困境
目前,職業院校計算機專業普遍開設了“C語言程序設計”課程,但該課程教學尚存在以下三個方面的問題:(1)課程對C語言應用場景的挖掘不夠充分。早期C語言主要用于操作系統或應用程序開發,而當前“C語言程序設計”教學仍將應用場景局限于應用程序設計。實際上,C語言在電氣工程領域同樣具有廣泛用途,如可通過信號處理算法管理微處理器、微控制器等集成電路,但目前的課程教學缺少對這方面的關注。(2)教學內容與實際脫
|改革探索|
離。作為一門適用性極廣的編程語言,C語言本可深度解決現實問題,但當前課程教學多以講授、習題訓練、模擬編程為主,缺乏對現實問題的關照,導致學生僅停留于書本知識層面,難以感知知識的實際價值。長此以往,學生的學習興趣難免會逐步消退。(3)對學習者的特征關注不足。C語言是一種低級語言,它要求程序員具備良好的邏輯思維能力,才能編寫出高效、可靠的代碼。雖然職業院校的學生理論功底相對薄弱,學習存在一定困難,但其普遍對可具身參與的學習項目感興趣,樂于完成可視的、可執行的學習任務。當前,職業院校中的“C語言程序設計”課程只是對教學難度進行了一定程度的降低,沒有對學生的興趣點、關注點進行教學優化
二、“C語言程序設計”課程中應用虛實結合教學法的技術可行性
針對“C語言程序設計”課程中存在的問題,本研究提出“虛實結合改革教學方法”的主張,主要設想是把C語言教學與Arduino創新平臺結合起來,要求學生通過C語言程序編程來驅動若干Arduino微控制器,使Arduino機器人完成相應指令。這樣可使枯燥的代碼轉換成可視化的機器人動作,從而激發學生學習的興趣,也使學習過程、教學評價可檢查、可測量,使整個教學過程呈現全新的面貌??紤]到虛實結合后學習任務的復雜性,教師在教學過程中還應有計劃地引入Proteus仿真軟件,形成一個以C語言編程、由Proteus仿真檢驗、驅動Arduino機器人執行的教學流程。但該流程是否可行,則需要對C語言、Proteus仿真軟件、Arduino創新平臺的基本特征與結合的可能性進行具體分析。
(一)C語言與Arduino創新平臺結合的技術可行性
C語言具有高效的執行速度,這使其用于需要實時控制的機械設備時優勢明顯,能夠快速響應外部事件,保證機械設備的穩定運行。C語言能夠直接操作硬件資源,這使得它在嵌入式系統開發中具有獨特的優勢。在機電領域,C語言可以實現對機械設備的精確控制,如速度、位置、方向等。因此,在實際應用中,C語言常被用于電機控制、傳感器數據處理、機械手編程、機器人編程等場景。Arduino是一個開源電子原型平臺,包含硬件(Arduino板)和軟件(ArduinoIDE)兩部分。早期的Arduino核心庫使用C語言編寫,后來引進了面向對象的思想,目前最新的Arduino核心庫采用C與 C++ 混合編寫而成,因此用C語言為Arduino編程不僅可行且具有高效性。
(二)C語言與Proteus仿真軟件結合的技術可行性
Proteus是一款強大的電子設計自動化(EDA)工具,廣泛應用于電子工程師進行電路設計和仿真,還可以通過C語言編寫程序對硬件進行仿真,實現更加復雜的功能設計,而不需要實際的硬件環境。為了在Proteus中仿真C語言代碼,教學人員可以利用編譯器將C語言代碼轉換為能夠在微控制器上運行的機器代碼。
(三)Proteus仿真軟件與Arduino平臺結合的技術可行性
在電子設計領域,工程師們經常在設計階段預測和優化產品性能的過程中使用仿真軟件以減少實際生產中的試錯成本。許多工程師和愛好者也會在學習和開發過程中都會使用到Arduino平臺,Proteus仿真軟件提供了一個Arduino仿真器,允許用戶在不依賴真實硬件的情況下測試和驗證他們的Arduino程序。在Proteus仿真軟件中的Arduino模擬功能如代碼上傳、I/O交互、外設集成、性能分析等,已能滿足大多數的Arduino創新實踐
三、“C語言程序設計”課程虛實結合“四階段”教學流程設計
有了C語言編程環境、Proteus仿真軟件和Arduino創新平臺,便可構建一個以Arduino機器人為載體的“情境一編程一仿真一執行”的四段式教學流程。
1.設置情境。教師需設定一個“巡檢機器人設計、制作與調試”的總項目,依據巡檢機器人的子系統或功能,設計6一10個工作情境,每個情境要求學生完成一個子系統的設計、制作與調試的全流程工作。
2.編制程序。根據情境中的任務要求,教師需幫助學生分解任務,提出每個任務的目標、指標要求和工作規范,指導學生完成編程任務。當任務較難時,教師要提供足夠的支持。
3.仿真運行。教師需指導學生把已達到標準的程序導人Proteus軟件,并仿真運行。教師可以把學生編成小組,小組成員共同檢查代碼的正確率、運行效率等指標,并根據仿真的實際情況修改代碼。
4.執行程序。教師應指導學生把修改過的代碼上傳到Arduino機器人,實際執行程序,并按任務要求開展評價。該流程堅持任務導向,并參照真實的工作流程開展編程、仿真、執行等工作任務,讓學生在貼近職業場景的實踐中掌握技能,把枯燥的編程與機器人的實際運行結合起來,凸顯教學的職業性與崗位適配性,增強了教學的趣味性。
四、“C語言程序設計”課程虛實結合“四階段”教學的案例
(一)課程項目設計
結合職業教育C語言教學內容要求及職業院校學生學習特點[10-1],本研究將課程內容依據學習的序進累積規律進行重構,劃分為認知階段、提高階段和應用階段三個梯次遞進的學習階段,融合的巡檢機器人課程項目也按這三個階段進行分解,每個階段由若干個功能相對完整的模塊構成,每個功能模塊又由若干個教學任務組成。功能模塊與各教學階段的關聯關系如圖1所示。
圖1巡檢機器人功能模塊結構

1.認知階段。認知階段由兩個功能模塊組成,其中“機器人工作指示燈控制”模塊主要通過開關、按鈕、二極管、ATMEGA328P等簡單電子元器件搭建指示燈控制線路,并采用人工控制和編程控制兩種方式,將布爾代數、數字邏輯規則、C語言數據存儲結構及C語句的行為特點與作用等基礎知識,轉化為可視化、物理化的分析及實驗方案?!皺C器人動力單元驅動”模塊進一步延伸認知階段的教學情境,教師可從實用性和趣味性兩個方面擴展教學內容,通過控制直流電機實現啟停、正反轉等功能展示C語言判斷結構的應用機制、第三方函數的調用方法等基礎知識。
2.提高階段。提高階段的功能模塊具有承上啟下的作用,學生既需要對C語言的數據類型、賦值語句、語法規則、判斷結構等知識具有一定的理解和掌握,也需要對簡單電子線路工作原理、數字邏輯運算規則等知識有扎實的分析和運用能力,才能順利開展本階段相關模塊的學習。該階段由機器人運動控制、機器人運動狀態檢測和機器人遠程通信功能三個模塊組成。機器人運動控制模塊,以兩輪后支式機器人運動平臺為開發模型,分別在虛擬仿環境和物理實驗平臺上采用基于L298邏輯的直流電機驅動器實現對兩路直流電機的控制。L298物理元器件具有與之相同的電氣接口和控制邏輯,具體控制邏輯見表1。表1給出了A控制組的控制邏輯,B控制組的控制邏輯與A控制組類似,表中的pwm是指占空比可調的方波信號,通過C語言設計簡單的數據處理算法即可實現該功能。根據A、B兩組的控制邏輯,以及實際生活場景,師生可以很方便地構思和設計機器人啟停、加減速、左右轉彎等運動控制算法,實現機器人前進、后退、轉彎、啟停等基本動作;還可以有效借助C語言的強大功能及硬件支撐,對其中的轉彎動作,設計挑戰性和趣味性并存的算法策略,比如機器人左轉動作,可以采用左輪停、右輪勻速,左輪減速、右輪勻速,左輪勻速,右輪加速等三種算法策略實現。在教學過程中,教師可以設計機器人不同的轉角、姿態調整要求,引導學生在實施過程中,調試、對比各種控制策略的效果,充分激發學生勇于實踐、積極探索的勤學善思精神。機器人運動檢測功能包含機器人運動速度檢測、運行狀態(正在避障,正在轉彎、加減速等)統計和數據顯示三個子功能。運動速度檢測功能硬件采用HC-020K型紅外對射光電傳感器模組實現,數據顯示部分采用74LS47七段數碼管驅動器實現,主要用來顯示運行速度及運行時間信息。機器人遠程通信功能,借助zigbee模塊與遠程PC電腦實時交互信息,主要完成機器人的手動命令控制,緊急狀態干預,運行狀態及其他運行參數監控等功能。提高階段涉及的三個主要功能,主要把C語言的數組、結構體、循環結構以及簡單的數據處理算法等知識相關聯,形成一個具有知識性、趣味性和充滿想象空間的小規模項目。
表1A控制組控制邏輯真值

3.實現應用階段。經過前兩階段的知識積累與動手能力訓練后,即可進入應用階段,該階段內容主要涵蓋灰度傳感器的電氣特性與工作特點、巡線及糾偏算法設計等。機器人避障功能模塊中涉及的超聲波傳感器的應用及避障策略設計與實現以及機器人導航功能模塊中涉及的GY-26電子羅盤的應用及依據輪速和方向綜合實現定位功能算法等內容相對比較復雜,要實現這些功能,需要教師的耐心引導和學生付出足夠的精力不斷理解和實踐。
(二)教學實施與過程監控
圍繞上述巡檢機器人教學項目,本研究設計了虛擬仿真和物理實驗相互融通的教學方案,依托為每個功能模塊設計的子任務實施,具體的子任務分配和教學實施安排見表2。
表2任務分配和教學實施安排

表2給出了上述各階段所含教學任務在開展實施時的學時分配及方式,其中的部分任務采用虛擬仿真 + 物理實踐的方式實施,這種方式的特點是需要學生在理解學習目的基礎上,通過仿真平臺搭建簡單的測試電路進行編寫C語言程序,該程序在虛擬仿真平臺調試通過后,再移植到物理硬件平臺。該任務分配和教學實施安排主要有以下三個優點:(1)通過在仿真平臺搭建電路、編寫調試程序等學習活動,學生可以更充分地理解和掌握學習內容;(2)通過仿真平臺反復的再現任務工作過程,學生可以更清晰、細致的觀察到實踐過程的每個階段;(3)學生在學習時間和空間上可以實現更大自由,在學習路徑和方式上可以更加靈活。同時,教師以表2給出的教學任務開展教學,還有利于其對整個教學過程進行全面把控,教師可以通過成立項目小組進行項目需求分析、項目匯報、項目競賽、討論分析等多種形式的教學,采集學生在虛擬仿真平臺或物理實驗平臺學習過程中的各種操作行為、學習進度、決策過程等詳細數據,為教師全面了解學生的學習情況,確立評估指標并根據指標開展客觀評估提供豐富的素材。
參考文獻:
[1]張靜,馮麗萍,胡寧玉,等.面向多維能力培養的《C語言程序設計》課程教學改革[J].忻州師范學院學報,2024(10):125-129.
[2]姜鋒.新工科背景下\"C語言程序設計\"課程教學改革探索[J].中國新通信,2024(10):118-120.
[3]楊陽,吳其林,徐秋月.新工科背景下基于OBE的教學模式研究與實踐:以C語言程序設計課程為例[J].曲靖師范學院學報,2020(11):79-84.
[4]張鵬飛,洪留榮,王園園.實例教學法在“C語言程序設計”課程教學中的應用研究[J].安徽電子信息職業技術學院學報,2024(9):66-70.
[5]張猜,肖磊.C語言程序設計的課程教學改革與實踐[J].教育現代化,2019(65):21-22.
[6]唐琳,雷霖,趙永鑫,等.競賽項目驅動的電子類課程教學改革:以電子設計競賽題目“無線運動傳感器節點設計”為例[J].實驗室研究與探索,2023(3):226-229,294.
[7]錢平,卜捷捷,羅文煜.基于Proteus的Arduino單片機虛擬仿真實訓案例設計[J].科技與創新,2024(7):178-180,184.
[8]陳新娟,卜捷捷.Arduino仿真教學的實驗開發[J].計算機時代,2020(4):90-91.
[9]王月.Proteus在單片機接口技術課程教學中的應用[J].電子技術,2024(8):363-365.
[10]郭鑫,張云華,吳山.中高職學生升學銜接問題分析及對策[J].哈爾濱職業技術學院學報,2019(3):97-99
[11]朱香衛,劉丹,李艷燕.職業院校計算機語言類課程的“三教\"改革[J].計算機教育,2024(10):34-38.
[責任編輯 秦濤]
Design and Case Analysis of the Four-Stage Teaching Method Combining Virtual and Real for “C Programming Language” Course in Vocational Colleges
YANGLizhi,CHENYueyue,LUXue,GUOYage,MANZILAI ?? Yilihamu
Abstract: Taking the Arduino platform as the carrier,thisstudyconstructs virtual-real integrated projects that combine virtual simulation with real projects. Through writing programs in C language, verifying and modifying them on the simulation platform,and then running them on the Arduino platform,a four-stage teaching method of\"context-programming-simulation-execution” for the
Programming Language” course is formed. Its application in C language teaching at vocational colleges shows that this model can not only effectively reduce the abstractness and comprehension diffculty of basic C language knowledge points through visual means, fully demonstratingthe application methods and characteristics of knowledge points in project implementation,but also effectively motivate students' enthusiasm for active learning.
Key words: C programming language teaching; simulation teaching projects; combination of virtual and real; collaborative operation