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