亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        非計算機(jī)專業(yè)C語言程序設(shè)計的課堂教學(xué)實踐與改進(jìn)

        2009-02-24 07:02:48陳洪濤顧沈明
        計算機(jī)教育 2009年2期
        關(guān)鍵詞:計算機(jī)教育程序設(shè)計

        陳洪濤 顧沈明 劉 軍

        文章編號:1672-5913(2009)02-0125-02

        摘要:本文針對高校非計算機(jī)專業(yè)C語言程序設(shè)計在課堂教學(xué)方法方面的一些問題,提出在教學(xué)活動中,通過讓學(xué)生建立一個最簡單的計算模型等方法,培養(yǎng)學(xué)生用計算機(jī)程序解決實際問題的能力,強(qiáng)調(diào)在課堂教學(xué)中要特別重視分析程序運行和內(nèi)存變量的關(guān)系,并闡述了面向技能形成的習(xí)題訓(xùn)練的觀點。

        關(guān)鍵詞:計算機(jī)教育;程序設(shè)計;C語言

        中圖分類號:G642

        文獻(xiàn)標(biāo)識碼:B

        1引言

        高校計算機(jī)基礎(chǔ)教學(xué)“主要講授程序設(shè)計語言的基本知識和程序設(shè)計的方法與技術(shù),其內(nèi)容以程序設(shè)計語言的語法知識和程序設(shè)計技術(shù)的基本方法為主,同時包括程序設(shè)計方法學(xué)、數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)等方面的初步內(nèi)容,應(yīng)使學(xué)生掌握計算機(jī)程序設(shè)計的思想和方法,初步具有在各領(lǐng)域應(yīng)用計算機(jī)的能力,并為后續(xù)課程的學(xué)習(xí)創(chuàng)造條件。”[1]

        在許多高校,C語言程序設(shè)計是理工類必修的計算機(jī)基礎(chǔ)教學(xué)課程,但是在實際教學(xué)過程中,學(xué)生對這門課的掌握程度不能令人滿意。這一方面是由于高等教育大眾化,學(xué)生的學(xué)習(xí)能力和學(xué)習(xí)愿望不如從前;另一方面,C語言教學(xué)實踐中,在諸如課堂教學(xué)方法、平時訓(xùn)練等方面也存在著不能適應(yīng)大眾化教育形勢的一些問題。

        C語言的教學(xué)一直以來比較偏重語法,但學(xué)生普遍反映聽的時候好像都聽懂了,但是當(dāng)一個問題放在自己的面前,就不知道如何用所學(xué)的知識去解決。教師在教學(xué)活動中如果沒有主動意識到這一點,就可能會把C語言的教學(xué)活動看做是語法的講解,不注重在教學(xué)活動中引導(dǎo)學(xué)生用程序的思維方式分析問題解決問題。而后者才是程序設(shè)計這門課程的真正目的。

        2培養(yǎng)學(xué)生用計算機(jī)程序解決問題的能力

        培養(yǎng)學(xué)生用計算機(jī)程序解決問題的能力,需要通過課堂教學(xué)注重幾個方面的問題:

        (1) 理解計算機(jī)處理問題的“過程”方式

        人們對現(xiàn)實問題的分析,有些并不需要像計算機(jī)一樣用“過程”的方式來給出解決方案,例如數(shù)組元素的排序,人類解決這個問題的思考過程沒有明顯的循環(huán)過程,或者我們并不會很在意循環(huán)過程,但是計算機(jī)則不同,它要求程序員必須明確地設(shè)定循環(huán)的“過程”。程序設(shè)計課程正是要培養(yǎng)學(xué)生用和我們平常的思考方法不同的“過程”方式來描述算法,但這是思維方法上的一個跳躍,這種跳躍過去一直是通過大量的練習(xí),由學(xué)生自己自然而然感悟到的,當(dāng)然,有些感悟能力強(qiáng)的同學(xué)對這一問題的理解很快,但是在教學(xué)實踐中發(fā)現(xiàn),對很多非計算機(jī)專業(yè)的學(xué)生而言,由于練習(xí)的機(jī)會比較少,感悟到這一點常常比較費時間。例如求一個圓的表面積,常見到初學(xué)者寫出如下的代碼,以為只要告訴計算機(jī)“s=3.14*r*r”這樣一個計算公式,再給出r的數(shù)值,計算機(jī)就可以給出結(jié)果,而不知道還需要告訴計算機(jī)執(zhí)行的“過程”。

        01 #include

        02 int main(){

        03 int r,s;

        04 s=3.14*r*r;/*順序出錯*/

        05 scanf("%d",&r);

        06 printf("The area is %d",r);

        07 return 0;

        08 }

        如果教學(xué)過程中能夠有意識地引導(dǎo)學(xué)生,無疑可以降低學(xué)生學(xué)習(xí)的難度。

        (2) 在頭腦中建立一個最簡單的計算模型

        用和我們平常的思考方法不同“過程”的方式來描述算法,需要明白計算機(jī)和人類的思維方法不同的“過程”特點,這就需要在學(xué)生的頭腦中建立一個最簡單的計算模型。事實上馮·諾依曼計算機(jī)體系結(jié)構(gòu)是以存儲器為中心的,對編程的初學(xué)者就需要解決如何在這一體系結(jié)構(gòu)的基礎(chǔ)上來設(shè)計解決問題的步驟。

        程序的執(zhí)行過程是圍繞著存儲單元進(jìn)行,存儲單元既可能存放輸入數(shù)據(jù),也可能存放程序執(zhí)行的結(jié)果,很多學(xué)生就是因為不能建立這樣一個計算模型,按照平常地思維習(xí)慣,在設(shè)計算法時把一些中間計算結(jié)果記在心里,導(dǎo)致無法用程序語言描述解決問題的思路。

        當(dāng)學(xué)生在頭腦中建立一個最簡單的面向存儲器的計算模型后,就能較好地理解計算機(jī)解決問題的方法,可以把求解問題的算法轉(zhuǎn)為利用存儲單元進(jìn)行的“取”→“計算”→“存”的過程,然后將這種自然語言描述的算法翻譯成為C語言。例如交換兩個變量的值,可以用自然語言描述成下面的步驟,對初學(xué)者而言這樣就很容易理解。

        1. 先指定兩個盒子,命名為a,b;

        2. 命名一個存放臨時數(shù)據(jù)的盒子c;

        3. 在兩個盒子a,b中分別存入兩個數(shù)值;

        4. 取a的數(shù)值存入c;

        5. 取b的數(shù)值存入a;

        6. 取c的數(shù)值存入b;

        同時基于存儲器的計算模型,對一些讓初學(xué)的同學(xué)比較容易出錯的東西也可以解釋得比較清楚,比如“變量使用前須定義,引用前須賦值”,學(xué)生就會想到:變量的定義只是給某存儲單元取了一個名字,在沒有向里面放入有效值之前去引用它,自然得不到想要的東西。

        在循環(huán)程序設(shè)計中,利用上面的簡單的基于存儲器的計算模型也能幫助初學(xué)者找到形式上一致而內(nèi)容變化的循環(huán)體語句,從而比較順利地設(shè)計出循環(huán)結(jié)構(gòu)。

        例如:求1+2+3+4+…+100的值,如果明白計算機(jī)求解問題的都需要基于存儲器,累加實際上是在現(xiàn)在存儲單元中已有數(shù)據(jù)的基礎(chǔ)上再加入新的數(shù),就會自然想到如圖1的方法:

        給存儲單元命名為sum,逐次加入的數(shù)先放在x中,就比較容易想到“形式上一樣的循環(huán)語句”應(yīng)該是sum=sum+x,并且x的變化范圍是1~100。

        當(dāng)學(xué)生建立起基于存儲器的計算模型后,對其他的C語言程序設(shè)計的難點問題,例如函數(shù)參數(shù)傳遞,數(shù)組、指針、結(jié)構(gòu)、鏈表的理解也會變得比較容易。

        (3) 在課堂教學(xué)中要特別重視分析程序運行和內(nèi)存變量的關(guān)系

        在學(xué)生頭腦中建立了基于存儲器的計算模型后,還需要不斷練習(xí)才能加深這種印象,除了學(xué)生自己練習(xí)以外,在課堂講解例題時可以有意識分析每一步程序運行所導(dǎo)致的內(nèi)存變量的變化,通過不斷練習(xí)提高學(xué)生閱讀程序的能力。

        (4) 在C語言的教學(xué)活動中,以面向問題分析、算法設(shè)計、程序編碼的方式組織知識

        現(xiàn)有的C語言教材一般是按語法的難易程度次序編寫的,這當(dāng)然是符合人的認(rèn)知規(guī)律的,但是同時也需要教師在講授的過程中,突出以面向問題分析、設(shè)計、編碼的方式組織知識的講解,只有這樣才能使學(xué)生在形成用程序的思維方式分析問題、解決問題的能力的過程中少走彎路。

        教材的知識組織方法是語法→例題→程序→解釋,這種沿用已久的方法,在培養(yǎng)學(xué)生用計算機(jī)的方式思考問題方面,作用不夠充分。

        事實上,算法在人們的頭腦中首先是一種用自然語言描述的“過程”,再通過逐步細(xì)化,然后再把它從自然語言轉(zhuǎn)換成為C語言。在教學(xué)的實踐過程中,可以以這樣的方法組織知識:問題→自然語言的過程描述→程序。教師在課堂上,可以在集成開發(fā)環(huán)境中,以注釋的方式用自然語言進(jìn)行過程描述,然后逐步求精,最后轉(zhuǎn)換成程序代碼的方法。

        例如:取得一個整數(shù)的個位、十位、百位,從問題的描述到問題的解決。可以先用自然語言來解決問題,然后逐步過渡到C語言。

        /*例如有個數(shù)5693放到存儲單元x */

        /*目標(biāo):取得個位數(shù),方法:x模10的結(jié)果是個位數(shù) */

        /*目標(biāo):取得十位數(shù),方法:1. x除以10的結(jié)果放入存儲單元x, 2. x模10的結(jié)果是十位數(shù)*/

        /*目標(biāo):取得百位數(shù),方法:1. x除以10的結(jié)果放入存儲單元x, 2. x模10的結(jié)果是百位數(shù)*/

        /*目標(biāo):取得千位數(shù),方法:1. x除以10的結(jié)果放入存儲單元x, 2. x模10的結(jié)果是千位數(shù)*/

        /* 當(dāng)x除以10的結(jié)果是0時,程序不必繼續(xù)下去*/

        通過自然語言分析,既找到了循環(huán)體語句“1. x除以10的結(jié)果放入存儲單元x, 2. x模10”,又找到了循環(huán)控制條件,再翻譯成C語言應(yīng)該也不再是一件難事。

        3面向?qū)W生技能形成的訓(xùn)練

        程序設(shè)計這門課程需要大量的訓(xùn)練才能真正形成技能,但是現(xiàn)在一些教材習(xí)題所存在的一些問題可能傳遞不正確的信息,妨礙技能形成。這些問題包括:

        1) 很多習(xí)題結(jié)果的正確性是和特定的編譯器相關(guān)的,例如:函數(shù)中的多個參數(shù)的計算順序,printf(”%d,%d,%d”,a+b,a++,++a);在一個表達(dá)式中多次出現(xiàn)++、--運算符。這類習(xí)題只是訓(xùn)練了某一個編譯器的使用技巧,而這種技巧在實際的編程實踐中要盡可能地避免使用。

        2) 習(xí)題包含較多的數(shù)學(xué)知識可能妨礙初學(xué)者,例如用碾轉(zhuǎn)相除法求最大公約數(shù),以及對不同三角形的判斷等習(xí)題,對培養(yǎng)嚴(yán)密的邏輯思維很有好處,但是在教學(xué)實踐中的情況看,這些習(xí)題反而使得初學(xué)者無從下手,所以需要在實踐中平衡利弊。

        3) 過分注重技巧,不利于技能的形成?,F(xiàn)代軟件工程的實踐比較排斥在編程時過于注重技巧,這會導(dǎo)致程序難以維護(hù),所以應(yīng)該避免過于注重技巧習(xí)題。

        面向技能形成的訓(xùn)練另一個問題是需要保證習(xí)題的量,這一點對作為非計算機(jī)專業(yè)的學(xué)生要求起來比較難。

        4總結(jié)

        在現(xiàn)有的教學(xué)大綱和教材基本定型的情況下,針對現(xiàn)在學(xué)生的認(rèn)知特點,圍繞高等學(xué)校計算機(jī)基礎(chǔ)教學(xué)的基本要求,本文試圖從課堂教學(xué)的角度,找到如何讓學(xué)生在頭腦中建立一個最簡單的基于存儲器的計算模型,并在此基礎(chǔ)上結(jié)合具體的例子,闡述了培養(yǎng)學(xué)生形成用計算機(jī)分析、解決問題能力的具體做法。本文的方法已在課堂教學(xué)實踐中采用,收到了一定的效果,當(dāng)然在課堂教學(xué)過程中還需不斷改進(jìn)。

        參考文獻(xiàn)

        [1] 教育部高教司. 關(guān)于進(jìn)一步加強(qiáng)高等學(xué)校計算機(jī)基礎(chǔ)教學(xué)的意見[R]. 2006.

        猜你喜歡
        計算機(jī)教育程序設(shè)計
        基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
        從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
        電子制作(2019年9期)2019-05-30 09:42:04
        基于成果導(dǎo)向教育理念引導(dǎo)高職計算機(jī)教育
        亞太教育(2016年31期)2016-12-12 22:02:38
        藝術(shù)生計算思維的培養(yǎng)
        以就業(yè)為導(dǎo)向的中職計算機(jī)教育教學(xué)實踐研究
        高職高專院校C語言程序設(shè)計教學(xué)改革探索
        公安院校計算機(jī)課堂教學(xué)改革研究初探
        中國市場(2016年41期)2016-11-28 06:37:50
        構(gòu)建具有專業(yè)美術(shù)院校特色的計算機(jī)課程教育
        關(guān)于我國計算機(jī)教育MOOC發(fā)展的思考
        OBE理念下基于Greenfoot的Java程序設(shè)計課程教學(xué)改革
        免费无码又爽又刺激网站直播| 国产香蕉尹人在线视频你懂的| 97国产精品麻豆性色| 国产精品自拍视频在线| 国产美女主播视频一二三区 | 俺来也俺去啦最新在线| 免费二级毛片在线播放| 国产成人精品中文字幕| 久久精品国产亚洲av性瑜伽| 免费国产在线精品一区| 人妻av乱片av出轨| 手机看片国产日韩| 中文字幕丰满人妻有码专区| 日本国产精品久久一线 | 日韩中文字幕熟女人妻| 内射白浆一区二区在线观看| 欧洲熟妇色xxxx欧美老妇多毛| 亚洲日韩欧美国产高清αv| 日本av一区二区播放| 国产精品一区久久综合| 国产亚洲综合一区二区三区| 海角国精产品一区一区三区糖心| 永久免费看免费无码视频| 一区二区三区在线观看视频| av在线免费观看网站免费| 国产白嫩护士被弄高潮| 国产免费久久精品国产传媒| 一区二区三区在线观看日本视频| 中文字幕人妻互换av| 亚洲精品~无码抽插| 国产zzjjzzjj视频全免费| 亚洲日日噜噜噜夜夜爽爽| 男人天堂亚洲一区二区| 美女张开腿黄网站免费| 欧洲人妻丰满av无码久久不卡 | 婷婷中文字幕综合在线| 国产aⅴ天堂亚洲国产av| 黄页免费人成网址大全| 久久精品免费一区二区喷潮| 国产麻豆md传媒视频| 婷婷一区二区三区在线|