999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

地方高校C語言程序設計課堂教學內容探討

2021-06-28 18:39:21洪留榮
電腦知識與技術 2021年10期
關鍵詞:課堂教學

洪留榮

摘要:針對C語言程序設計課對于地方高校初學者學習上的困難,本文探討了在課堂教學上的一些教學思路。從數據類型、表達式以及復合語句三個方面探討了教學上應關注的重點和核心,分析了這樣做的優點,強調了課堂教學從教材上提煉相關課堂內容的重要性。

關鍵詞:C語言程序設計;課堂教學;數據類型;表達式;復合語句

中圖分類號:G642? ? ? 文獻標識碼:A

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

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

1 以“數據類型”與“地址”統領整個C語言程序設計教學

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

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

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

強調數據類型,可以非常明確地把指針變量轉換成C語言的基本數據類型變量一樣的思維方式來理解,指出指針變量就是一個變量,只是類型與基本數據類型不同,其存放的是整數形式的值,即地址,因為前面講述的地址概念到此處學生已經非常熟悉,已經形成良好的思維模式,所以理解起來很容易,所以此時的指針概念只是地址換了一個說法而已。

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

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

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

以數據類型為主線,同時對后續結構體類型、共同體類型等都可以轉換成基本數據類型的思維方式來理解,只需要強調一下各自類型的獨有特點就可以了,比如結構體類型成員變量的賦值、輸入與輸出等,剩下的教學重點就可以放在算法思維上了,即如何應用結構體這些數據類型解決鏈表問題。

有了數據類型這個本質基礎,在課后閱讀別人所寫的紛繁復雜的代碼時,也就變得相對容易,從筆者的教學經歷來看,學生如果把握了數據類型這種C語言本質,就可以很好地理解本科生C語言程序設計教學大綱上規定的重點和難點,加之適當編程練習和閱讀代碼就可以把握核心內容。更重要的是學生持續學習C語言的能力增強,這是因為能理解代碼增加了他們學習的積極性,有了積極性,學習C語言興趣更高,更加樂于去實踐,更能加強理解,起到一個良性循環的作用。

2 以表達式的值統領各表達式的講解

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

3 以復合語句統領選擇語句和循環語句

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

while(表達式) 一條語句;

強調上述全部代碼是一條while語句,其執行過程為當表達式值非0時,只執行其后的一條語句,如果當表達式值非0時,需執行多條語句,需要用{}括起來。這個一般教學中都會講到,但很多教材并沒有強調{}是一條復合語句,如果把{}這個看成一條語句,則while{}后面如何復雜,都與while語句定義的格式一致,是一條while語句。比如有以下代碼:

while(i>1)

{

printf("%d ",i);

for(j=1;j

{

jc=jc*j;

}

while(a--)

jc=jc+5;

i++;

}

t++;

按照上述以語句的分析方法,把while循環作為一條語句,則學生很容易看出整個代碼實質上是兩條語句:

while語句

t++;

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

printf("%d ",i);

for語句

while語句

i++;

外層while()中的表達式值非0時,依次順序執行這些語句。因為把循環看成了一條語句,這也意味著這四條語句中先執行完printf("%d ",i);,然后執行for這條語句,這條語句執行完才執行后面的while語句,所以從順序上看這非常清晰,學生容易理解,且須記的內容很少。

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

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

(2)可以間接培養學生函數遞歸調用的部分思維,為后續學習函數打下基礎。選擇語句、循環語句當中的復合語句可包含選擇語句、循環語句,雖然這部分內容沒有講述到“遞歸”的概念,但這里實際上已經切入了函數遞歸調用的部分思維,這種思維就是外層中有相同內層。

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

4 結束語

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

參考文獻:

[1] 張翠平,趙暉.基于“學習成果導向”理念的教學研究——以C語言程序設計課程為例[J].計算機教育,2020(3):153-156,161.

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

[3] 何迎生,王從銀.基于慕課的C語言程序設計翻轉課堂教學實踐[J].計算機教育,2020(1):160-163.

[4] 駱春妹,袁三一.基于網絡教學平臺的C語言課程教與學研究[J].教育教學論壇,2020(9):372-373.

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

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

【通聯編輯:光文玲】

猜你喜歡
課堂教學
語文課堂教學中的質疑與發現
甘肅教育(2020年8期)2020-06-11 06:10:08
從“會讀”到“會寫”的課堂教學策略
取舍有道,方為有效課堂教學
學周刊(2016年26期)2016-09-08 09:02:56
且行且思,讓批注式閱讀融入課堂教學
高校課堂教學探討
人間(2015年21期)2015-03-11 15:24:33
讓課堂教學“活”起來
對初中化學課堂教學的幾點思考
散文百家(2014年11期)2014-08-21 07:17:04
初中歷史課堂教學的導入法
散文百家(2014年11期)2014-08-21 07:16:56
關于高中信息技術課堂教學的幾點反思
散文百家(2014年11期)2014-08-21 07:16:52
把“三個倡導”融入課堂教學
中國火炬(2014年4期)2014-07-24 14:22:19
主站蜘蛛池模板: 国产女人喷水视频| 人人91人人澡人人妻人人爽| 国产精彩视频在线观看| 国产91丝袜在线播放动漫| 中文字幕日韩欧美| 国产美女无遮挡免费视频网站| 制服丝袜一区| 97青青青国产在线播放| 91视频首页| 亚洲首页在线观看| 午夜无码一区二区三区在线app| 91美女视频在线| 天天视频在线91频| 欧日韩在线不卡视频| 国产性爱网站| 免费xxxxx在线观看网站| www.91在线播放| 久久天天躁夜夜躁狠狠| 亚洲三级影院| 青青青伊人色综合久久| 国产成人91精品| 亚洲国产日韩在线观看| 国产原创自拍不卡第一页| 四虎永久在线精品影院| 久久精品视频一| 内射人妻无码色AV天堂| 97在线免费| 国产亚洲欧美在线视频| 亚洲高清日韩heyzo| 亚洲免费黄色网| 中国国产A一级毛片| 国产精品一线天| 精品国产免费观看一区| 国产黑人在线| 最新国产精品第1页| 伊人久久福利中文字幕| 91在线丝袜| 国产亚洲视频中文字幕视频| 色亚洲激情综合精品无码视频| 精品少妇人妻一区二区| AV熟女乱| 日本91视频| 性视频一区| 色综合激情网| 欧美精品1区2区| 国产精品深爱在线| 色窝窝免费一区二区三区| 免费不卡视频| 真实国产乱子伦视频| 亚洲综合色在线| 国产精品视频a| 国产美女久久久久不卡| 亚洲无码日韩一区| 中文字幕人成乱码熟女免费| 国产毛片一区| 亚洲欧洲美色一区二区三区| 乱色熟女综合一区二区| 国产在线精彩视频二区| 伊人精品视频免费在线| 亚洲成aⅴ人在线观看| 97色伦色在线综合视频| 欧美A级V片在线观看| 国产欧美精品一区二区 | 国产手机在线观看| 亚洲国产一区在线观看| 亚洲欧美不卡| 日韩美毛片| 欧美日韩免费在线视频| 日本高清免费不卡视频| 蜜桃臀无码内射一区二区三区 | 97se亚洲综合在线韩国专区福利| 国产精品55夜色66夜色| 国产麻豆另类AV| 中文字幕一区二区人妻电影| 色婷婷在线播放| 2021亚洲精品不卡a| 亚洲第一福利视频导航| 青青草a国产免费观看| 人妻无码中文字幕一区二区三区| 国产亚洲精品自在久久不卡| 国产高清不卡视频| 久久精品娱乐亚洲领先|