国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

地方高校C語(yǔ)言程序設(shè)計(jì)課堂教學(xué)內(nèi)容探討

2021-06-28 18:39洪留榮
電腦知識(shí)與技術(shù) 2021年10期
關(guān)鍵詞:數(shù)據(jù)類型C語(yǔ)言程序設(shè)計(jì)表達(dá)式

洪留榮

摘要:針對(duì)C語(yǔ)言程序設(shè)計(jì)課對(duì)于地方高校初學(xué)者學(xué)習(xí)上的困難,本文探討了在課堂教學(xué)上的一些教學(xué)思路。從數(shù)據(jù)類型、表達(dá)式以及復(fù)合語(yǔ)句三個(gè)方面探討了教學(xué)上應(yīng)關(guān)注的重點(diǎn)和核心,分析了這樣做的優(yōu)點(diǎn),強(qiáng)調(diào)了課堂教學(xué)從教材上提煉相關(guān)課堂內(nèi)容的重要性。

關(guān)鍵詞:C語(yǔ)言程序設(shè)計(jì);課堂教學(xué);數(shù)據(jù)類型;表達(dá)式;復(fù)合語(yǔ)句

中圖分類號(hào):G642? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)10-0117-03

C語(yǔ)言程序設(shè)計(jì)是計(jì)算機(jī)類專業(yè)的重要專業(yè)基礎(chǔ)課,教授的對(duì)象一般是高校低年級(jí)學(xué)生,地方高校學(xué)生優(yōu)點(diǎn)是視野天闊、個(gè)性強(qiáng)、接受新事物的能力強(qiáng),不足之處在于自控能力差、缺乏目標(biāo)、自我學(xué)習(xí)能力欠缺。因此,目前出現(xiàn)了諸多教學(xué)模式的探討。文獻(xiàn)[1]提出了基于“學(xué)習(xí)成果導(dǎo)向”理念的計(jì)算機(jī)基礎(chǔ)教學(xué)改革模式,從教學(xué)設(shè)計(jì)到最后的評(píng)價(jià)進(jìn)行了改良;文獻(xiàn)[2]針對(duì)學(xué)生能力提升問題改了教學(xué)模式,提出了培養(yǎng)學(xué)生C語(yǔ)言編程能力和工程實(shí)踐能力的教學(xué)模式;文獻(xiàn)[3]和[4]從教學(xué)的教法上進(jìn)行了C語(yǔ)言教學(xué)改革,分別討論了翻轉(zhuǎn)課堂和網(wǎng)絡(luò)教學(xué)模式的應(yīng)用;文獻(xiàn)[5]從精煉課程內(nèi)容上入手并提出了“MOOC+翻轉(zhuǎn)課堂教學(xué)模式”。這些改革的方法均發(fā)揮了各自的優(yōu)點(diǎn),考慮到無論教學(xué)模式如何,將課堂教學(xué)內(nèi)容簡(jiǎn)化、厘清知識(shí)的本質(zhì)是最根本的問題,它可以有效提升學(xué)生學(xué)習(xí)的興趣,使學(xué)生樂于進(jìn)一步探索學(xué)習(xí),更好地發(fā)揮新教學(xué)模式的作用,從而有效地培養(yǎng)他們的計(jì)算思維能力和編程能力,因此,本文從三個(gè)方面探討C語(yǔ)言程序設(shè)計(jì)課堂教學(xué)的教學(xué)思路,抓住本質(zhì),簡(jiǎn)化學(xué)生理解難度。

1 以“數(shù)據(jù)類型”與“地址”統(tǒng)領(lǐng)整個(gè)C語(yǔ)言程序設(shè)計(jì)教學(xué)

絕大多數(shù)人在談到C語(yǔ)言時(shí),都把“指針”作為它的精華,但這只對(duì)了一部分,C語(yǔ)言真正的精華在于“數(shù)據(jù)類型”,從指針的運(yùn)算、格式符對(duì)值的解釋、各種數(shù)據(jù)類型的轉(zhuǎn)換、數(shù)組及函數(shù)等均是在“數(shù)據(jù)類型”這個(gè)概念的基礎(chǔ)之上處理的,而且指針僅是一種數(shù)據(jù)類型,其表現(xiàn)出的形式是整型值。

基于此,在課堂教學(xué)中,從講述常量和變量的概念起,把重點(diǎn)放在內(nèi)存地址的概念以及格式符對(duì)內(nèi)容的解釋上,包括存放的字節(jié)數(shù)、符號(hào)位、存放的格式與數(shù)據(jù)類型的關(guān)系,以及獲取值、賦值、格式符與數(shù)據(jù)類型的關(guān)系,培養(yǎng)學(xué)生理解數(shù)據(jù)與數(shù)據(jù)類型的密切關(guān)系,講清了這種關(guān)系,學(xué)生就可以快速地理解各種類型數(shù)據(jù)的核心本質(zhì),從而準(zhǔn)確地理解類型提升與強(qiáng)制轉(zhuǎn)換這些概念以及在這些過程中發(fā)現(xiàn)的變化,也為后續(xù)需要用內(nèi)存解釋C語(yǔ)法打下很好的思維基礎(chǔ)。比如,初始時(shí),把握了這個(gè)本質(zhì)學(xué)生自己就很容易解釋像float型數(shù)據(jù)用“%d”輸入輸出時(shí)出錯(cuò)的現(xiàn)象,少犯一些自己無法解釋和無從修改的低級(jí)錯(cuò)誤,這些錯(cuò)誤如果經(jīng)常出現(xiàn)對(duì)許多初學(xué)者的學(xué)習(xí)積極性打擊非常大,從而失去學(xué)習(xí)的興趣。

數(shù)組作為重要的構(gòu)造類型,在C語(yǔ)言中占重要地位,它的應(yīng)用非常靈活,數(shù)組名的意義是關(guān)鍵內(nèi)容,許多高校使用的教材把重點(diǎn)放在了數(shù)組所定義的變量上,重點(diǎn)講述各變量的引用,這使得學(xué)生在后續(xù)的數(shù)組作為參數(shù)以及與指針的關(guān)系理解起來困難非常大,經(jīng)常出現(xiàn)一個(gè)例程中的語(yǔ)句照抄到自己的代碼中也出錯(cuò)的現(xiàn)象,尤其是二維數(shù)組、多維數(shù)組這些復(fù)雜的結(jié)構(gòu)。因此,在數(shù)組一章中,如果用數(shù)據(jù)類型對(duì)數(shù)組名和它的元素進(jìn)行分析,指出數(shù)組名本身的數(shù)據(jù)類型就是數(shù)組本身;數(shù)組名作為表達(dá)式的操作數(shù)時(shí)是地址(sizeof(數(shù)組名)、&(數(shù)組名)除外),此地址指向的數(shù)據(jù)類型就是數(shù)組元素的類型,這樣,學(xué)生就可以很容易把數(shù)組名賦值給指向一維數(shù)組的指針、指針數(shù)組、多級(jí)指針時(shí),從數(shù)據(jù)類型的角度考慮問題。這樣當(dāng)用數(shù)組名作為實(shí)參傳值給指針類型的形參時(shí),就容易正確定義形參的數(shù)據(jù)類型及結(jié)構(gòu)。當(dāng)時(shí)參與形參類型不一致后出現(xiàn)的運(yùn)行錯(cuò)誤,可以再根據(jù)數(shù)據(jù)類型這個(gè)關(guān)鍵的東西進(jìn)行分析。

強(qiáng)調(diào)數(shù)據(jù)類型,可以非常明確地把指針變量轉(zhuǎn)換成C語(yǔ)言的基本數(shù)據(jù)類型變量一樣的思維方式來理解,指出指針變量就是一個(gè)變量,只是類型與基本數(shù)據(jù)類型不同,其存放的是整數(shù)形式的值,即地址,因?yàn)榍懊嬷v述的地址概念到此處學(xué)生已經(jīng)非常熟悉,已經(jīng)形成良好的思維模式,所以理解起來很容易,所以此時(shí)的指針概念只是地址換了一個(gè)說法而已。

為了突出指針變量是“值”且數(shù)據(jù)類型為指針類型的概念,在教學(xué)過程中,把聲明指針變量的一般寫法,如教材上定義指針變量的方式,如int? *p;,強(qiáng)調(diào)成(int*) p;這樣的方式,指出數(shù)據(jù)類型為(int *),后面只是一個(gè)簡(jiǎn)單變量,并提醒學(xué)生引用時(shí)數(shù)據(jù)類型的一致性;這樣,把指針變量使用的思維與使用一般基礎(chǔ)類型變量的方法統(tǒng)一起來。強(qiáng)調(diào)指針變量的數(shù)據(jù)類型相同指的是它指向的數(shù)據(jù)類型一致這個(gè)概念。例如,二維數(shù)組名作為實(shí)參時(shí),其對(duì)應(yīng)形參的寫法就非常容易理解了;再如函數(shù)指針(*fun)(),強(qiáng)調(diào)不同函數(shù)的數(shù)據(jù)類型不同,學(xué)生就可以快速理解一個(gè)函數(shù)指針做形參的意義以及實(shí)參的正確寫法。

在抓住了這些本質(zhì)以后,一些同學(xué)還可以比較好地理解像這樣的函數(shù)指針數(shù)組int (*s[10])(int),并且可以正確調(diào)用它,而這并不在教學(xué)內(nèi)容之列。

這種以數(shù)據(jù)類型為綱的教學(xué)思路,可以把構(gòu)造類型的變量轉(zhuǎn)換成基本數(shù)據(jù)類型這種簡(jiǎn)單的變量進(jìn)行理解。從筆者多年的教學(xué)經(jīng)歷來看,學(xué)生對(duì)指針和數(shù)組(包括二維數(shù)組、多數(shù)數(shù)組、多級(jí)指針)之間的傳參、指向一維數(shù)組的指針、指針數(shù)組以及函數(shù)指針這些相對(duì)較復(fù)雜的概念理解起來并不存在大的困難,有些平時(shí)訓(xùn)練多一點(diǎn)的同學(xué),可以寫出水平較高的代碼,調(diào)試時(shí)遇到的一般性問題通常有解決的思路。學(xué)生如果有了這些核心知識(shí)和思維的鋪墊,指針一章的教學(xué)內(nèi)容并不是困難的。

以數(shù)據(jù)類型為主線,同時(shí)對(duì)后續(xù)結(jié)構(gòu)體類型、共同體類型等都可以轉(zhuǎn)換成基本數(shù)據(jù)類型的思維方式來理解,只需要強(qiáng)調(diào)一下各自類型的獨(dú)有特點(diǎn)就可以了,比如結(jié)構(gòu)體類型成員變量的賦值、輸入與輸出等,剩下的教學(xué)重點(diǎn)就可以放在算法思維上了,即如何應(yīng)用結(jié)構(gòu)體這些數(shù)據(jù)類型解決鏈表問題。

有了數(shù)據(jù)類型這個(gè)本質(zhì)基礎(chǔ),在課后閱讀別人所寫的紛繁復(fù)雜的代碼時(shí),也就變得相對(duì)容易,從筆者的教學(xué)經(jīng)歷來看,學(xué)生如果把握了數(shù)據(jù)類型這種C語(yǔ)言本質(zhì),就可以很好地理解本科生C語(yǔ)言程序設(shè)計(jì)教學(xué)大綱上規(guī)定的重點(diǎn)和難點(diǎn),加之適當(dāng)編程練習(xí)和閱讀代碼就可以把握核心內(nèi)容。更重要的是學(xué)生持續(xù)學(xué)習(xí)C語(yǔ)言的能力增強(qiáng),這是因?yàn)槟芾斫獯a增加了他們學(xué)習(xí)的積極性,有了積極性,學(xué)習(xí)C語(yǔ)言興趣更高,更加樂于去實(shí)踐,更能加強(qiáng)理解,起到一個(gè)良性循環(huán)的作用。

2 以表達(dá)式的值統(tǒng)領(lǐng)各表達(dá)式的講解

地方高校學(xué)生在開始接觸C語(yǔ)言時(shí)一般在低年級(jí),并沒有好的計(jì)算思維能力,很多人在入學(xué)前,沒有真正接觸過臺(tái)式電腦,因此往往以一般性邏輯思維和高中時(shí)的數(shù)學(xué)表達(dá)式思維來看C語(yǔ)言的表達(dá)式,經(jīng)常會(huì)以一般的邏輯方式去考慮問題,而許多教材所給內(nèi)容又恰好加深了這種誤解,例如,所給的例題多類似if(x>60)這樣的寫法,如果教師也以這種方式去講解,許多學(xué)生就會(huì)陷入“如果x大于60就執(zhí)行什么”的思維方式中,因而,對(duì)表達(dá)式的理解就不透徹,比如對(duì)于后續(xù)常用的像if(!x) 、while(1)這樣的寫法理解起來非常吃力,要花時(shí)間去講解這些()中的表達(dá)式要作為邏輯表達(dá)式或關(guān)系表達(dá)式等內(nèi)容,給學(xué)生造成思維上的混亂。所以,表達(dá)式的講解一定要以C語(yǔ)言標(biāo)準(zhǔn)上(如C11、C17標(biāo)準(zhǔn))的定義進(jìn)行簡(jiǎn)化,強(qiáng)調(diào)表達(dá)式的結(jié)果是一個(gè)值,以值的方式去理解,單個(gè)變量是一個(gè)表達(dá)式、函數(shù)是一個(gè)表達(dá)式,表達(dá)式中的運(yùn)算符,根據(jù)優(yōu)先級(jí)和順序點(diǎn)參與運(yùn)算,它們都有一個(gè)最后的結(jié)果值,這樣學(xué)生對(duì)諸如x=3、a>b>c這樣的表達(dá)式理解起來就方便了。有了這種基礎(chǔ),后續(xù)講解選擇語(yǔ)句、循環(huán)語(yǔ)句等就()中的表達(dá)式值以0和非0值作為統(tǒng)一標(biāo)準(zhǔn)進(jìn)行講解,即當(dāng)表達(dá)式為非0時(shí)執(zhí)行語(yǔ)句,為0時(shí)不執(zhí)行語(yǔ)句,這樣,初學(xué)者對(duì)if(!x) 、while(1)寫法理解起來就很容易,并很快能閱讀并編寫出類似的代碼,也不會(huì)把“a>b && b>c”這樣的表達(dá)式寫成“a>b>c”。因此,強(qiáng)調(diào)表達(dá)式的值,可以統(tǒng)一所有選擇語(yǔ)句和循環(huán)語(yǔ)句中涉及的表達(dá)式部分,可以用“值非0執(zhí)行,0不執(zhí)行”這樣簡(jiǎn)單的話來描這類語(yǔ)句的執(zhí)行過程。這不僅適用于關(guān)系表達(dá)式、邏輯表達(dá)式,也適用于函數(shù)表達(dá)式,同時(shí)也與_Bool類型的值統(tǒng)一。

3 以復(fù)合語(yǔ)句統(tǒng)領(lǐng)選擇語(yǔ)句和循環(huán)語(yǔ)句

C語(yǔ)言初學(xué)者一般容易理解基本的選擇語(yǔ)句和循環(huán)語(yǔ)句,代碼閱讀不會(huì)存在大的困難,也可以寫出比較簡(jiǎn)單的程序代碼,但對(duì)于這類語(yǔ)句的嵌套結(jié)構(gòu)理解起來就相對(duì)困難,像if-else語(yǔ)句if部分和else部分分別嵌套有if或if-else語(yǔ)句;for循環(huán)中又嵌套其他循環(huán)的情況。對(duì)于這些知識(shí)點(diǎn),可均以復(fù)合語(yǔ)句作為切入點(diǎn)進(jìn)行教學(xué),以while循環(huán)為例,首先給出while語(yǔ)句的基本語(yǔ)法結(jié)構(gòu):

while(表達(dá)式) 一條語(yǔ)句;

強(qiáng)調(diào)上述全部代碼是一條while語(yǔ)句,其執(zhí)行過程為當(dāng)表達(dá)式值非0時(shí),只執(zhí)行其后的一條語(yǔ)句,如果當(dāng)表達(dá)式值非0時(shí),需執(zhí)行多條語(yǔ)句,需要用{}括起來。這個(gè)一般教學(xué)中都會(huì)講到,但很多教材并沒有強(qiáng)調(diào){}是一條復(fù)合語(yǔ)句,如果把{}這個(gè)看成一條語(yǔ)句,則while{}后面如何復(fù)雜,都與while語(yǔ)句定義的格式一致,是一條while語(yǔ)句。比如有以下代碼:

while(i>1)

{

printf("%d ",i);

for(j=1;j

{

jc=jc*j;

}

while(a--)

jc=jc+5;

i++;

}

t++;

按照上述以語(yǔ)句的分析方法,把while循環(huán)作為一條語(yǔ)句,則學(xué)生很容易看出整個(gè)代碼實(shí)質(zhì)上是兩條語(yǔ)句:

while語(yǔ)句

t++;

while()后跟一條復(fù)合語(yǔ)句,執(zhí)行的過程是先把while語(yǔ)句執(zhí)行完成,再執(zhí)行t++;語(yǔ)句,然后再介紹while中的復(fù)合語(yǔ)句的分析,它只包含四條語(yǔ)句:

printf("%d ",i);

for語(yǔ)句

while語(yǔ)句

i++;

外層while()中的表達(dá)式值非0時(shí),依次順序執(zhí)行這些語(yǔ)句。因?yàn)榘蜒h(huán)看成了一條語(yǔ)句,這也意味著這四條語(yǔ)句中先執(zhí)行完printf("%d ",i);,然后執(zhí)行for這條語(yǔ)句,這條語(yǔ)句執(zhí)行完才執(zhí)行后面的while語(yǔ)句,所以從順序上看這非常清晰,學(xué)生容易理解,且須記的內(nèi)容很少。

把問題拆成一條一條語(yǔ)句的講授方法,有以下好處:

(1)選擇語(yǔ)句、循環(huán)語(yǔ)句以語(yǔ)句統(tǒng)一,函數(shù)體內(nèi)語(yǔ)句就可以用簡(jiǎn)單的順序結(jié)構(gòu)進(jìn)行思維。對(duì)于初始者,這樣的簡(jiǎn)單描述,使學(xué)生容易理解、掌握程序代碼的執(zhí)行過程,如果當(dāng)教學(xué)中沒有給出這種簡(jiǎn)易的結(jié)構(gòu)說明,而只是用一段代碼來說明什么是多重循環(huán)且用代碼來解釋它們的運(yùn)行過程,大多數(shù)學(xué)生的注意力往往就會(huì)集中在每一行代碼本身,缺乏整體的概念。強(qiáng)調(diào)復(fù)合語(yǔ)句看成一條語(yǔ)句,可以把表面非常復(fù)雜的代碼進(jìn)行簡(jiǎn)化,讓學(xué)生容易從整體上把握編程的思路,培養(yǎng)他們的算法思維能力,同時(shí)可有效提升他們的編程能力和閱讀代碼的能力。

(2)可以間接培養(yǎng)學(xué)生函數(shù)遞歸調(diào)用的部分思維,為后續(xù)學(xué)習(xí)函數(shù)打下基礎(chǔ)。選擇語(yǔ)句、循環(huán)語(yǔ)句當(dāng)中的復(fù)合語(yǔ)句可包含選擇語(yǔ)句、循環(huán)語(yǔ)句,雖然這部分內(nèi)容沒有講述到“遞歸”的概念,但這里實(shí)際上已經(jīng)切入了函數(shù)遞歸調(diào)用的部分思維,這種思維就是外層中有相同內(nèi)層。

(3)可以為模塊化編程打下思維基礎(chǔ)。這里復(fù)合語(yǔ)句雖然沒有說明模塊化,但用整條語(yǔ)句進(jìn)行分析,可以讓學(xué)生體會(huì)到一條語(yǔ)句是作為一個(gè)整體,一條語(yǔ)句可以包含多條語(yǔ)句,以完成一定的任務(wù),這些雖然在課堂教學(xué)中沒有指出,但這樣的方式顯然可以引導(dǎo)學(xué)生做這樣直覺性的思考,從而為后續(xù)模塊化編程的教學(xué)打下思維基礎(chǔ)。

4 結(jié)束語(yǔ)

C語(yǔ)言這種簡(jiǎn)潔緊湊、靈活方便計(jì)算機(jī)語(yǔ)言,學(xué)好它有一定難度。從整體上講,一般地方院校的學(xué)生自學(xué)能力和學(xué)習(xí)積極性相對(duì)不足,更需教師在課堂教學(xué)上多下功夫。我國(guó)古代最早一篇專門論述教育、教學(xué)問題的論著《學(xué)記》中強(qiáng)調(diào)的教師應(yīng)“其言也,約而達(dá),微而臧”[6],因此,提煉出C語(yǔ)言的本質(zhì),以簡(jiǎn)單的過程描述復(fù)雜的問題顯得非常重要。本文把前后教學(xué)內(nèi)容有意識(shí)的提煉、提前鋪墊,用簡(jiǎn)單的方式去解釋C程序設(shè)計(jì)中紛繁復(fù)雜的代碼,使學(xué)生易于理解,更好地提升他們的學(xué)習(xí)興趣,培養(yǎng)他們的算法思維能力和編程能力;思維的鋪墊可以讓學(xué)生在前期逐步形成學(xué)習(xí)后期知識(shí)的所需的思維意識(shí),這樣后續(xù)新知識(shí)的學(xué)習(xí)就相對(duì)容易。

參考文獻(xiàn):

[1] 張翠平,趙暉.基于“學(xué)習(xí)成果導(dǎo)向”理念的教學(xué)研究——以C語(yǔ)言程序設(shè)計(jì)課程為例[J].計(jì)算機(jī)教育,2020(3):153-156,161.

[2] 陳濤,朱俊,裔傳俊,等.面向編程能力培養(yǎng)的C語(yǔ)言教學(xué)模式研究[J].計(jì)算機(jī)教育,2020(1):100-103.

[3] 何迎生,王從銀.基于慕課的C語(yǔ)言程序設(shè)計(jì)翻轉(zhuǎn)課堂教學(xué)實(shí)踐[J].計(jì)算機(jī)教育,2020(1):160-163.

[4] 駱春妹,袁三一.基于網(wǎng)絡(luò)教學(xué)平臺(tái)的C語(yǔ)言課程教與學(xué)研究[J].教育教學(xué)論壇,2020(9):372-373.

[5] 李薇,黑新宏,王磊.C語(yǔ)言程序設(shè)計(jì)課程的金課建設(shè)實(shí)踐[J].計(jì)算機(jī)教育,2020(6):142-146.

[6] 王凌皓,姬天雨.中國(guó)古代師道觀評(píng)析[J].河北師范大學(xué)學(xué)報(bào)(教育科學(xué)版),2019,21(1):15-20.

【通聯(lián)編輯:光文玲】

猜你喜歡
數(shù)據(jù)類型C語(yǔ)言程序設(shè)計(jì)表達(dá)式
詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
一個(gè)混合核Hilbert型積分不等式及其算子范數(shù)表達(dá)式
表達(dá)式轉(zhuǎn)換及求值探析
淺析C語(yǔ)言運(yùn)算符及表達(dá)式的教學(xué)誤區(qū)
范疇數(shù)據(jù)類型上的子類型*
明溪县| 招远市| 黑水县| 合川市| 驻马店市| 惠安县| 宜君县| 南昌市| 会理县| 河曲县| 维西| 灵石县| 自治县| 含山县| 咸阳市| 乌恰县| 湘西| 靖州| 丁青县| 茶陵县| 安丘市| 临江市| 新蔡县| 成都市| 慈利县| 仙游县| 榆树市| 云龙县| 屏南县| 耿马| 苍溪县| 台中市| 乡宁县| 奉化市| 汶川县| 喀喇| 通化县| 虹口区| 原平市| 榆树市| 和顺县|