鄭磊
摘要:針對我院自動化專業(yè)學(xué)生的學(xué)習(xí)現(xiàn)狀,分析了C語言教學(xué)過程中存在的實際問題,通過調(diào)整教學(xué)內(nèi)容、改進(jìn)教學(xué)方法、加強(qiáng)實踐教學(xué)、優(yōu)化考核體系等一系列措施對C語言課程進(jìn)行教學(xué)改革,取得了較好的教學(xué)效果。
關(guān)鍵詞:C語言;自動化專業(yè);模塊化教學(xué);對分課堂;實踐教學(xué)
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)36-0145-03
Abstract: Aiming at the current situation of students learning in automation major, this paper analyzes the practical problems in C language teaching process, through a series of measures such as adjusting teaching content, improving teaching methods, strengthening practical teaching and optimizing examination system,to reform C language teaching, eventually achieved good teaching results.
Key words: C language; automation major; modular teaching; PAD class; practical teaching
1 概述
C語言是一種典型的結(jié)構(gòu)化程序設(shè)計語言,它既具有高級語言語法精煉、類型豐富、表達(dá)能力強(qiáng)、適于模塊化編程等優(yōu)點,又具有低級語言高效、易控制計算機(jī)硬件等特點[1]。目前,國內(nèi)高校普遍將其作為理工科入門級的程序設(shè)計公共課程,除計算機(jī)專業(yè)以外,其他專業(yè)均把它作為通識課程來實施教學(xué)。然而,該課程的培養(yǎng)目標(biāo)應(yīng)該是培養(yǎng)學(xué)生能夠利用計算機(jī)處理問題的思維方式,啟發(fā)學(xué)生主動將計算機(jī)引入到所學(xué)專業(yè)的學(xué)習(xí)中去[2]。因此,如何結(jié)合理工科專業(yè)自身特點進(jìn)行“C語言程序設(shè)計”課程教學(xué),使之既遵循課程教學(xué)的基本原則和方法,又能融入到專業(yè)學(xué)習(xí)中,是目前C語言課程教學(xué)改革的熱點。
對于自動化專業(yè)來說,學(xué)生部分專業(yè)課程的學(xué)習(xí)掌握和工作中的實踐應(yīng)用都離不開C語言,如單片機(jī)和嵌入式系統(tǒng)等智能芯片就是以C語言為基礎(chǔ)進(jìn)行設(shè)計開發(fā)的。自動化專業(yè)C語言的課程講授,要更加注重學(xué)生C語言編程應(yīng)用能力的培養(yǎng),充分發(fā)揮其在自動化專業(yè)課程體系中應(yīng)有的作用。
2 課程教學(xué)中存在的問題
在自動化專業(yè)“C語言程序設(shè)計”課程的教學(xué)過程中,由于課程自身特點、專業(yè)人才培養(yǎng)體系、學(xué)生知識結(jié)構(gòu)差異等多種原因,目前的教學(xué)工作面臨著以下問題:
2.1 授課內(nèi)容與專業(yè)課程銜接不緊密
目前,在大多數(shù)學(xué)校的非計算機(jī)專業(yè)中,C語言的教學(xué)與專業(yè)課的學(xué)習(xí)是采用完全割離的方式進(jìn)行的,一般在第二學(xué)期開設(shè)C語言課程,到第四個學(xué)期才開始陸續(xù)進(jìn)入專業(yè)課的學(xué)習(xí)。在傳統(tǒng)C語言教學(xué)中,通常以“Visual C++ 6.0”軟件為編譯環(huán)境,介紹C語言的基本數(shù)據(jù)類型與表達(dá)式、控制語句、數(shù)組、函數(shù)等基礎(chǔ)知識,此外,還會對指針、結(jié)構(gòu)體、共用體、甚至文件進(jìn)行詳細(xì)地講解[3]。在整個教學(xué)過程中過于注重語法、語句等細(xì)節(jié)的講授,缺少對算法設(shè)計的練習(xí),學(xué)生課堂參與度較低,以至于在學(xué)完整個課程之后,學(xué)生也不知道C語言在其專業(yè)中的具體用途,學(xué)完后很快就會忘記。這樣會使得學(xué)生在學(xué)習(xí)過程中沒有明確的學(xué)習(xí)目的,從而逐漸失去學(xué)習(xí)興趣,不利于學(xué)生分析和解決具體實際問題能力的培養(yǎng)。
2.2 沒有充分發(fā)揮其在自動化專業(yè)課程體系中的作用
作為一門實踐性、應(yīng)用性較強(qiáng)的課程,C語言能否學(xué)好將直接關(guān)系到自動化專業(yè)學(xué)生后期專業(yè)課的學(xué)習(xí)效果。通過C語言的學(xué)習(xí),應(yīng)該培養(yǎng)學(xué)生靈活運用算法思想來解決專業(yè)問題的能力,為學(xué)生進(jìn)一步學(xué)習(xí)“單片機(jī)”、“嵌入式系統(tǒng)”等其他專業(yè)課程打下堅實的基礎(chǔ)。但是,目前大部分高校對于C語言的定位只局限于普及計算機(jī)基礎(chǔ)知識,授課的深度和廣度不足,其價值僅僅體現(xiàn)在等級考試上,沒有充分發(fā)揮其在自動化專業(yè)課程體系中的應(yīng)有的作用。
2.3 實驗實踐教學(xué)效果不理想
C語言是大學(xué)入門級的程序設(shè)計語言,但是對于應(yīng)用型本科院校而言,學(xué)生的基礎(chǔ)相對來說比較薄弱,其前期的知識儲備只有少量的信息技術(shù)知識,但C語言中卻會涉及很多的概念和復(fù)雜的語法知識。學(xué)生普遍反映有些概念比較抽象,難以理解。所以,在教學(xué)過程中一定要將理論教學(xué)與實踐教學(xué)相結(jié)合,但大部分院校在開設(shè)課程的時候往往是先講理論后進(jìn)行實踐教學(xué)。這樣,學(xué)生所學(xué)習(xí)的理論知識得不到及時的消化吸收,理論教學(xué)與實踐教學(xué)相脫節(jié),達(dá)不到預(yù)期的教學(xué)效果。
3 教學(xué)改革實踐
針對以上存在的問題,我院計算機(jī)和自動化兩個專業(yè)教研室共同制定了一系列的教改措施,并在實施過程中針對具體出現(xiàn)的問題及時進(jìn)行調(diào)整。
3.1 調(diào)整課程結(jié)構(gòu),使教學(xué)向?qū)I(yè)靠攏
從培養(yǎng)學(xué)生利用計算機(jī)解決實際操作問題的能力出發(fā),打破傳統(tǒng)C語言的課程結(jié)構(gòu),以“理論夠用、重在實踐”為宗旨,以任務(wù)驅(qū)動為導(dǎo)向,將課程教學(xué)內(nèi)容劃分為5大模塊,模塊化教學(xué)內(nèi)容如圖1所示。每個模塊包含不同的任務(wù),完成不同能力的培養(yǎng)目標(biāo)。整個課程以學(xué)生為主體來展開,既避免枯燥的理論講解,又能將具體知識與后續(xù)的專業(yè)課相結(jié)合,使得整個教學(xué)過程逐步向?qū)I(yè)靠攏。
單片機(jī)等芯片開發(fā)設(shè)計是自動化專業(yè)學(xué)生的重點學(xué)習(xí)內(nèi)容之一,因此在C語言的授課過程中適當(dāng)?shù)脑黾雍唵蔚膯纹瑱C(jī)開發(fā)案例,由淺入深,引導(dǎo)學(xué)生逐步了解自動化專業(yè)到底可以干什么。例如,在學(xué)習(xí)完循環(huán)結(jié)構(gòu)之后,給學(xué)生演示用C語言來控制實現(xiàn)的跑馬燈程序,這樣可以讓學(xué)生清楚的了解循環(huán)程序在實際案例中是如何應(yīng)用的。
3.2 改進(jìn)教學(xué)方法,激發(fā)學(xué)生學(xué)習(xí)興趣
C語言是一種面向過程的高級語言,在理論講解時,其語法規(guī)則復(fù)雜繁瑣,而在上機(jī)實驗時,抽象的算法程序也很難激發(fā)學(xué)生的學(xué)習(xí)興趣。針對這些特點,根據(jù)教學(xué)模塊內(nèi)容不同、授課環(huán)境不同、教學(xué)對象不同設(shè)置不同的教學(xué)方法。
3.2.1 啟發(fā)式教學(xué)法
啟發(fā)式教學(xué)是在講授新概念、新的語法知識的時候,通過提問的方式來引入的一種教學(xué)方法[4]。比如,在講授變量定義這一知識點時,教師先進(jìn)行提問:我們班一共有多少個人?人數(shù)是用什么數(shù)來表示的?學(xué)生一般會回答人數(shù)是用整數(shù)來表示的。接下來教師進(jìn)一步進(jìn)行提問:那么在編寫程序的時候,怎么體現(xiàn)出人數(shù)是一個整數(shù)呢?這個時候?qū)W生會回答:我們可以告訴計算機(jī),用整數(shù)來表示人數(shù)。順理成章的老師的第三個問題就會出來:我們怎么告訴計算機(jī)呢?這樣很自然的就可以引出變量定義這個知識點。通過這種啟發(fā)式教學(xué),可以促使學(xué)生主動地進(jìn)行思考,建立起所學(xué)內(nèi)容與解決實際問題之間的聯(lián)系,當(dāng)再次遇到類似問題的時候可以很快的得到解決方法,真正做到即學(xué)即用,達(dá)到學(xué)以致用的教學(xué)目的。
3.2.2 案例教學(xué)法
通過啟發(fā)式教學(xué),學(xué)生對于基本語法知識有了一定了解之后,再讓案例教學(xué)貫穿于整個課堂教學(xué)之中。創(chuàng)建一種“提出問題—分析問題—解決問題”的課堂教學(xué)模式,圍繞每個模塊中精心設(shè)計的案例展開教學(xué),這樣不但可以激發(fā)學(xué)生的學(xué)習(xí)興趣,還能夠在解決問題的過程中增強(qiáng)學(xué)生的自信心與成就感。
3.2.3 對分教學(xué)法
為了提高學(xué)生的學(xué)習(xí)積極性,使學(xué)生由被動地跟著老師的思維走,變成積極主動地和老師一起思考,還可以采用對分教學(xué)法。對分教學(xué)是一種新的課堂教學(xué)模式,其核心理念為:教師將課堂時間一分為二,一半時間由教師進(jìn)行整體的講授,另一半時間則分配給學(xué)生,讓學(xué)生以討論的形式進(jìn)行學(xué)習(xí)[5]。采用對分教學(xué)法時,整個教學(xué)過程被分為“講授、內(nèi)化吸收、討論”三個階段來完成[6]。教師在課堂上只對內(nèi)容框架、基本概念、重難點進(jìn)行整體的講解;接下來學(xué)生利用為期一周的時間,通過閱讀課本、查閱資料等方式,對教師所講授的內(nèi)容進(jìn)行內(nèi)化吸收;在下次上課的時候,對于這一周的學(xué)習(xí)內(nèi)容,學(xué)生在課堂上分小組進(jìn)行討論,并以小組為單位對討論結(jié)果進(jìn)行總結(jié),最后由老師進(jìn)行點評。
3.3 加強(qiáng)實踐教學(xué),理論與實踐緊密結(jié)合
C語言是一門實踐性較強(qiáng)的課程,學(xué)生的編程能力必須要通過不斷的上機(jī)實踐才能得到提高。但是,從目前的實驗課來看,實驗課效果并不理想,學(xué)生普遍認(rèn)為編程無從下手,整個實驗課課堂效率較低。為了解決這一問題,我們在上機(jī)實踐的教學(xué)過程中采取以下措施:
3.3.1 合理設(shè)置實驗內(nèi)容
針對上述模塊中所涉及的知識點,精心設(shè)計實驗內(nèi)容,要求學(xué)生根據(jù)所學(xué)的知識進(jìn)行程序設(shè)計。在設(shè)計實驗內(nèi)容的時候,還要考慮到學(xué)生的理解水平和接受知識能力的差異,將每次的實驗內(nèi)容分為必做實驗和選做實驗。必做實驗是每個學(xué)生必須要完成的內(nèi)容,對于知識掌握較好的學(xué)生,則鼓勵他們嘗試去完成選做實驗。
3.3.2 理論授課進(jìn)機(jī)房
傳統(tǒng)教學(xué)中,通常是每周先在教室進(jìn)行2次理論授課,再在機(jī)房進(jìn)行1次上機(jī)實踐。這種“先理論后實踐”的教學(xué)方式會導(dǎo)致理論與實踐相脫節(jié),對于所學(xué)的知識點學(xué)生無法在第一時間進(jìn)行上機(jī)實踐。在本次教學(xué)改革中,我們嘗試將理論課也放在機(jī)房進(jìn)行授課,在上課的過程中,每個學(xué)生一臺電腦,教師每講完一個知識點后,學(xué)生立馬進(jìn)行編程實踐。這種理論與實踐相融合的方式,不僅能夠幫助學(xué)生更好地去理解抽象的語法知識,同時也能夠增強(qiáng)學(xué)生學(xué)習(xí)C語言的學(xué)習(xí)興趣。
3.3.3 教學(xué)軟件輔助實踐教學(xué)
在實踐教學(xué)中,因為每個學(xué)生都擁有電腦,可能會出現(xiàn)學(xué)生利用電腦進(jìn)行課程學(xué)習(xí)以外的行為,因此課堂紀(jì)律的維持是至關(guān)重要的,教師必須要做好對學(xué)生機(jī)的控制。這里,我院采用的是長城電子教室系統(tǒng),通過該系統(tǒng)教師可以對每一個學(xué)生的電腦進(jìn)行嚴(yán)格的監(jiān)控。在每次上課之前,教師通過該系統(tǒng)對學(xué)生進(jìn)行電子點名,檢查學(xué)生的出勤情況。除此之外,教師還可以利用該系統(tǒng)進(jìn)行廣播教學(xué),對于一些較復(fù)雜的程序,可以利用廣播教學(xué)教會學(xué)生跟蹤調(diào)試程序的方法,使學(xué)生在以后的編程過程中,可以用同樣的方法來調(diào)試自己的程序,及時發(fā)現(xiàn)程序中的邏輯問題并解決問題。
3.4 優(yōu)化課程考核方式,完善考核評價體系
傳統(tǒng)的C語言考核是閉卷筆試的方式,這樣會導(dǎo)致學(xué)生重理論輕實踐,很多學(xué)生期末考試雖然得分很高,但是編程能力卻一般。為了避免此類現(xiàn)象的出現(xiàn),在本次教改中,我們逐步加重過程考核的比重,降低期末卷面成績的比重。學(xué)生最終的成績由卷面成績和過程考核成績兩部分組成,期末卷面成績占50%,過程考核成績占50%。其中過程考核成績又分為兩部分,一部分由每次上機(jī)實踐過程中學(xué)生的出勤、上機(jī)表現(xiàn)和實踐報告組成,占過程考核的30%;另一部分由綜合實踐組成,占過程考核的70%。在綜合實踐中,將學(xué)生進(jìn)行分組,教師提供若干個項目題目供題目選擇。學(xué)生由3-5人組成一個項目小組,各自分工明確,小組合作完成程序設(shè)計、代碼編寫、程序調(diào)試,撰寫綜合報告,并制作PPT進(jìn)行綜合答辯,最后根據(jù)各個環(huán)節(jié)的完成情況由教師給出綜合實踐的成績。通過這種綜合實踐的方式,能夠把理論知識的學(xué)習(xí)和動手實踐能力的培養(yǎng)有效結(jié)合起來,最大程度挖掘出學(xué)生的創(chuàng)造力,讓學(xué)生具有分析和解決實際問題的能力。
4 結(jié)束語
自動化專業(yè)C語言課程的教學(xué)改革,在教授學(xué)生如何學(xué)習(xí)編程、培養(yǎng)學(xué)生邏輯思維能力的過程中,不斷嘗試新的教學(xué)方法,并將C語言的教學(xué)與自動化專業(yè)課程體系相結(jié)合。通過連續(xù)兩年對我院自動化專業(yè)學(xué)生的教學(xué)改革試點情況來看,學(xué)生的學(xué)習(xí)積極性和對課堂教學(xué)的滿意度明顯得到了提高,學(xué)習(xí)效果顯著增強(qiáng),后續(xù)專業(yè)課的學(xué)習(xí)效果也得到了較為明顯的改善。接下來,我們將根據(jù)實際教學(xué)情況,對本文提出的教改措施進(jìn)行進(jìn)一步的完善,形成一套適用于自動化專業(yè)的、并且具有良好教學(xué)效果的教學(xué)方案。
參考文獻(xiàn):
[1] 譚浩強(qiáng).C程序設(shè)計[M].3版.北京:清華大學(xué)出版社,2009.
[2] 陳麗敏,邵長友.基于自動化專業(yè)C語言課程教學(xué)改革的研究[J].中國電力教育,2013(31):76.
[3] 胡艷華.獨立學(xué)院非計算機(jī)專業(yè)C語言程序設(shè)計教改簡論[J].計算機(jī)教育,2011(20):49-52.
[4] 余炳輝,孫娟.《C語言》課程教改淺論[J].學(xué)術(shù)論壇,2009(27):222.
[5] 王飛飛,張素真.“對分”在C語言實訓(xùn)教學(xué)中的探索與應(yīng)用[J].科技資訊,2016(29):109-111.
[6] 張學(xué)新.對分課堂:大學(xué)課堂教學(xué)改革的新探索[J].復(fù)旦教育論壇,2014,12(5):5-10.