殷振環(huán)
【摘要】 《C編程和設(shè)計》是一門重要的計算機(jī)基礎(chǔ)課程,旨在提高學(xué)生的邏輯思維能力實(shí)際的編程技巧。作者根據(jù)多年的教學(xué)經(jīng)驗(yàn)體會到,C語言編程設(shè)計具有高度抽象性和邏輯邏輯性,這門課程不僅提供學(xué)生非常豐富思維材料和更廣闊的思維空間,更開發(fā)他們的創(chuàng)造性。
【關(guān)鍵詞】 C語言 創(chuàng)造性 教學(xué)模式
一、引言
創(chuàng)新性思維是思維的高級形式和創(chuàng)造力的核心,是人們特別的意圖或者任務(wù)。培養(yǎng)學(xué)生的創(chuàng)造性思維是對現(xiàn)代教育的根本使命,特別是高等教育。C語言這門課程具有高度抽象性和邏輯性,可以提供學(xué)生廣闊的思維空間。從我多年的教學(xué)經(jīng)驗(yàn),形成意見這個過程是一個偉大的培養(yǎng)學(xué)生的創(chuàng)新思維的過程。那么我們怎么可以培養(yǎng)學(xué)生的創(chuàng)造性思維?現(xiàn)在我將闡述我的觀點(diǎn)。
二、使學(xué)生掌握C編程的一般方法
引導(dǎo)學(xué)生持有共同的方法C語言是發(fā)展的基礎(chǔ)學(xué)生的創(chuàng)造性思維。當(dāng)學(xué)生開始他們的C語言學(xué)習(xí),他們通常無法找到他們面臨的一個編程問題的出路。為什么呢?一個原因是,學(xué)生不能擺脫在中學(xué)時的舊的思維模式,另一個是他們還沒有掌握C語言的編程方法。因此,教師應(yīng)該多說多講編程方法的例子,以便我們能為培養(yǎng)學(xué)生的創(chuàng)造性思維創(chuàng)造一個良好的環(huán)境。例1:輸入兩正整數(shù)為m和n。然后找出它們的最大公約數(shù)和最小公倍數(shù)。
算法分析:
第一步,讀取問題。學(xué)生仔細(xì)閱讀問題,關(guān)注它是兩個正整數(shù),要輸入數(shù)據(jù)和理解最大公約數(shù)和最小公倍數(shù)的定義。
第二步,繪制的流程圖描述算法的實(shí)現(xiàn)過程(見圖1)。在該算法中,而循環(huán)使用,如果m
第三步,根據(jù)算法編寫的C代碼過程。
第四步,上機(jī)調(diào)試,最終得到程序的正確的結(jié)果。
三、舒適的環(huán)境啟發(fā)學(xué)生的創(chuàng)意靈感
教學(xué)是教師和學(xué)生表達(dá)自己的感情和相互傳染的心情的一個過程。培養(yǎng)學(xué)生的創(chuàng)造性思維,教師首先要設(shè)置一個舒適創(chuàng)意的環(huán)境。還有在課堂教學(xué)中需要注意:1、教師應(yīng)尊重每一個學(xué)生,特別是對待那些編程不好的學(xué)生。這樣,每個學(xué)生會覺得自己被認(rèn)可,然后他們可以無壓力的開拓自己的思維,找到他們的激勵創(chuàng)新。以作者為例如,筆者曾在黑板上給定一個問題,然后讓三學(xué)生完成它,。完成之后,作者做了一些算法分析工作,即使結(jié)果是錯誤的,還是給予更多的鼓勵、少批評。2、分組討論提倡學(xué)生互相幫助。組內(nèi)成員之間應(yīng)該沒有任何區(qū)別。當(dāng)討論明確問題的結(jié)果,語言代表整個群體的智慧,并使每個組員快樂的討論學(xué)習(xí),可以有一個積極的態(tài)度和一個很好的機(jī)會培養(yǎng)學(xué)生的創(chuàng)新思維。
四、突破傳統(tǒng)的研究方法培養(yǎng)學(xué)生的創(chuàng)造性思維
通常我們在傳統(tǒng)的三個步驟教學(xué)理論給出的定義->解釋定義->顯示定義的例子;然而在實(shí)際的C語言編程課程中應(yīng)該有新的三個步驟:提出問題→發(fā)現(xiàn)解>總結(jié)規(guī)律或方法。傳統(tǒng)的方法是從理論到實(shí)踐,從抽象的示范和推廣專業(yè)化,而C編程應(yīng)遵循從實(shí)踐到理論的方法,從示范到抽象、從專業(yè)化的推廣。筆者在教學(xué)中,筆者經(jīng)常首先給出的代碼,然后讓他們的學(xué)生驗(yàn)證碼;有時作者故意犯了一些錯誤,讓學(xué)生正確的記錄結(jié)果的程序。當(dāng)回到課堂,這作者將要求學(xué)生思考算法和代碼中的錯誤,然后的課堂氣氛也會高,很多學(xué)生給出他們的意見,可以很好地發(fā)展他們的創(chuàng)造力。最后,老師會分析這個問題并作出結(jié)論。作為一個結(jié)果,我們可以得到很好的理論教學(xué)效果。
例2:4×4矩陣的轉(zhuǎn)置
該程序的代碼如下:
main()
{int a[4][4]m*p,i;
printf(“Please input a(by row)4×4 matrix:\n”);
for(i=0;i<4;i++)
scanf(“%d%d%d%d”,&a;[1][0],&a;[1][1],&a;[1][2],&a;
[1][3]);
p=&a;[0][0];
為了發(fā)展學(xué)生他的創(chuàng)造性思維,討論了該程序的算法。最后,教師應(yīng)給出分析和結(jié)論:矩陣的轉(zhuǎn)置交換一個a[i] [j]和a[j] [i]。但這個程序使用指針作為參數(shù)的函數(shù)參考,因此,交換的指針是pointer +4*i+j和pointer + 4*j +i,我考慮的要素多維數(shù)組由行(每行4個)存儲,和指針變量是用來存儲一些數(shù)組元素的地址,或在其他組元素。如果一個a[1] [3]和a[3][1]交換,事實(shí)上交換數(shù)組元素所指向的值pointer + 4*i+ 3 和 pointer + 4*3 +i指針,如果學(xué)生能理解算法,那么對學(xué)生創(chuàng)造力的發(fā)展是有益的。
五、鼓勵學(xué)生帶著問題去思考
教師設(shè)置問題應(yīng)巧妙利用課堂提問的藝術(shù)。課堂提問可以提高學(xué)生和老師之間的相互作用。設(shè)置問題應(yīng)按照“學(xué)生之間的差異”,所提問題的層次是發(fā)展的學(xué)生創(chuàng)造性思維的關(guān)鍵。
例3:從100到200,找到所有的素數(shù)。
教師根據(jù)程序提出了一些問題:(1)素數(shù)的定義是什么?(2)有多少次循環(huán)?如何開始循環(huán)工作?(3)結(jié)束循環(huán)的標(biāo)志是什么?(4)輸出格式是怎樣的?讓學(xué)生思考一會兒,然后回答這些問題。在學(xué)生回答,老師給出了自己的結(jié)論:一個素數(shù)是一個整數(shù)且大于1,除了本身和和1之外不能被整除的數(shù)。該程序是一個雙重循環(huán),每執(zhí)行一次外循環(huán),內(nèi)循環(huán)將重復(fù)執(zhí)行,直到表達(dá)式不成立;在執(zhí)行完所有運(yùn)算后退出循環(huán)并輸出結(jié)果,顯示每10個數(shù)一行。提問是必不可少的學(xué)習(xí)環(huán)節(jié),作者應(yīng)該給學(xué)生一些時間提問,可以鼓勵他們?nèi)ニ伎己桶l(fā)展的創(chuàng)造力。作者經(jīng)常讓學(xué)生修改一些程序,他們發(fā)現(xiàn)錯誤,提出新的問題,完善程序,這種方法可以激發(fā)他們的興趣和創(chuàng)造力。
六、激發(fā)學(xué)生發(fā)散性思維和培養(yǎng)學(xué)生的創(chuàng)造力
發(fā)散性思維是創(chuàng)新的核心思考。發(fā)散性思維是想從不同的觀察方向和角度,發(fā)現(xiàn)更多新的信息和尋找答案。在教學(xué)過程中,讓學(xué)生激勵自己學(xué)習(xí)和鼓勵他們打破傳統(tǒng)的方式,嘗試新的方法,以找到自己的適合的方法來解決問題。這是提出了一些新的編程方法,程序使用不同的算法,找到自己的解決方案問題和討論這些差異答案。作為一個結(jié)果,學(xué)生可以發(fā)展他們的希望學(xué)習(xí)和創(chuàng)造性思維的能力。
例4:輸入3個數(shù),A,B,C,找出最大的一個數(shù)。
對于這個問題,有些同學(xué)給出的代碼如下:
一個問題通過多種方法來解決,教師可以拓寬學(xué)生的思想,激發(fā)他們的創(chuàng)造性思維。
七、用創(chuàng)造性的方式教授新知
在多年的教學(xué)中,筆者發(fā)現(xiàn)系統(tǒng)的教學(xué)考慮將正常教學(xué)與創(chuàng)新教學(xué)作為一種系統(tǒng),通過整合教學(xué)實(shí)現(xiàn)教學(xué)目標(biāo)。如下圖所示:形成一個系統(tǒng)的教學(xué)模式:(1)系統(tǒng)的教學(xué)模式是一種模式,可以培養(yǎng)學(xué)生的創(chuàng)新品質(zhì)、是有幫助的為了解創(chuàng)造力的概念教育。(2)系統(tǒng)的教學(xué)模式能體現(xiàn)現(xiàn)代教育理念,有利于發(fā)揮學(xué)生和教師他們的主動性和創(chuàng)造性。(3)系統(tǒng)的教學(xué)模式有助于創(chuàng)新教學(xué)方法,更有助于拓展新教學(xué)方法的運(yùn)用。教師應(yīng)強(qiáng)化C語言教學(xué)中的理論教學(xué)和時間教學(xué)的互動,激發(fā)并引導(dǎo)學(xué)生學(xué)習(xí)主觀能動性,C的教學(xué)過程是培養(yǎng)學(xué)生的興趣,激發(fā)學(xué)生的創(chuàng)新精神和培養(yǎng)他們的創(chuàng)造力思考的一個過程。
參 考 文 獻(xiàn)
[1]譚浩強(qiáng)《C程序設(shè)計(第三版)》清華大學(xué)出版社,2005。
[2] Eric S.Roberts 《Programming Abstractions in C : A Second Course in Computer Science》。
[3](美)Brian W. Kernighan / (美)Dennis M. Ritchie 《C程序設(shè)計語言》機(jī)械工業(yè)出版社 2004-1-1。