張程 李小民 張延生 曲志鵬
摘? 要:C語言和單片機(jī)是高等院校電子類專業(yè)本科階段開設(shè)的兩門非常重要的專業(yè)基礎(chǔ)課和專業(yè)課,兩者應(yīng)是前后承接,是基礎(chǔ)與應(yīng)用的課程接續(xù)關(guān)系。但是,在傳統(tǒng)教學(xué)過程中,由于兩門課程銜接的不連貫,使得學(xué)生對(duì)于C語言的編程應(yīng)用,特別是單片機(jī)方向的C51編程存在很大問題。該文針對(duì)這兩門課程開展研究,重點(diǎn)在于“架起一座橋”,使得C語言與單片機(jī)課程的銜接更加連貫,學(xué)習(xí)效果更加完整。通過分析C語言課程教學(xué)現(xiàn)狀,設(shè)計(jì)并實(shí)施基于單片機(jī)任務(wù)導(dǎo)向的C語言課程強(qiáng)化教學(xué)改革,改革課程評(píng)價(jià)指標(biāo),實(shí)施并總結(jié)教學(xué)經(jīng)驗(yàn),持續(xù)推進(jìn)后續(xù)改革計(jì)劃。該文所研究?jī)?nèi)容,無論是對(duì)于學(xué)生在校階段的課程學(xué)習(xí)、畢業(yè)設(shè)計(jì),還是對(duì)于其畢業(yè)后從事研究工作或者學(xué)業(yè)深造,都有極其重要的意義。
關(guān)鍵詞:應(yīng)用型本科;C語言課程;單片機(jī)任務(wù)導(dǎo)向;教學(xué)改革;課程改革
中圖分類號(hào):G642? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ? ? ? 文章編號(hào):2096-000X(2024)11-0125-04
Abstract: C Programming and Microcontroller are two very important basic and specialized courses in the undergraduate stage of electronics majors in colleges and universities, and both of them should be the successive relationship between basic and applied courses. However, in the traditional teaching process, due to the incoherence of the two courses, students have great problems in the application of C Programming, especially in the direction of microcontroller C51 programming. This paper focuses on the research of these two courses, focusing on "building a bridge", so that the C Programming and Microcontroller courses are more coherent and the learning effect is more complete. By analyzing the current teaching situation of C Programming course, designing and implementing the enhanced teaching reform of C Programming course based on Microcontroller task-oriented, reforming the course evaluation index, implementing and summarizing the teaching experience, and continuously promoting the follow-up reform plan. The research content of this paper is of great significance for students' course learning and graduation design in school, as well as for their post-graduation research work or further study.
Keywords: applied undergraduate colleges and universities; C Programming; SCM task orientation; teaching reform; curriculum reform
在高等院校電子類專業(yè)本科階段人才培養(yǎng)方案中,C語言程序設(shè)計(jì)和單片機(jī)原理及接口技術(shù)是非常核心的兩門課程。其中,C語言是編程入門的基礎(chǔ)課程,也是后續(xù)眾多專業(yè)課程的前導(dǎo)課程,例如自動(dòng)化專業(yè)開設(shè)的可編程控制器原理及應(yīng)用、單片機(jī)原理及接口技術(shù)、DSP原理及應(yīng)用、ARM嵌入式原理及應(yīng)用等課程[1-3]。通過學(xué)習(xí)C語言,要求學(xué)生掌握編程的基本規(guī)范和技巧,掌握軟件編程的必要技能。與此同時(shí),作為電子類專業(yè)本科階段的另一門重要課程——單片機(jī)原理及接口技術(shù),則要求學(xué)生在掌握軟件編程的基礎(chǔ)上,結(jié)合單片機(jī)硬件進(jìn)行一定功能的編程訓(xùn)練,使得學(xué)生具有單片機(jī)控制系統(tǒng)獨(dú)立編程的能力,能夠設(shè)計(jì)并實(shí)現(xiàn)小型的單片機(jī)控制系統(tǒng)[4]。C語言和單片機(jī)課程為電子類專業(yè)的學(xué)生提供了重要的基礎(chǔ)知識(shí)和專業(yè)技能[5-6]。通過學(xué)習(xí)這些課程,學(xué)生能夠掌握程序設(shè)計(jì)的基本思想和方法,具備軟、硬件開發(fā)能力,并且能夠獨(dú)立完成電路設(shè)計(jì)和系統(tǒng)調(diào)試等任務(wù)。
綜上,C語言和單片機(jī)是前后承接,是基礎(chǔ)與應(yīng)用的課程接續(xù)關(guān)系。但是,在多年授課過程中,教師感受到學(xué)生對(duì)于C語言的編程應(yīng)用,特別是單片機(jī)方向的C51編程存在很大問題。學(xué)生在學(xué)習(xí)C語言課程時(shí),很難想象或理解C語言在單片機(jī)課程中的作用,而在學(xué)習(xí)單片機(jī)課程時(shí),又容易遺忘C語言語法,造成了兩門課程銜接的不連貫。本文針對(duì)兩門課程開展研究,重點(diǎn)在于“架起一座橋”,使得C語言與單片機(jī)課程的銜接更加連貫,學(xué)習(xí)效果更加完整。
掌握C語言編程方法和單片機(jī)編程技能,這對(duì)于電子類學(xué)生而言,是本科學(xué)業(yè)的重點(diǎn)學(xué)習(xí)內(nèi)容之一。本項(xiàng)目所研究?jī)?nèi)容,無論是對(duì)于學(xué)生在校階段的課程學(xué)習(xí)、畢業(yè)設(shè)計(jì),還是對(duì)于其畢業(yè)后從事研究工作或者學(xué)業(yè)深造,都有極其重要的意義。
一? C語言課程教學(xué)現(xiàn)狀分析
通過分析傳統(tǒng)C語言課程的教學(xué)現(xiàn)狀,總結(jié)主要問題如下。
教學(xué)目標(biāo)和內(nèi)容與專業(yè)需求的不匹配。傳統(tǒng)的C語言教學(xué)往往沒有明確的專業(yè)針對(duì)性,無法滿足不同專業(yè)的需求。這導(dǎo)致學(xué)生在實(shí)際應(yīng)用中無法將所學(xué)的C語言知識(shí)與后續(xù)專業(yè)知識(shí)有效結(jié)合,缺乏實(shí)際應(yīng)用能力。
缺乏針對(duì)后續(xù)課程應(yīng)用的過渡性教學(xué)環(huán)節(jié)。傳統(tǒng)的C語言教學(xué)往往沒有為學(xué)生提供過渡性、引導(dǎo)性的教學(xué)環(huán)節(jié),幫助他們逐步將C語言知識(shí)應(yīng)用到專業(yè)設(shè)計(jì)中。這導(dǎo)致學(xué)生在后續(xù)實(shí)際項(xiàng)目中無法靈活運(yùn)用C語言,造成學(xué)習(xí)效果不佳。
跨學(xué)期開設(shè)后續(xù)課程導(dǎo)致C語言知識(shí)遺忘。在單片機(jī)課程教學(xué)中,學(xué)生可能會(huì)遺忘或儲(chǔ)備不足之前所學(xué)習(xí)的C語言知識(shí)。這導(dǎo)致他們?cè)趯W(xué)習(xí)單片機(jī)課程時(shí)需要花費(fèi)額外的時(shí)間來復(fù)習(xí)和補(bǔ)充之前的知識(shí),從而降低了學(xué)習(xí)效率。
綜上所述,傳統(tǒng)的C語言教學(xué)缺乏對(duì)特定專業(yè)的教學(xué)目標(biāo)和教學(xué)內(nèi)容的強(qiáng)調(diào),缺少課程間教學(xué)的過渡和引導(dǎo),以便于更有效率地使用C語言工具進(jìn)行專業(yè)設(shè)計(jì)[7-8]。在單片機(jī)課程的教學(xué)中,存在著對(duì)C語言知識(shí)的遺忘普遍問題,導(dǎo)致學(xué)習(xí)效率下降。由此,需要進(jìn)行C語言課程改革以提高學(xué)習(xí)效果[9-10]。
二? 課程教學(xué)方案改革
基于上述分析,具體設(shè)計(jì)并實(shí)施的教學(xué)改革方案如下。
(一)? 理論教學(xué)改革設(shè)計(jì)
為了達(dá)到兩門課程的“橋梁”連結(jié)作用,在C語言的課程設(shè)計(jì)方面融入了單片機(jī)知識(shí)點(diǎn)。分為理論教學(xué)設(shè)計(jì)和實(shí)驗(yàn)教學(xué)設(shè)計(jì)。其中,C語言的理論教學(xué)中,在數(shù)組、函數(shù)章節(jié)融入單片機(jī)對(duì)于數(shù)組的應(yīng)用、模塊化編程的思想和訓(xùn)練目標(biāo)。相應(yīng)的C語言實(shí)驗(yàn)課程也同步加強(qiáng)單片機(jī)編程的實(shí)操訓(xùn)練,進(jìn)一步培養(yǎng)學(xué)生軟件、硬件綜合調(diào)試的能力。具體的課程實(shí)施方案設(shè)計(jì)詳見表1。
根據(jù)表1,教師可以根據(jù)每個(gè)章節(jié)的教學(xué)內(nèi)容設(shè)定更有針對(duì)性的理論教學(xué)目標(biāo),并采用“將單片機(jī)應(yīng)用滲透于C語言編程”的教學(xué)方法進(jìn)行教學(xué)。在C程序結(jié)構(gòu)設(shè)計(jì)融合單片機(jī)環(huán)節(jié),將C語言課程中的“順序結(jié)構(gòu)”“循環(huán)結(jié)構(gòu)”和“分支結(jié)構(gòu)”與單片機(jī)編程的程序功能結(jié)合,讓學(xué)生理解無論多復(fù)雜的程序,都需要由上述基本結(jié)構(gòu)進(jìn)行有效組合,以實(shí)現(xiàn)程序功能。在數(shù)組融合單片機(jī)環(huán)節(jié),將C語言課程中的“數(shù)組”與單片機(jī)編程時(shí)的數(shù)碼管段選編碼字庫結(jié)合,讓學(xué)生理解數(shù)組在多個(gè)同種類型變量的定義、計(jì)算及引用方面的便捷和高效。在函數(shù)融合單片機(jī)環(huán)節(jié),將C語言課程中的“函數(shù)”與單片機(jī)編程時(shí)的程序架構(gòu)結(jié)合,讓學(xué)生理解實(shí)際編程中,需要使用“模塊化”編程的思想,利用函數(shù)的定義和調(diào)用,更加高效、合理地使用功能模塊,以提高編程效率。通過講解、示例演示和練習(xí)題等方式,幫助學(xué)生理解C語言的基本概念、語法規(guī)則以及數(shù)據(jù)類型和運(yùn)算符在單片機(jī)任務(wù)中的實(shí)際使用,以便于學(xué)生更直觀地理解C語言程序編寫的方法和意義。
表1? 課程實(shí)施方案設(shè)計(jì)
(二)? 實(shí)驗(yàn)教學(xué)改革設(shè)計(jì)
根據(jù)單片機(jī)課程的基礎(chǔ)實(shí)驗(yàn)內(nèi)容,設(shè)計(jì)與C語言相關(guān)的單片機(jī)融合實(shí)驗(yàn)項(xiàng)目,幫助學(xué)生將C語言理論知識(shí)應(yīng)用到硬件實(shí)物系統(tǒng)中。實(shí)驗(yàn)項(xiàng)目包括流水燈、定時(shí)器、按鍵及外部中斷部分的簡(jiǎn)單程序編寫、程序調(diào)試和特定功能實(shí)現(xiàn)等。通過實(shí)驗(yàn)項(xiàng)目的實(shí)踐,學(xué)生可以鞏固并應(yīng)用所學(xué)的C語言知識(shí),培養(yǎng)其實(shí)際操作的能力。單片機(jī)融合實(shí)驗(yàn)教學(xué)具體內(nèi)容見表2。
根據(jù)表2,教師可以利用三次實(shí)驗(yàn)的時(shí)間,在實(shí)驗(yàn)環(huán)節(jié)將單片機(jī)知識(shí)直觀地融合到C語言實(shí)驗(yàn)中,給學(xué)生提供更加明確的學(xué)習(xí)目的。
在“點(diǎn)亮第一盞燈”實(shí)驗(yàn)中,教師第一次引入單片機(jī)的實(shí)驗(yàn)操作,首先需要向?qū)W生介紹單片機(jī)Keil開發(fā)環(huán)境,并與C語言編程開發(fā)環(huán)境對(duì)比,讓學(xué)生有意識(shí)地區(qū)分、歸納兩種開發(fā)環(huán)境在操作步驟上的異同,不要混淆;其次,教師需要引導(dǎo)學(xué)生對(duì)單片機(jī)電路原理圖進(jìn)行認(rèn)知,如圖1所示。由于該實(shí)驗(yàn)中LED燈發(fā)光二極管的電路原理知識(shí)在模擬電子線路課程中已學(xué)過,故將學(xué)生從理論引到實(shí)際為講解的重點(diǎn),實(shí)驗(yàn)具體內(nèi)容為:用P1.7口做輸出口,接1只發(fā)光二極管,編寫程序,使發(fā)光二極管不停地閃爍,閃爍周期為0.4秒,可以利用軟件延時(shí)完成。通過上述教學(xué)過程,讓學(xué)生實(shí)際體驗(yàn)通過C語言編程實(shí)現(xiàn)單片機(jī)功能,有助于促進(jìn)學(xué)生的學(xué)習(xí)興趣。
在第二階段的“讓燈循環(huán)點(diǎn)亮”實(shí)驗(yàn)中,從點(diǎn)亮一盞燈擴(kuò)展為點(diǎn)亮多盞燈,實(shí)驗(yàn)具體內(nèi)容為:用P1.7、P1.6、P4.7和P4.6口做輸出口,各自接1只發(fā)光二極管,編寫程序,使4只發(fā)光二極管不停地閃爍,閃爍周期為0.4秒,可以利用軟件延時(shí)完成。讓學(xué)生實(shí)際操作并思考如下問題:Keil運(yùn)行和Visual C++ 6.0運(yùn)行的異同,注意區(qū)分,不要混淆;單片機(jī)的例程中,是否理解main()函數(shù)的內(nèi)容;是否理解while(1)循環(huán)函數(shù)的作用;Delay200ms()函數(shù)是在何處被調(diào)用的。通過上述教學(xué)過程,讓學(xué)生理解while循環(huán)的重要作用,并看懂函數(shù)調(diào)用與被調(diào)用的關(guān)系。
在第三階段的“按鍵控制點(diǎn)燈”實(shí)驗(yàn)中,提出人機(jī)交互的概念并利用按鍵觸發(fā)實(shí)現(xiàn)對(duì)于單片機(jī)的控制。實(shí)驗(yàn)具體內(nèi)容為:利用兩個(gè)按鍵控制LED燈,其中key1控制led1的亮滅,key2控制led2的亮滅,也可以自行設(shè)計(jì)按鍵功能,例如對(duì)于多盞燈循環(huán)點(diǎn)亮的控制等。讓學(xué)生理解單片機(jī)獨(dú)立按鍵原理及編程方法,如圖2所示。讓學(xué)生實(shí)際操作并思考如下問題:GPIO()函數(shù)是在何處被調(diào)用的;為什么主程序通常使用while循環(huán)而不使用for循環(huán)。通過上述教學(xué)過程,幫助學(xué)生從實(shí)際需求入手,分析C語言語法的理論原理及實(shí)際應(yīng)用。
(三)? 持續(xù)改進(jìn)和優(yōu)化教學(xué)內(nèi)容
教師需要定期評(píng)估和反思教學(xué)內(nèi)容的效果,不斷改進(jìn)和優(yōu)化教學(xué)內(nèi)容。在教學(xué)實(shí)施過程中,通過聽取學(xué)生的反饋意見、觀察學(xué)生的學(xué)習(xí)情況和成績(jī)表現(xiàn)等方式,了解教學(xué)內(nèi)容改進(jìn)的不足之處,并進(jìn)行相應(yīng)的改善和調(diào)整,更新教學(xué)內(nèi)容,使課程改革更貼近實(shí)際應(yīng)用和學(xué)生的需求。
三? 課程考核及評(píng)價(jià)改革
考慮到C語言課程的理論及實(shí)驗(yàn)教學(xué)內(nèi)容均有單片機(jī)相關(guān)內(nèi)容的更新,故期末考核試卷也增加了相應(yīng)考核知識(shí)點(diǎn),以便于對(duì)應(yīng)知識(shí)點(diǎn)的梳理、鞏固及考核。課程成績(jī)分配見表3。
其中:①期末考試成績(jī)占50%,試題中增設(shè)了單片機(jī)編程基礎(chǔ)知識(shí)的考核內(nèi)容,主要考核學(xué)生對(duì)于C語言在單片機(jī)任務(wù)中的應(yīng)用的理解;②實(shí)驗(yàn)課成績(jī)占30%,包括出勤、預(yù)習(xí)、操作和實(shí)驗(yàn)報(bào)告,見表2,實(shí)驗(yàn)課增設(shè)了單片機(jī)融合實(shí)驗(yàn),給予學(xué)生利用C語言知識(shí)點(diǎn)解決單片機(jī)任務(wù)的體驗(yàn),教師登記學(xué)生實(shí)驗(yàn)完成情況,以準(zhǔn)確了解學(xué)生對(duì)于單片機(jī)融合知識(shí)的掌握情況;③平時(shí)成績(jī)占20%,包括出勤和作業(yè)。以上考核方法經(jīng)期末考試驗(yàn)證,學(xué)生對(duì)于新增單片機(jī)知識(shí)點(diǎn)掌握良好,并極大地提升了學(xué)生對(duì)于單片機(jī)的學(xué)習(xí)興趣和學(xué)習(xí)動(dòng)力。
四? 課程實(shí)施效果分析及展望
以上教學(xué)設(shè)計(jì)方案均已在該院自動(dòng)化專業(yè)試點(diǎn)實(shí)施。通過實(shí)施以上課程內(nèi)容改革及課程考核及評(píng)價(jià)方法改革,進(jìn)一步總結(jié)在自動(dòng)化專業(yè)開設(shè)的C語言課程教學(xué)實(shí)施,分析其完成效果如下。
構(gòu)建了基于單片機(jī)實(shí)踐任務(wù)導(dǎo)向的C語言教學(xué)新理念,完善了兩門課程之間銜接,構(gòu)建了兩門課程間的“橋梁”。
進(jìn)一步推進(jìn)了相關(guān)競(jìng)賽及課后實(shí)踐,在教學(xué)普遍改善的基礎(chǔ)上,“以賽促學(xué)”,持續(xù)對(duì)全國(guó)大學(xué)生電子設(shè)計(jì)大賽、藍(lán)橋杯全國(guó)軟件和信息技術(shù)專業(yè)人才大賽(電子類單片機(jī)、嵌入式組)等競(jìng)賽助力。
有效加強(qiáng)了學(xué)生在大四畢業(yè)設(shè)計(jì)中的單片機(jī)設(shè)計(jì)學(xué)習(xí)與練習(xí)強(qiáng)度,保證了教學(xué)質(zhì)量。
通過實(shí)施教學(xué)改革方案并總結(jié)經(jīng)驗(yàn),后續(xù)會(huì)考慮進(jìn)一步增設(shè)“面向單片機(jī)強(qiáng)化”的C語言課程設(shè)計(jì),或進(jìn)一步改進(jìn)“強(qiáng)化C語言編程”的單片機(jī)課程設(shè)計(jì),以進(jìn)一步鞏固教學(xué)改革效果,提升教學(xué)質(zhì)量。本項(xiàng)改革具備充分的創(chuàng)新性,在后續(xù)具備客觀的可持續(xù)性,是一項(xiàng)需要持續(xù)創(chuàng)新且不斷積累的教育教學(xué)改革方案。
五? 結(jié)束語
傳統(tǒng)課程更需要?jiǎng)?chuàng)新改革,而且十分迫切。本文針對(duì)C語言和單片機(jī)這兩門課程展開研究,重點(diǎn)在于“架起一座橋”。通過分析C語言課程教學(xué)現(xiàn)狀,設(shè)計(jì)并實(shí)施基于單片機(jī)任務(wù)導(dǎo)向的C語言課程強(qiáng)化教學(xué)改革,改革課程評(píng)價(jià)指標(biāo),總結(jié)教學(xué)經(jīng)驗(yàn)并推進(jìn)后續(xù)改革計(jì)劃。對(duì)應(yīng)用型本科高校電子類專業(yè)的C語言課程方案提出了一種探索性方案并實(shí)施,進(jìn)一步提升了教學(xué)效果,具有一定的參考性。
參考文獻(xiàn):
[1] 張穎.C語言程序設(shè)計(jì)案例式教學(xué)改革及案例[J].科技視界,
2022(14):99-101.
[2] 楊凡.C語言程序設(shè)計(jì)教學(xué)改革模式的探索與實(shí)踐[J].福建電腦,2022,38(9):59-62.
[3] 樊紀(jì)山,孫巧榆,楊瑞,等.基于OBE理念的項(xiàng)目驅(qū)動(dòng)教學(xué)改革與建設(shè)——以“C語言程序設(shè)計(jì)”教學(xué)實(shí)踐為例[J].創(chuàng)新教育研究,2021,9(6):1723-1727.
[4] 高香梅,劉春梅.基于培養(yǎng)應(yīng)用能力的單片機(jī)課程教學(xué)方法研究[J].課程教育研究,2019(8):42.
[5] 劉明綱,李琦.基于SPOC的“C程序設(shè)計(jì)基礎(chǔ)”課程混合式教學(xué)改革實(shí)踐與探索[J].成都工業(yè)學(xué)院學(xué)報(bào),2022,25(2):87-92.
[6] 王麗楠,劉付勇,喬靜,等.項(xiàng)目驅(qū)動(dòng)C語言程序設(shè)計(jì)課程教學(xué)改革與實(shí)踐[J].電腦知識(shí)與技術(shù):學(xué)術(shù)版,2022,18(26):157-159.
[7] 廖秋香,姚高華,鄒木春,等.C語言中融入單片機(jī)部分內(nèi)容的教學(xué)改革探討[J].高教學(xué)刊,2016(8):141-142.
[8] 楊立,張樂,李霞.基于單片機(jī)的“C語言程序設(shè)計(jì)”課程教學(xué)研究[J].無線互聯(lián)科技,2020,17(1):79-80.
[9] 孫敏.民辦高?;凇癕OOC+SPOC+翻轉(zhuǎn)課堂”教學(xué)模式研究——以C語言程序設(shè)計(jì)課程為例[J].創(chuàng)新創(chuàng)業(yè)理論研究與實(shí)踐,2018(17):27-28.
[10] 王開軍,阮淑玲,方瑩.編程語言的核心問題貫通式教學(xué)法[J].計(jì)算機(jī)教育,2022(9):162-165.