張曉培 蔣慶華 莊 遠 魯 娟
(北部灣大學機械與船舶海洋工程學院,廣西 欽州 535011)
C 語言程序設計(簡稱C 語言)和單片機技術及應用(簡稱單片機)這兩門課程是機電類專業(yè)必須開設的專業(yè)基礎課程,主要目標是培養(yǎng)學生的機電控制系統(tǒng)設計能力。這兩門課程是相輔相成的,C 語言是單片機應用技術的主要開發(fā)語言,然而在以往的教學過程中,兩門課程是分學期開設的。學生在學習C 語言程序設計課程時,由于課程知識點繁多等特點,學習效果不太理想,同時經過一年的時間間隔,學生在學習單片機課程時,C 語言的知識遺忘的也差不多了,造成在上單片機課程中補習C 語言知識,由于學時的限制,單片機本身的內容涉及的淺且有限[1],造成了兩門課程學習效果都不理想的現狀。本文現通過分析北部灣大學機械與船舶海洋工程學院“C 語言”和“單片機”教學中存在的問題,以探求課程內容的整合和課程資源的建設。
為了解決兩門課程分不同學期開設,學生學習間隔時間過長等問題,我校機械類專業(yè)課程組把C 語言程序設計和單片機技術及應用兩門課程放到一個學期開設,合為一門課程,即C 語言與單片機技術及應用。
1.2.1 課程內容融合度不高
兩門課程的整合在一定程度上解決了學習間隔時間長的問題,但是課程內容的融合度不高,基本是兩門課程進行了加法,沒有從根本上解決兩者內容的有效融合。首先,教材選用兩本教材,譚浩強主編的《C程序設計》和高玉芹主編的《單片機原理與應用及C51 編程技術》。其次,內容分為上篇和下篇,上篇主要講授C 程序設計中的算法、數據類型、三種基本結構、數組和函數等,程序設計案例中以數學計算的程序為主,容易使數學基礎差、邏輯思維不強的學生失去學習的興趣;下篇主要講授單片機的硬件資源和單片機的外圍擴展模塊的應用等,傳統(tǒng)的教學從單片機CPU 到系統(tǒng)、從指令到軟件、從方案到產品的整體設計思想[2],側重點是單片機理論體系結構,其中的大量專業(yè)術語和寄存器的功能講解,使得學生懵懵懂懂。綜上所述,該課程知識點銜接性不強,兩部分內容融合度不高是該課程存在的主要問題。
1.2.2 課程資源不匹配
隨著“互聯(lián)網+”的發(fā)展,線上線下混合式教學也在高校廣泛應用,該門課程采用異步SPOC 的模式進行教學,然而現在中國大學慕課資源里面,C 語言程序設計和單片機技術及應用都是一門獨立的課程,沒有兼顧兩者的課程資源,這是該門課程線上線下教學課程改革的一個突出的問題。
基于以上原因,把C 語言和單片機教學內容有效地融合起來,開發(fā)適合我校機械類專業(yè)學時的課程資源迫在眉睫。
依據人才培養(yǎng)方案的要求,通過兩門課程的學習不僅需要培養(yǎng)學生在Visual C++集成環(huán)境下,能夠編寫簡單的C 程序,并具有基本的糾錯和調試程序的能力,還要使學生具備應用單片機進行機電控制系統(tǒng)設計的基本技能。鑒于上述課程目標不能在講授單片機課程的同時,本著夠用的原則進行C 語言知識的講授,所以在進行課時的分配時,不能厚此薄彼,同時又要兼顧線上線下課時的分配。其中C 語言部分和單片機部分都有理論和實驗,其次線上課時主要分配到各自的理論教學過程中。C 語言與單片機技術及應用課程總計80 學時,其中理論56 學時,實踐24 學時。C語言與單片機課時的分配可以根據該門課程的課時總量進行調整,教學模式采用線上、線下相結合的方式開展。本課程的學時分配如圖1 所示。
圖1 學時分配
根據C 語言課程內容,將C 程序基礎、三種基本結構、函數、數組等作為主要側重點,將指針、用戶自己建立數據類型、對文件的輸入輸出作為輔助教學內容[3];根據單片機內容將硬件體系結構、中斷、單片機接口擴展技術(鍵盤、LED 等)作為側重點,將串行接口技術、存儲器擴展技術、匯編語言作為輔助教學內容。
由于51 系列單片機開發(fā)中使用C51 程序語言來進行開發(fā),C51 語言基本語法與標準C 相同,是在C語言的基礎上增加了一些51 系列單片機專用的數據類型和語法。鑒于上述問題,在C 語言與單片機技術及應用課程C 語言的教學內容的基礎上增加C51 的數據類型等。主要的有以下幾個方面:
(1)常用的庫函數,如_crol_()等。
(2)數據類型。在C 語言的基礎上增加了4 個數據類型,分別為bit、sbit、sfr 和sfr16。
(3)數據存儲類型。如data、xdata 和idata 等。
(4)中斷函數。如void timer0()interrupt 1{}。
(5)單片機經常使用的頭文件,如#include<reg51.h〉。
以上內容可以融入C 語言教學對應的知識點中,作為知識的拓展。
在理順課程知識點內在聯(lián)系的基礎上,通過案例驅動的方法,在單片機知識點的學習過程中增加C 語言知識的運用頻率,形成系統(tǒng)化教學模式,降低以單片機為核心的機電控制系統(tǒng)的學習難度,激發(fā)學生學習興趣,提高學習質量。如在單片機知識的講解中重點找出C 語言的知識點所在,在進行單片機設計開發(fā)中,鞏固C 語言知識點,具體如表1 所示。
表1 單片機技術及應用案例中C 語言知識點的應用
由于課程采用線上線下混合式教學,本課程線上線下需要從整體上規(guī)劃學生的學習路線和學習過程,做到線上與線下、網絡與面授的有效結合。所以在對課程進行知識梳理的同時,完成知識的解構和重構,對C 語言中未涉及的知識單元,主要采用線上學習,對于抽象性強的知識則采用“線上+ 線下”的教學模式,即以學生為中心,線上知識學習、測驗和互動;線下教學圍繞著實驗為主,教師在課堂上組織課堂教學活動,進行知識深化舊知導入→展示參與→示范新知→促進遷移,并通過實驗的開展加深對知識的理解。
針對我校C 語言與單片機技術及應用課程內容和線上教學資源存在的問題,本文探索把C 語言和單片機的知識有效融合,推進教學改革,開展了以“案例驅動為方法,學生自學為主體、教師講授為引導”的線上線下混合式教學實踐[4]。在保證兩個知識體系原有內容的基礎上,適當地調整教學內容順序,同時在單片機內容教學上設計與C 語言知識點融合度高的仿真案例,通過案例教學,提高學生學以致用的能力,并借助于單片機硬件仿真效果的演示,使學生對抽象的代碼有直觀的認識,有效地提高學生學習的積極性。教學實踐證明,改革后的C語言與單片機技術及應用不僅解決了C語言與單片機內容融合度不高的問題,同時還完善了該課程的線上教學資源。