王帥
摘 要:C語言是一種應(yīng)用廣泛但學(xué)習(xí)難度較大的計(jì)算機(jī)高級語言,C語言程序設(shè)計(jì)是計(jì)算機(jī)和電子技術(shù)等專業(yè)的重要基礎(chǔ)課程。筆者結(jié)合日常教學(xué),從充分激發(fā)學(xué)生學(xué)習(xí)興趣、合理調(diào)整教學(xué)內(nèi)容和教學(xué)過程、優(yōu)化教學(xué)方法等方面對職業(yè)院校C語言程序設(shè)計(jì)課程教學(xué)進(jìn)行探討。
關(guān)鍵詞:C語言? ? C語言程序設(shè)計(jì)課程? ? 教學(xué)內(nèi)容? ? 教學(xué)策略
C語言是一種結(jié)構(gòu)化的計(jì)算機(jī)高級語言,它的邏輯層次清晰,支持模塊化編程,調(diào)試維護(hù)方便,執(zhí)行效率高。C語言的功能非常強(qiáng)大,廣泛應(yīng)用于計(jì)算機(jī)編程、科學(xué)計(jì)算、嵌入式開發(fā)等多個領(lǐng)域。因此,C語言程序設(shè)計(jì)課程已成為許多專業(yè)的基礎(chǔ)必修課。學(xué)生掌握了C語言后,對計(jì)算機(jī)軟硬件的認(rèn)知程度會大大提高,可以為以后學(xué)習(xí)其他編程語言打下基礎(chǔ)。
一、充分激發(fā)學(xué)生學(xué)習(xí)興趣
(一)結(jié)合職業(yè)院校學(xué)生特點(diǎn)開展教學(xué)
職業(yè)院校學(xué)生普遍具有數(shù)學(xué)英語基礎(chǔ)薄弱、基礎(chǔ)較差的特點(diǎn),而C語言程序設(shè)計(jì)課程以英語和數(shù)學(xué)算法為基礎(chǔ),因此,職業(yè)院校學(xué)生在學(xué)習(xí)C語言時會遇到一些困難,甚至?xí)a(chǎn)生放棄的想法。
筆者在最開始講授C語言程序設(shè)計(jì)課程中的頭文件#include
實(shí)際上“stdio”是英文standard input & output的縮寫,即標(biāo)準(zhǔn)輸入輸出。教師只有將這個縮寫單詞展開講清楚,才能使學(xué)生理解為什么在寫程序的時候要引用這個擴(kuò)展名,從而讓學(xué)生在理解的基礎(chǔ)上減少出現(xiàn)拼寫錯誤的次數(shù),增加學(xué)生在學(xué)習(xí)上的獲得感,進(jìn)而激發(fā)學(xué)生的學(xué)習(xí)興趣。
(二)強(qiáng)調(diào)C語言程序設(shè)計(jì)課程的重要性
一些學(xué)生對C語言程序設(shè)計(jì)課程的學(xué)習(xí)存在一些誤解。他們認(rèn)為自己畢業(yè)后不會從事計(jì)算機(jī)相關(guān)行業(yè)的工作,因此沒有必要學(xué)習(xí)C語言。還有學(xué)生認(rèn)為,相比當(dāng)前比較火爆的Python和Java語言,C語言在當(dāng)今計(jì)算機(jī)領(lǐng)域已無用武之地,所以學(xué)不好也沒有什么影響,但事實(shí)并非如此。
教師在課堂上應(yīng)該強(qiáng)調(diào)C語言的重要性,并介紹C語言在日常生活中的應(yīng)用,如游戲開發(fā)、操作系統(tǒng)和集成電路設(shè)計(jì)等,并通過一些切合實(shí)際的、有趣的程序來幫助學(xué)生認(rèn)識到C語言在日常生活和學(xué)習(xí)上的應(yīng)用,拉近學(xué)生和C語言程序設(shè)計(jì)課程之間的距離,激發(fā)學(xué)生學(xué)習(xí)C語言程序設(shè)計(jì)課程的興趣。比如在給電子類專業(yè)的學(xué)生上課時,教師可以借助學(xué)生學(xué)習(xí)過的單片機(jī),通過C語言程序設(shè)計(jì)實(shí)現(xiàn)流水燈的功能。
教師要讓學(xué)生們意識到,盡管他們將來不一定從事程序開發(fā)的工作,但是在使用某些應(yīng)用程序時,通過編程可以簡化操作和管理。
而且,當(dāng)今許多軟件和程序設(shè)計(jì)語言,如時下流行的C++語言,都是在C語言的基礎(chǔ)上開發(fā)出來的,學(xué)習(xí)C語言將對學(xué)習(xí)C++有很大幫助。
此外,還有許多先進(jìn)的開發(fā)工具,如Photoshop、3D MAX等,都是由C語言所編寫。有了良好的C語言基礎(chǔ),在以后的專業(yè)學(xué)習(xí)中很多問題都會很快得到解決。
二、合理調(diào)整教學(xué)內(nèi)容和教學(xué)過程
(一)合理調(diào)整教學(xué)內(nèi)容
1.根據(jù)專業(yè)調(diào)整教學(xué)內(nèi)容
對于不同的專業(yè),教師應(yīng)設(shè)置不同的教學(xué)重點(diǎn)。如電子專業(yè)應(yīng)著重講解循環(huán)、數(shù)組方面的知識,計(jì)算機(jī)專業(yè)需要著重講解函數(shù)設(shè)計(jì)和系統(tǒng)文件操作等方面的知識。
對于一些經(jīng)典例題,教師需要詳細(xì)說明其中的解決辦法。比如在循環(huán)程序設(shè)計(jì)章節(jié)的教學(xué)中,教師可以通過分步操作,逐一列出每個步驟的執(zhí)行結(jié)果,幫助學(xué)生更好地理解循環(huán)程序的執(zhí)行過程。
根據(jù)筆者的教學(xué)經(jīng)驗(yàn),非計(jì)算機(jī)專業(yè)學(xué)生需要掌握程序的基本結(jié)構(gòu)、輸入輸出、數(shù)組等方面的知識,計(jì)算機(jī)專業(yè)的學(xué)生必須掌握更深層次的知識,例如指針、結(jié)構(gòu)體、函數(shù)和文件操作。筆者會以此為依據(jù)進(jìn)行教學(xué)內(nèi)容的調(diào)整。
2.以就業(yè)為導(dǎo)向調(diào)整教學(xué)內(nèi)容
職業(yè)教育旨在為社會培養(yǎng)具備實(shí)際工作能力的技能型、應(yīng)用型人才。因此,教師在教學(xué)內(nèi)容方面也應(yīng)適當(dāng)進(jìn)行調(diào)整,盡量多地與實(shí)際應(yīng)用相聯(lián)系。
教師要以就業(yè)為導(dǎo)向,利用現(xiàn)有資源重新整合教學(xué)內(nèi)容,努力從多方面向?qū)W生展示知識在實(shí)際工作中的運(yùn)用,激發(fā)學(xué)生的學(xué)習(xí)興趣。教師可通過安排學(xué)生外出參觀學(xué)習(xí)、邀請相關(guān)專業(yè)的畢業(yè)生回校進(jìn)行交流分享等活動,讓學(xué)生更好地了解C語言在今后工作中的應(yīng)用。
同時,教師在日常教學(xué)中應(yīng)將教學(xué)案例與實(shí)際工作中的任務(wù)對標(biāo),并在實(shí)訓(xùn)中進(jìn)行強(qiáng)調(diào)。通過模擬實(shí)際的工作任務(wù),培養(yǎng)學(xué)生解決問題的思維和能力。這種以就業(yè)為導(dǎo)向的教學(xué)有助于學(xué)生今后更好地適應(yīng)崗位工作。
(二)合理調(diào)整教學(xué)過程
傳統(tǒng)的C語言程序設(shè)計(jì)課程教學(xué)是以課堂為中心的全方位教學(xué),上機(jī)實(shí)訓(xùn)課時通常約占總課時的40%。同時,C語言程序設(shè)計(jì)課程是一門知識點(diǎn)多且復(fù)雜的課程,故理論教學(xué)和上機(jī)實(shí)訓(xùn)的時間相對緊張。因此,教師在教學(xué)過程中要適當(dāng)增加上機(jī)實(shí)訓(xùn)課時比例,合理調(diào)整教學(xué)過程。
筆者通過日常教學(xué)發(fā)現(xiàn),由于職業(yè)院校學(xué)生的自控能力較差,故不宜采用長時間詳盡講解教材的教學(xué)方法,并且教師要注意教學(xué)內(nèi)容的次序。在學(xué)生上機(jī)實(shí)訓(xùn)之前,教師往往是從變量、數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、語句等基本定義開始講解。但短時間內(nèi)有太多的知識點(diǎn)需要記憶,很容易使學(xué)生失去學(xué)習(xí)興趣。
因此,教師要適當(dāng)減少運(yùn)算符、表達(dá)式等部分的講解,盡快進(jìn)入編程部分的講解,讓學(xué)生盡快進(jìn)入實(shí)操練習(xí),提高學(xué)生的實(shí)踐能力和學(xué)習(xí)興趣。
教師可按照先具體后抽象的順序進(jìn)行理論知識的講解。例如,在講解C語言循環(huán)的知識點(diǎn)時,教師可以先讓學(xué)生通過一個簡單的循環(huán)程序來理解基本語法,如設(shè)計(jì)一個程序,多次輸出相同的內(nèi)容。這個程序只涉及單層的簡單for循環(huán),學(xué)生能夠快速上手并得出正確的結(jié)果,讓學(xué)生在完成基礎(chǔ)任務(wù)學(xué)習(xí)的同時提升成就感。
教師還需從應(yīng)用的角度來劃分知識內(nèi)容并依次進(jìn)行教學(xué),并且要了解相關(guān)知識點(diǎn)對于學(xué)生來說難易程度是怎樣的。根據(jù)C語言初學(xué)者的認(rèn)知規(guī)律,教師應(yīng)將難點(diǎn)進(jìn)行合理分配,以降低單個程序的編寫難度,并幫助學(xué)生在實(shí)際操作中掌握重點(diǎn),及時糾正學(xué)生在實(shí)際操作中出現(xiàn)的錯誤。
三、優(yōu)化教學(xué)方法
(一)采用任務(wù)驅(qū)動教學(xué)法
任務(wù)驅(qū)動教學(xué)法是指將教學(xué)內(nèi)容設(shè)計(jì)成一個或多個任務(wù),通過教師布置任務(wù)、學(xué)生完成任務(wù)的方式,鍛煉學(xué)生獨(dú)立分析和解決問題的能力,讓學(xué)生在掌握課堂教學(xué)內(nèi)容的同時,達(dá)到教學(xué)目標(biāo)。
結(jié)合任務(wù)驅(qū)動教學(xué)法的基本思想和職業(yè)院校學(xué)生的實(shí)際情況,C語言程序設(shè)計(jì)課程的教學(xué)內(nèi)容可分為以下知識點(diǎn):輸入輸出、程序的基本結(jié)構(gòu)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體和文件。教師可以將一些基礎(chǔ)知識點(diǎn)融入一個小的C語言項(xiàng)目進(jìn)行講解,然后讓學(xué)生通過一些有趣而實(shí)用的案例來運(yùn)用和復(fù)習(xí)相關(guān)知識點(diǎn)。這樣做既能培養(yǎng)學(xué)生的編程思維和習(xí)慣,又可根據(jù)學(xué)生的完成情況形成及時的教學(xué)反饋,幫助教師改進(jìn)日后的教學(xué)設(shè)計(jì)。
(二)采用分步教學(xué)法
針對基礎(chǔ)不同的學(xué)生,教師需要采用分步教學(xué)法,這樣更符合學(xué)生的學(xué)習(xí)規(guī)律。
例如,在進(jìn)行猜數(shù)字游戲的程序設(shè)計(jì)時,教師可將任務(wù)分解成多個步驟,即先利用選擇結(jié)構(gòu)實(shí)現(xiàn)一次判斷,再利用單層循環(huán)實(shí)現(xiàn)一個數(shù)字的猜測,最后利用多層循環(huán)實(shí)現(xiàn)連續(xù)的數(shù)字猜測的設(shè)計(jì)步驟。再下一步,教師可讓完成基本功能的學(xué)生為程序添加合適的提示用語,逐步對游戲進(jìn)行完善。
經(jīng)過教學(xué)實(shí)踐,學(xué)生會對循序漸進(jìn)的課堂教學(xué)產(chǎn)生濃厚的興趣。通過不斷的編程調(diào)試,學(xué)生的編程思想和程序設(shè)計(jì)能力會得到進(jìn)一步提高。
(三)采用分層教學(xué)法
根據(jù)職業(yè)院校學(xué)生不同的知識水平和實(shí)踐能力,教師在教學(xué)設(shè)計(jì)中要設(shè)置不同的任務(wù),從而達(dá)到每位學(xué)生都能在課堂上獲得新知識的目的。
以講解if條件判斷語句為例,教師可以做如下教學(xué)設(shè)計(jì)。
對于基礎(chǔ)較差的學(xué)生,可以安排簡單的只有兩種情況的if-else語句,以幫助學(xué)生理解知識點(diǎn),增強(qiáng)自信心。
對于基礎(chǔ)一般的學(xué)生,可以將選擇句子的數(shù)量增加到3個或4個,以測試學(xué)生的知識轉(zhuǎn)換能力。
對于能夠快速獨(dú)立完成上述任務(wù)的學(xué)生,可分配一些更加具體的任務(wù),如改進(jìn)程序的輸入方式、增加提示語、優(yōu)化代碼結(jié)構(gòu)等,幫助這部分學(xué)生更好地掌握C語言程序設(shè)計(jì)課程的相關(guān)知識,提升課堂學(xué)習(xí)效率。
四、小結(jié)
對于職業(yè)院校的學(xué)生來說,學(xué)習(xí)C語言程序設(shè)計(jì)課程不僅是形成知識體系的需要,也是提高崗位能力的需要。在C語言程序設(shè)計(jì)課程教學(xué)中,教師要充分激發(fā)學(xué)生的學(xué)習(xí)興趣,鍛煉學(xué)生設(shè)計(jì)程序的能力,并根據(jù)現(xiàn)代職業(yè)教育的培養(yǎng)目標(biāo),合理調(diào)整教學(xué)內(nèi)容和教學(xué)過程,優(yōu)化教學(xué)方法,以提高C語言程序設(shè)計(jì)課程教學(xué)的教學(xué)效率,培養(yǎng)和提高學(xué)生分析問題、解決問題的能力。
參考文獻(xiàn):
[1]李月.設(shè)計(jì)性計(jì)算機(jī)實(shí)驗(yàn)課中培養(yǎng)學(xué)生自主學(xué)習(xí)的興趣及創(chuàng)新能力[J].鞍山師范學(xué)院學(xué)報(bào),2004(4).
[2]陳大清.淺談對中職學(xué)生C語言程序設(shè)計(jì)的教學(xué)思考[J].赤子,2018(22).
[3]劉美健.C語言程序設(shè)計(jì)課程教學(xué)改革實(shí)踐[J].中國職業(yè)技術(shù)教育,2012(32).
[4]唐永紅,龔安.程序設(shè)計(jì)語言實(shí)驗(yàn)教學(xué)探討[J].電氣電子教學(xué)學(xué)報(bào),2006(3).
[5]劉芳,秦興國,王宇英.《C語言程序設(shè)計(jì)》教學(xué)存在的問題及改進(jìn)[J].教育理論與實(shí)踐,2012(36).
(作者單位:北京電子信息技師學(xué)院)