楊 陽,胡 雋 雅
五年制高職C語言課程中算術(shù)運算符與表達(dá)式的教學(xué)設(shè)計與實踐
楊 陽,胡 雋 雅
介紹了C語言課程教學(xué)中算術(shù)運算符與表達(dá)式的教學(xué)內(nèi)容,分析了以編程實現(xiàn)“某超市收銀系統(tǒng)對購物總價的計算”的任務(wù)驅(qū)動法及其教學(xué)設(shè)計與過程。
五年制高職;C語言;算術(shù)運算符與表達(dá)式;教學(xué)設(shè)計
C語言作為一種面向過程的結(jié)構(gòu)化程序設(shè)計語言,具有非常靈活高效的特點,[1]已廣泛應(yīng)用于計算機(jī)控制、電子技術(shù)及嵌入式系統(tǒng)的開發(fā)設(shè)計中。然而由于五年制高職學(xué)生年齡普遍較小,知識基礎(chǔ)相對薄弱,學(xué)習(xí)積極性、自覺性不高,在相對枯燥的語言面前不能產(chǎn)生足夠的興趣,[2]甚至部分學(xué)生產(chǎn)生了厭學(xué)的情緒,所以傳統(tǒng)的C語言教學(xué)方法已不能滿足實際教學(xué)需要。依據(jù)“以能力培養(yǎng)為核心,以實踐教學(xué)為主線”的職業(yè)教育教學(xué)思想,[2]結(jié)合所授課專業(yè)的技能需要,有必要將所學(xué)C語言知識同解決現(xiàn)實生活問題相聯(lián)系。下面就運算符與表達(dá)式的教學(xué)方法作一探討。
根據(jù)C語言知識結(jié)構(gòu)及多數(shù)教材參考,結(jié)合五年制高職C語言教學(xué)目的與教學(xué)內(nèi)容,學(xué)生在經(jīng)過C語言的基本概念和基本數(shù)據(jù)類型的學(xué)習(xí)后,將會進(jìn)入到運算符與表達(dá)式這一小節(jié)的學(xué)習(xí)中,而算術(shù)運算符與算術(shù)表達(dá)式作為運算符與表達(dá)式小節(jié)內(nèi)容的基礎(chǔ),同時,又能體現(xiàn)出高職教育的實用原則。通過對算術(shù)運算符與算術(shù)表達(dá)式的學(xué)習(xí),學(xué)生既鞏固了前期所學(xué)的C語言基本數(shù)據(jù)類型等知識,又能夠基本具備完成簡單程序設(shè)計的能力,同時,也增加了學(xué)生學(xué)習(xí)C語言的興趣。
算術(shù)運算符與算術(shù)表達(dá)式學(xué)習(xí)在于學(xué)生最終能夠完成簡單算術(shù)表達(dá)式的整體程序設(shè)計并進(jìn)行初步的程序調(diào)試。然而由于學(xué)生剛開始接觸C語言不久,所了解與掌握的C語言知識較少且不扎實,對于新舊知識的聯(lián)系不能充分認(rèn)識,具有較大的畏難心理。
為克服學(xué)生畏難心理,實現(xiàn)新舊知識串聯(lián),增強(qiáng)學(xué)生學(xué)習(xí)C語言的信心,從而達(dá)到教學(xué)目的,在整個課堂教學(xué)過程中,可以采用以實現(xiàn)“超市收銀系統(tǒng)對購物總價的計算”的程序設(shè)計的任務(wù)驅(qū)動方法。
首先結(jié)合同學(xué)生活實際,通過角色扮演生活中購物時所遇到的問題引出該任務(wù),然后引導(dǎo)學(xué)生總結(jié)出計算物品總價的一般性公式——算術(shù)表達(dá)式,隨后教師圍繞該公式的程序化實現(xiàn),講授新的知識點——算術(shù)運算符,并聯(lián)系已學(xué)C語言基本數(shù)據(jù)類型、變量定義與賦值等知識分析該程序的基本實現(xiàn)步驟。在上機(jī)調(diào)試時,對于程序編譯與運行的錯誤,鼓勵學(xué)生以小組討論、協(xié)作糾錯。在上機(jī)調(diào)試結(jié)束后,各個小組進(jìn)行簡要發(fā)言并總結(jié)所遇問題及解決方法等。最后,小組小結(jié)、教師點評與歸納分析學(xué)生在程序設(shè)計與調(diào)試時的共性問題,啟發(fā)學(xué)生進(jìn)行一般性算術(shù)表達(dá)式的編程設(shè)計。
1.任務(wù)引出。教師首先通過PPT展示一張水果攤賣水果的圖片并給出當(dāng)下一些水果的價格(如蘋果5元/斤,香蕉2元/斤等),然后請一位同學(xué)扮演老板,老師扮演顧客。
“顧客”提問:老板,我買了2斤蘋果、2斤香蕉,一共多少錢?
“老板”回答:14元。(此過程可以選擇不同學(xué)生、不同的水果購買組合提問)
老師(對剛剛幾位扮演老板同學(xué))提問:你們是如何計算的?
學(xué)生:口算、計算器等。
教師:各位“老板”計算都很快、很準(zhǔn)確。假設(shè)幾年之后,你的水果生意規(guī)模擴(kuò)大了,開了一個超市,這時我又來到你這里買東西,這一次,我買了牙刷、牙膏、紙巾、飲料……這時你還能很快且準(zhǔn)確的計算出所有物品的總價嗎?
學(xué)生思考……
教師小結(jié):對于多數(shù)量、多品種物品的總價計算,若仍靠口頭或計算器等計算方式則會既耗時又易出錯。同時引導(dǎo)學(xué)生回想現(xiàn)實生活中的超市是如何對顧客所購物品進(jìn)行總價計算(PPT此時展示一張超市自動收銀臺及其界面的圖片),從而拋出收銀機(jī)是如何實現(xiàn)快速計算物品總價的疑問,引出課題任務(wù)。
2.任務(wù)分析與分解。教師提供一張某超市購物單,請各小組核算該購物清單上收銀機(jī)所計算出的總價是否正確。
在給學(xué)生一定計算時間后,教師請某一小組說其所計算的總價是否與該清單上的總價一致,并請別的小組判斷他們的結(jié)果是否正確。教師再次對驗算出總額的小組提問是如何計算出總額,引導(dǎo)學(xué)生一起概括出計算多種數(shù)量的不同物品的總額公式:
物品1的單價×數(shù)量1+物品2的單價×數(shù)量2+……物品n的單價×數(shù)量n=物品總價
教師點評:收銀機(jī)能夠?qū)崿F(xiàn)物品總額的計算,其實就是實現(xiàn)該公式(即算術(shù)表達(dá)式)的程序化表達(dá)。
(1)C語言程序框架。#include
(2)算式表達(dá)式的程序?qū)崿F(xiàn)(運算符的知識點)。①算術(shù)運算符:教師通過對計算物品總價的公式中有哪些運算符的提問引出算術(shù)運算符(+、-、*、/、%), 由于加減乘除這4種算術(shù)運算符學(xué)生比較熟悉,著重介紹%——取余數(shù)運算符,通過舉例與小題練習(xí)的形式促進(jìn)學(xué)生對該運算符的掌握。②賦值運算符(=):教師可以以文字處理軟件中的復(fù)制與剪切的概念講解,使得學(xué)生便于理解賦值的概念。③圓括號():在進(jìn)行數(shù)學(xué)表達(dá)式運算時用法和數(shù)學(xué)中圓括號一樣。④在學(xué)過以上幾種運算符后,教師再通過一個算術(shù)表達(dá)式中同時出現(xiàn)所講的這幾個運算符,應(yīng)該先算哪一個后算哪一個的具體設(shè)問,引出此幾種運算符的優(yōu)先級關(guān)系,并舉例說明之。
(3)算式表達(dá)式的程序?qū)崿F(xiàn)(表達(dá)式中運算對象的知識點)。教師對所總結(jié)的總價計算公式中運算對象有哪些的提問與分析(物品1、2……的單價是不是可能隨著市場價格變動的?數(shù)量1、2…...對于每個購買東西的人而言是不是也有可能不同?),引出在運算符前后的這些運算對象與先前所學(xué)的變量概念知識點的聯(lián)系,從而根據(jù)變量的三要素(變量類型、變量名和變量值)知識來講解分析其在該程序?qū)崿F(xiàn)中的步驟:①首先根據(jù)變量名命名規(guī)則在內(nèi)存中定義一些變量用來存放不同物品的單價與數(shù)量以及最終的總額,如danjia1,shuliang1;②由于這些物品單價有可能不是整數(shù),所以給存放物品單價的變量類型定義為實型變量float;而物品數(shù)量應(yīng)為正整數(shù),所以給存放物品數(shù)量的變量類型定義為無符號的整型變量unsigned int;最終總額也有可能不是整數(shù),所以給存放總額的變量類型也定義為實型變量float;③各個變量空間里所“住”數(shù)值為各個變量所對應(yīng)的對象,如物品1數(shù)量這個變量空間里“住”的是物品1的數(shù)量值:shuliang1=2。最后,課堂開始時所提出的總價公式可由學(xué)生自己總結(jié)出在C語言中可表示為:
(4)算式表達(dá)式運算結(jié)果的輸出。教師通過學(xué)生已學(xué)習(xí)過的C語言入門程序——“hello world!”,簡要說明如何通過printf函數(shù)將某一個或幾個變量值輸出到電腦屏幕(在后續(xù)的學(xué)習(xí)中還有專門介紹printf函數(shù)的用法)。
3.任務(wù)實現(xiàn)。在講解與分析完該程序的實現(xiàn)過程后,教師鼓勵學(xué)生依據(jù)所講授的步驟在小組內(nèi)以自由討論的形式來完成該程序的編寫,老師則對學(xué)生在完善與調(diào)試程序中出現(xiàn)的問題給予指導(dǎo)。對于完成較快、程序可讀性較高的小組,可再給其介紹printf函數(shù)的相關(guān)知識,以美化輸出界面,增強(qiáng)學(xué)生的學(xué)習(xí)興趣。
4.任務(wù)總結(jié)。在任務(wù)小結(jié)階段中,先由教師對任務(wù)完成較好的幾組同學(xué)加以表揚并予以記錄,希望別的小組在今后完成其他任務(wù)時再接再厲,然后請各小組講出其在剛剛完成任務(wù)過程中所遇到的一些問題及解決方法,未能解決的問題其他小組可曾遇到及可否解決等等。對于各小組的共性問題,老師集中點評,個別問題則課后再進(jìn)行答疑。最后,在本次任務(wù)基礎(chǔ)上加以適當(dāng)變形作為課后習(xí)題,鞏固學(xué)生對一般算術(shù)表達(dá)式的編程計算的理解與掌握。
囿于高職學(xué)生的學(xué)習(xí)習(xí)慣、方法加之C語言學(xué)科的特點等因素,造成學(xué)生在學(xué)習(xí)本門課程時,學(xué)習(xí)動力不夠,學(xué)習(xí)興趣不高,這就要求教師在進(jìn)行知識傳授時不可一味遵從固有授課模式,應(yīng)根據(jù)不同知識點的講授選擇適當(dāng)教學(xué)方法、了解與發(fā)掘?qū)W生興趣點(如大多數(shù)學(xué)生喜歡的游戲、QQ等話題),聯(lián)系學(xué)生已有生活認(rèn)知融入趣味實例,有時將會取得事半功倍的效果,從而最終讓學(xué)生變得樂學(xué)、想學(xué)。
對于高職學(xué)生來說,動手解決問題的能力至關(guān)重要。[3]而C語言又是一門實踐性很強(qiáng)的課程,需要通過不斷的上機(jī)編程與調(diào)試來積累。為充分保證每一位學(xué)生進(jìn)行動手編程,提高動手能力,筆者嘗試實施以下方法:(1)采用分組協(xié)作,各組組員自由組合,輔以老師微調(diào),組員分工由各組討論;(2)各組任務(wù)并不完全相同,以小組為考核單位;(3)鼓勵組間競爭,團(tuán)隊合作。對于抄襲等現(xiàn)象,則采取一定的處罰方式(如小組得分打折計算,組長得分相應(yīng)減少等);(4)課程最終成績評定時,上機(jī)動手編程占一定的比例分,每次編程題完成后及時上傳到教師機(jī)。
C語言課程教學(xué)質(zhì)量的優(yōu)劣關(guān)系到相關(guān)專業(yè)學(xué)生對本專業(yè)知識的掌握及影響著后續(xù)課程的再學(xué)習(xí)能力,因此,充分調(diào)動學(xué)生學(xué)習(xí)興趣,做到充分發(fā)揮教師的主導(dǎo)作用和學(xué)生的主體作用與培養(yǎng)學(xué)生實踐能力相結(jié)合,對于每一位C語言教師來說都是一個值得探索的問題。本文以算術(shù)運算符與表達(dá)式教學(xué)內(nèi)容為例,展示了C語言課程的課堂教學(xué)方式,具有一定的成效性。
[1]黃雄波.高職C語言課程中循環(huán)結(jié)構(gòu)的教學(xué)設(shè)計與實踐[J].計算機(jī)時代,2012(5):49-51.
[2]陳峰.五年制高職應(yīng)用電子專業(yè)C語言教學(xué)淺析[J].科教文匯,2010(10):170-171.
[3]崔婭萍.高職C語言教學(xué)探討與研究[J].中國科教創(chuàng)新導(dǎo)刊,2010(28):55-57.
G712
A
1674-7747(2013)09-0040-03
楊陽,男,江蘇聯(lián)合職業(yè)技術(shù)學(xué)院南京分院助教,碩士,主要研究方向為檢測技術(shù)與自動化裝置。
[責(zé)任編輯 陳國平]