范興亮
(重慶應(yīng)用技術(shù)職業(yè)學(xué)院,重慶 401320)
C語(yǔ)言程序設(shè)計(jì)課程中的計(jì)算思維探析
范興亮
(重慶應(yīng)用技術(shù)職業(yè)學(xué)院,重慶 401320)
C語(yǔ)言程序是一種計(jì)算機(jī)技術(shù),現(xiàn)在已經(jīng)被廣泛應(yīng)用于各個(gè)領(lǐng)域,推動(dòng)各大行業(yè)的發(fā)展,越來(lái)越得到人們的重視,因此形成專(zhuān)門(mén)的學(xué)科—C語(yǔ)言程序設(shè)計(jì)。進(jìn)行C語(yǔ)言程序設(shè)計(jì)課程教學(xué)時(shí),不但應(yīng)用到了傳統(tǒng)的抽象式教學(xué)方法和灌輸式教學(xué)方法,還應(yīng)用到了實(shí)踐性和驅(qū)動(dòng)性等教學(xué)方法。但無(wú)論哪一種方法,在教學(xué)過(guò)程中或多或少都會(huì)提到計(jì)算思維,可想而知計(jì)算思維在C語(yǔ)言程序設(shè)計(jì)課程中的重要性。對(duì)此,文章根據(jù)C語(yǔ)言程序設(shè)計(jì)課程教學(xué)經(jīng)驗(yàn),對(duì)C語(yǔ)言程序設(shè)計(jì)課程中的計(jì)算思維進(jìn)行了詳細(xì)分析。
C 語(yǔ)言程序設(shè)計(jì);計(jì)算思維;抽象;自動(dòng)化
早在2006年周以真教授就提出了計(jì)算思維理念:他認(rèn)為計(jì)算思維實(shí)質(zhì)上就是利用計(jì)算機(jī)相關(guān)知識(shí)來(lái)解決問(wèn)題并系統(tǒng)設(shè)計(jì)一系列的思維活動(dòng)。之后,陳國(guó)良院士與李廉教授通過(guò)整合得出了3種較為典型的科學(xué)思維:也就是用觀察和整理為特性的實(shí)證思維、用推演為特性的邏輯思維、再者就是抽象與自動(dòng)化的計(jì)算思維。在這3種方式中,計(jì)算思維屬于計(jì)算機(jī)類(lèi)課程所主修的思維方式。
對(duì)于C語(yǔ)言程序設(shè)計(jì)課程教學(xué)模式來(lái)看,一些學(xué)者在剛開(kāi)始就比較贊同案例教學(xué)。雖然說(shuō)這樣可以讓學(xué)生更快地接觸到實(shí)際編程環(huán)節(jié)并養(yǎng)成直觀感性的認(rèn)識(shí),但因?yàn)榘咐虒W(xué)容易出現(xiàn)“程序就是編程工具”的論點(diǎn),很容易出現(xiàn)“只知其然,而不知其所以然”的學(xué)習(xí)現(xiàn)象,這將會(huì)嚴(yán)重地妨礙后期階段的學(xué)習(xí)。
就C語(yǔ)言程序而言,所謂抽象就是說(shuō)使用符號(hào)系統(tǒng)對(duì)所要求解的問(wèn)題先進(jìn)行一項(xiàng)精準(zhǔn)的描述,抽象的過(guò)程簡(jiǎn)單說(shuō)就是對(duì)實(shí)際系統(tǒng)建立模型的過(guò)程。實(shí)際來(lái)說(shuō),程序就是用來(lái)描述真實(shí)生活中一些實(shí)際存在與實(shí)際中不存在的系統(tǒng)。程序本身就是對(duì)系統(tǒng)的抽象。而系統(tǒng)的存在,是因?yàn)樗衅渲匾攸c(diǎn)與核心能力。程序中對(duì)系統(tǒng)特性進(jìn)行抽象的就是所謂的操作對(duì)象,函數(shù)是指對(duì)系統(tǒng)功能的抽象。系統(tǒng)功能可能會(huì)有很多較為繁瑣的調(diào)用關(guān)系。就比如說(shuō),一個(gè)函數(shù)定積分的求解,它就肯定會(huì)牽涉到函數(shù)在某個(gè)定點(diǎn)的取值,若是遇到的函數(shù)包含了正弦、余弦、正切、余切這些三角函數(shù)的話,還必須要調(diào)用求這些三角函數(shù)的功能形成多層調(diào)用,遞歸調(diào)用是說(shuō)函數(shù)在執(zhí)行過(guò)程中要用到自身。
C語(yǔ)言程序中所常見(jiàn)的操作對(duì)象一般是變量與常量。常量是指一些系統(tǒng)中取值不會(huì)改變的特性進(jìn)行抽象,比如說(shuō)圓周率;而變量是對(duì)系統(tǒng)內(nèi)取值能夠轉(zhuǎn)變的特性進(jìn)行抽象的,比如說(shuō)圓的半徑等。但是不論具備哪種特征,它都有一個(gè)自身限定的取值范圍與允許范圍內(nèi)的操作,像最為常見(jiàn)的學(xué)習(xí)成績(jī),它的取值范圍通常都是0~100,其中對(duì)這種特征操作時(shí)就能是加減法這樣的算數(shù)操作,或是大于小于這樣的比較運(yùn)算操作;但課程名稱(chēng)這項(xiàng)特征,就不能通過(guò)加減法這樣的操作來(lái)進(jìn)行了。而C語(yǔ)言程序中所使用的特征取值范圍與所允許操作的抽象概念都屬于數(shù)據(jù)類(lèi)型。
計(jì)算思維從本質(zhì)上是利用計(jì)算相關(guān)概念將各種元素進(jìn)行整合形成的一種符號(hào)系統(tǒng),其運(yùn)用是對(duì)符號(hào)系統(tǒng)中的各種元素進(jìn)行操作,另外通過(guò)利用計(jì)算相關(guān)概念還可以對(duì)不同順序的結(jié)構(gòu)進(jìn)行順序自動(dòng)調(diào)整,以實(shí)現(xiàn)不同結(jié)構(gòu)的自動(dòng)執(zhí)行操作。對(duì)C語(yǔ)言程序而言,自動(dòng)化的表現(xiàn)主要是函數(shù)內(nèi)部的語(yǔ)錄在EIP寄存器加法操作的幫助下,按照順序自行執(zhí)行操作,或是函數(shù)間的調(diào)用在內(nèi)存堆棧區(qū)的基礎(chǔ)上進(jìn)行自動(dòng)轉(zhuǎn)換。
比如說(shuō)某個(gè)變量定義語(yǔ)句int a,它的執(zhí)行操作是在內(nèi)存中先放置4個(gè)字節(jié)的范圍,返回語(yǔ)句return t的執(zhí)行操作是把程序的執(zhí)行過(guò)程重新返回到主調(diào)函數(shù)內(nèi)部。這些語(yǔ)句的組合可以形成多個(gè)函數(shù),所謂的程序執(zhí)行就是說(shuō)在函數(shù)間按照順序自動(dòng)在多個(gè)函數(shù)間轉(zhuǎn)換。雖然說(shuō)程序的執(zhí)行是在一個(gè)或者多個(gè)函數(shù)之間按照順序自動(dòng)地轉(zhuǎn)換,但這種自動(dòng)執(zhí)行的方式還是需要對(duì)應(yīng)的計(jì)算機(jī)軟件與硬件基礎(chǔ)來(lái)保證的。保證程序自動(dòng)執(zhí)行的軟件基礎(chǔ)是操作系統(tǒng),硬件基礎(chǔ)是計(jì)算機(jī)的硬件結(jié)構(gòu)。當(dāng)使用者按下執(zhí)行鍵時(shí),程序就可以不用人工操作,而由系統(tǒng)來(lái)執(zhí)行。之后的操作過(guò)程都會(huì)以進(jìn)程的方式。
3.1 積極在C語(yǔ)言課程設(shè)計(jì)課程中引用驅(qū)動(dòng)式教方法
第一,老師在進(jìn)行教學(xué)之前,需要全面了解C語(yǔ)言程序設(shè)計(jì)的教學(xué)目的,然后具有目的性地引導(dǎo)學(xué)生學(xué)習(xí)編程C語(yǔ)言程序;第二,提前將C語(yǔ)言課程教學(xué)內(nèi)容中的問(wèn)題找出,并挑出符合學(xué)生研究的問(wèn)題,然后針對(duì)問(wèn)題找出可以解決C語(yǔ)言編程的計(jì)算思維及編程方法;第三,在教學(xué)過(guò)程中引入提前準(zhǔn)備好的課程教學(xué)問(wèn)題,引導(dǎo)學(xué)生對(duì)問(wèn)題進(jìn)行探討,并將問(wèn)題探討中涉及的計(jì)算思維明確出來(lái),并指導(dǎo)學(xué)生在編程C語(yǔ)言過(guò)程中合理應(yīng)用計(jì)算思維。
3.2 提高對(duì)C語(yǔ)言應(yīng)用性教學(xué)
第一,老師要根據(jù)學(xué)生的C語(yǔ)言理論學(xué)習(xí)實(shí)際,選擇或編制出符合學(xué)生實(shí)際的C語(yǔ)言應(yīng)用性教材,其教材的大部分內(nèi)容盡可能是“實(shí)例經(jīng)典,理論實(shí)用”等;第二,在講授C語(yǔ)言理論時(shí),盡可能與實(shí)際相結(jié)合,即邊講C語(yǔ)言學(xué)習(xí)中應(yīng)用到的計(jì)算思維,邊現(xiàn)場(chǎng)展示計(jì)算思維的實(shí)際應(yīng)用,讓學(xué)生當(dāng)場(chǎng)學(xué)會(huì)應(yīng)用計(jì)算思維;第三,老師要不斷創(chuàng)新自己的C語(yǔ)言教學(xué)方法,不要一味地按照書(shū)本上提高的計(jì)算思維方法講授,而是將計(jì)算思維在C語(yǔ)言學(xué)習(xí)中應(yīng)用方法轉(zhuǎn)換為實(shí)例,讓學(xué)生在實(shí)例分析中了解計(jì)算思維。
3.3 要將項(xiàng)目作為實(shí)踐環(huán)節(jié)的中心
第一,老師進(jìn)行C語(yǔ)言設(shè)計(jì)課程實(shí)踐教學(xué)時(shí),要將C語(yǔ)言程序設(shè)計(jì)項(xiàng)目作為實(shí)踐教學(xué)的中心,并將課程教學(xué)中計(jì)算思維的提升作為教學(xué)的重要目標(biāo);第二,老師在教授學(xué)生使用計(jì)算思維設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)時(shí),一定要從培養(yǎng)和提高學(xué)生的實(shí)際學(xué)習(xí)能力、應(yīng)用能力和創(chuàng)新能力角度出發(fā),以培養(yǎng)出綜合型、應(yīng)用型和創(chuàng)新型的C語(yǔ)言程序編程人才;第三,除了教學(xué)生在C語(yǔ)言程序設(shè)計(jì)課堂上應(yīng)用計(jì)算思維以外,還要引導(dǎo)學(xué)生將計(jì)算思維應(yīng)用到實(shí)際生活中C語(yǔ)言程序設(shè)計(jì)中,以激發(fā)學(xué)生學(xué)習(xí)興趣的同時(shí),培養(yǎng)學(xué)生的計(jì)算思維及其應(yīng)用能力。
實(shí)例1:在C語(yǔ)言程序設(shè)計(jì)課程教學(xué)過(guò)程中必定會(huì)學(xué)習(xí)到選擇結(jié)構(gòu)程序設(shè)計(jì)和循環(huán)結(jié)構(gòu)程序設(shè)計(jì),面對(duì)這兩課程教學(xué)時(shí),老師要靈活地將不同字符程序進(jìn)行轉(zhuǎn)換,并先從簡(jiǎn)單的程序設(shè)計(jì)還教學(xué),然后逐漸增加教學(xué)內(nèi)容的難度,以培養(yǎng)學(xué)生計(jì)算思維能力的同時(shí),讓學(xué)生連貫性的學(xué)習(xí)到選擇和循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的“字符轉(zhuǎn)換”,進(jìn)而學(xué)習(xí)到其他程序知識(shí)點(diǎn),字符轉(zhuǎn)換程序的相關(guān)知識(shí)點(diǎn)分布如表1所示。
實(shí)例2:
計(jì)算1 1+2 1+3 1+…+n!時(shí),老師可以引導(dǎo)學(xué)生利用雙重for循環(huán)來(lái)解決計(jì)算問(wèn)題,并引導(dǎo)學(xué)生將函數(shù)遞歸理論應(yīng)用到計(jì)算1 1+2 1+3 1+…+n!計(jì)算過(guò)程中,以解決計(jì)算中遇到的各種問(wèn)題;另外,老師還可以鼓勵(lì)具有一定計(jì)算思維的學(xué)生積極創(chuàng)新出新的計(jì)算問(wèn)題解決方法,然后對(duì)已有程序的優(yōu)缺點(diǎn)進(jìn)行分析,以實(shí)現(xiàn)自己新計(jì)算思維在問(wèn)題解決過(guò)程中的融合,進(jìn)而達(dá)到優(yōu)化C語(yǔ)言程序的目的。
綜上所述,文章主要針對(duì)計(jì)算思維所體現(xiàn)出的抽象與自動(dòng)化特點(diǎn),提出了一些C語(yǔ)言程序設(shè)計(jì)課程的教學(xué)方案、教學(xué)模式、考核方面的一些建議。
[1]汪紅兵,姚琳,武航星,等. C語(yǔ)言程序設(shè)計(jì)課程中的計(jì)算思維探析[J].中國(guó)大學(xué)教學(xué),2014(9):59-62.
[2]文海英,陳友明,呂蘭蘭.基于計(jì)算思維能力培養(yǎng)的“C語(yǔ)言程序設(shè)計(jì)”教學(xué)方法探索[J].電腦知識(shí)與技術(shù),2013(32):7291-7293.
[3]汪瀅.基于能力培養(yǎng)的“C語(yǔ)言程序設(shè)計(jì)”教學(xué)改革研究[J].科教導(dǎo)刊,2016(27):97-98.
Analysis of computational thinking in C language programm ing course
Fan Xingliang
(Chongqing Applied Technology, Career Academy, Chongqing 401320, China)
C Language is a kind of computer technology, it has been w idely used in various fields, and promotes the development of the industry, more and more people’s attention are paid to it, thus form ing a specialized subject:C Language Programm ing Design. Ιn C language programm ing teaching, it is not only applied to the abstract type of traditional teaching method, but also applied to the practice and drive of teaching methods. But no matter which kind of methods in the teaching process is used, it w ill be more or less mentioned computational thinking, the importance of thinking can be imagined in the course of C language programm ing. Ιn this regard, the author according to the teaching experience of C programm ing language course for many years, analyzes the calculation thinking in the course of C Programm ing Language Design in detail.
C language design programm ing; computational thinking; abstract; automation
范興亮(1981— ),男,重慶,本科,講師;研究方向:計(jì)算機(jī)網(wǎng)絡(luò)。