国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

計(jì)算思維在C語言程序設(shè)計(jì)中的應(yīng)用

2018-02-28 02:31:28李秀香
電子技術(shù)與軟件工程 2018年20期
關(guān)鍵詞:計(jì)算思維

李秀香

摘要

根據(jù)C語言程序設(shè)計(jì)課的特點(diǎn),引入計(jì)算思維,圍繞計(jì)算思維的本質(zhì)特征,結(jié)合基于計(jì)算思維的教學(xué)內(nèi)容組織,并舉例說明計(jì)算思維在C語言程序設(shè)計(jì)中的具體應(yīng)用。

【關(guān)鍵詞】C語言程序設(shè)計(jì) 計(jì)算思維 抽象自動(dòng)化

1 C語言程序設(shè)計(jì)課在高校存在的問題及畢業(yè)生的就業(yè)問題

C語言程序設(shè)計(jì)是許多高校理工科專業(yè)的一門重要專業(yè)課,為后期其它專業(yè)課的開設(shè)奠定了基礎(chǔ)。C語言這門課語法多,隨著算法的難度增加,大多數(shù)學(xué)生只停留在讀懂給定程序,而不能獨(dú)立設(shè)計(jì)算法和編寫程序。為了提高學(xué)生理解C語言的語法,有時(shí)在上課時(shí)使用案例教學(xué)法,直接把新的語法和知識(shí)點(diǎn)引入案例,這樣能給學(xué)生建立直觀的感性認(rèn)識(shí),但容易導(dǎo)致學(xué)生產(chǎn)生“只知其一,不知其二”的學(xué)習(xí)后果,不利于學(xué)生把知識(shí)學(xué)活、用活,更不利于學(xué)生對(duì)后續(xù)知識(shí)的掌握。

近年來,各大高校計(jì)算機(jī)專業(yè)畢業(yè)的學(xué)生就業(yè)比較困難,而從社會(huì)人才需求調(diào)查報(bào)告了解到:各行業(yè)對(duì)計(jì)算機(jī)類人才缺口很大(如大數(shù)據(jù)分析、AI人工智能)。許多單位招不到滿足社會(huì)需求的能針對(duì)某個(gè)領(lǐng)域的畢業(yè)生,而另一方面很多畢業(yè)生又不到適合自己的工作。出現(xiàn)這種矛盾的根本原因不是大學(xué)畢業(yè)生人數(shù)多或質(zhì)量差,而是高校沒有很好完成大學(xué)畢業(yè)生與社會(huì)的接軌。大學(xué)的教育要擺脫以傳授知識(shí)為主,應(yīng)主要培養(yǎng)計(jì)算機(jī)專業(yè)學(xué)生的主動(dòng)自學(xué)能力、抽象思維能力、理解應(yīng)用能力和操作能力。

2 計(jì)算思維

學(xué)習(xí)C語言程序設(shè)計(jì)課主要是要求學(xué)生掌握問題求解的算法,且用程序?qū)崿F(xiàn)算法,這正是計(jì)算思維能解決的。近些年,各大高校圍繞計(jì)算思維開展教學(xué),將計(jì)算思維應(yīng)用于程序設(shè)計(jì)類課程教學(xué)中。

2006年3月,美國(guó)卡內(nèi)基·梅隆計(jì)算機(jī)科學(xué)系主任周以真教授對(duì)計(jì)算思維給出了明確的定義,她認(rèn)為:計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)、以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。中國(guó)科學(xué)院院士、南京郵電大學(xué)教授陳國(guó)良解釋說,計(jì)算思維如同所有人都具備“讀、寫、算”(簡(jiǎn)稱3R)能力一樣,是每個(gè)人應(yīng)具有的基本技能,它已經(jīng)成為人們最基礎(chǔ)、最普遍、最適用的技能,到2050以前,讓地球上每一位公民應(yīng)具備“計(jì)算思維”的能力。

計(jì)算思維的本質(zhì)是抽象和自動(dòng)化。計(jì)算思維中的抽象指的是對(duì)求解問題的一種描述,是對(duì)問題的表達(dá)和推演,自動(dòng)化是用具體的形式體現(xiàn)計(jì)算和結(jié)果。就C語言而言,抽象就是用變量、函數(shù)、數(shù)組等對(duì)需要解決的實(shí)際問題進(jìn)行概括描述,抽象的過程實(shí)際上就是對(duì)實(shí)際問題確立模型的過程,自動(dòng)化則是利用符合某種語言的語法規(guī)則編寫的語句,按照順序自動(dòng)執(zhí)行語句并進(jìn)行自動(dòng)轉(zhuǎn)換。

程序設(shè)計(jì)語言和計(jì)算思維兩者相輔相成,語言是思維的體現(xiàn),思維是語言的載體。c語言中的函數(shù)、遞歸和模塊等知識(shí)點(diǎn)都承載著解決問題的計(jì)算思維。計(jì)算思維是模型加算法,在C語言中,把解決的問題抽象成與其相應(yīng)的模型,然后確定算法,最后編寫程序求解問題。

3 基于計(jì)算思維的教學(xué)內(nèi)容組織

面向過程的C語言程序主要介紹C語言基本的語法、操作對(duì)象及其數(shù)據(jù)類型、基本運(yùn)算符和三種基本的程序控制結(jié)構(gòu)等,這些基本概念都是對(duì)現(xiàn)實(shí)的抽象與表達(dá),主要以理解和加強(qiáng)記憶為主。如在數(shù)據(jù)類型及表達(dá)式,這些操作對(duì)象是對(duì)系統(tǒng)特征的抽象。而C語言程序設(shè)計(jì)中的函數(shù)、數(shù)組、指針和文件等,則更應(yīng)強(qiáng)調(diào)從現(xiàn)實(shí)到計(jì)算機(jī)邏輯的抽象表達(dá)。在此過程中,要注重學(xué)生抽象思維能力的培養(yǎng)。如數(shù)組是對(duì)多個(gè)相同或不同數(shù)據(jù)類型的一個(gè)或多個(gè)特征的抽象;函數(shù)的定義和調(diào)用分別是對(duì)系統(tǒng)功能和功能調(diào)用的抽象;結(jié)構(gòu)體是對(duì)多個(gè)不同類型的多個(gè)特征的抽象,指針則是多個(gè)不同類型的多個(gè)特征集合的抽象。從以上c語言教學(xué)內(nèi)容組織可見,C語言程序設(shè)計(jì)課程的教學(xué)表面上是對(duì)基本語法的學(xué)習(xí)和應(yīng)用,深層次則是計(jì)算思維的訓(xùn)練和基于該思維的分析問題、解決問題等創(chuàng)新能力的培養(yǎng)。

3.1 基本語法和數(shù)據(jù)類型的計(jì)算思維教學(xué)

C語言中的常量和變量是對(duì)對(duì)象的描述。常量是對(duì)在程序運(yùn)行過程中的其值不變的特征抽象描述,如重力加速度g;而變量則是對(duì)程序運(yùn)行中其取值發(fā)生變化的特征進(jìn)行抽象,如建筑物的高度。不管是哪類對(duì)象,都有其取值范圍以及所允許的操作。例如,對(duì)于年齡,其取值范圍一般是從0-130,允許對(duì)其進(jìn)行的操作可以是加減法等算術(shù)運(yùn)算以及大于和小于等比較運(yùn)算;而對(duì)于性別,就不能進(jìn)行算術(shù)運(yùn)算。C語言程序設(shè)計(jì)中對(duì)特征的取值范圍及允許的操作進(jìn)行抽象的概念是數(shù)據(jù)類型。現(xiàn)實(shí)生活中,描述多個(gè)相同數(shù)據(jù)類型的一個(gè)特征常用一維數(shù)組描述,而描述描述多個(gè)相同數(shù)據(jù)類型的多個(gè)特征常用二維數(shù)組描述,描述多個(gè)不同數(shù)據(jù)類型的多個(gè)特征則用結(jié)構(gòu)體進(jìn)行描述。

3.2 程序控制結(jié)構(gòu)的計(jì)算思維教學(xué)

C語言程序設(shè)計(jì)語言中的三種控制結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),都是看起來容易理解但很難靈活運(yùn)用的內(nèi)容。在講授這部分內(nèi)容時(shí),要在掌握基本語法和了解程序流程的基礎(chǔ)上,引導(dǎo)學(xué)生從多個(gè)角度進(jìn)行思考和對(duì)問題的抽象,啟發(fā)學(xué)生通過不同的方法解決問題。

如對(duì)于解決同一實(shí)際問題,使用三種形式的循環(huán)控制結(jié)構(gòu)for循環(huán)、while循環(huán)和do…while循環(huán),引導(dǎo)學(xué)生比較各種結(jié)構(gòu)的不同和各自優(yōu)缺點(diǎn)。

4 計(jì)算思維在C語言程序設(shè)計(jì)中的具體應(yīng)用

C語言中的典型算法有:窮舉法、遞推法、遞歸法、回溯法、迭代法、分治法、貪心法和動(dòng)態(tài)規(guī)劃法等,這些典型算法常應(yīng)用于實(shí)際的生活問題中。每年的大學(xué)生數(shù)學(xué)建模競(jìng)賽總要用到這些典型算法。在遇到實(shí)際問題時(shí),首先要通過對(duì)問題的分析;然后確定抽象出基本數(shù)據(jù)結(jié)構(gòu)和算法;最后選擇合適的程序設(shè)計(jì)語言編制程序并進(jìn)行調(diào)試運(yùn)行,并根據(jù)運(yùn)行結(jié)果改寫程序中的編程錯(cuò)誤和算法設(shè)計(jì)錯(cuò)誤(具體過程描述如圖1)。

如用計(jì)算思維解決01背包問題時(shí),問題描述(如圖2)。解決此類問題應(yīng)先對(duì)實(shí)際問題獲得感性認(rèn)識(shí),然后對(duì)問題進(jìn)行抽象,如解決01背包問題時(shí)使用窮舉法,其基本思想是遍歷這顆樹,枚舉所有的情況,進(jìn)行判斷,如果重量不超過Wm,且價(jià)值最大的方案就是問題的解。在實(shí)際遍歷時(shí),如發(fā)現(xiàn)沒有意義的路徑時(shí),就立即停止對(duì)它的進(jìn)一步搜索,進(jìn)而提高搜索效率。n種物品,樹的高度為n,共有2n-1個(gè)節(jié)點(diǎn),構(gòu)成一顆滿二叉樹(如圖3)。再對(duì)上面抽象出的問題建模,將問題定量轉(zhuǎn)化、利用數(shù)學(xué)模型擬合;通過抽象變量、定義函數(shù)、調(diào)用函數(shù)等方法,將開始的復(fù)雜問題轉(zhuǎn)換成一個(gè)可以求解的過程(如圖4)。最后通過編程,將問題轉(zhuǎn)化為機(jī)器可解的簡(jiǎn)單問題,得出解決問題的方法(如圖5)。

計(jì)算思維在C語言程序設(shè)計(jì)應(yīng)用中還應(yīng)用注意以下幾個(gè)方面:

4.1 積極引導(dǎo)學(xué)生進(jìn)行思維訓(xùn)練

學(xué)習(xí)教材上一些具體實(shí)例后,要鼓勵(lì)學(xué)生敢于打破常規(guī),拓展思路,積極探索,爭(zhēng)取采用一題多解的方式,尋求更好的算法。程序設(shè)計(jì)更多的是從模仿開始,但也一定要有自己的思維,不要生搬硬套。在程序設(shè)計(jì)中,逐步培養(yǎng)學(xué)生抽象問題的能力,學(xué)會(huì)解決問題的方法和步驟,主動(dòng)用計(jì)算思維去解決問題。

4.2 積極引導(dǎo)學(xué)生對(duì)典型算法的應(yīng)用

學(xué)生掌握了典型算法后,積極引導(dǎo)學(xué)生應(yīng)用典型算法解決實(shí)際問題,培養(yǎng)學(xué)生對(duì)典型算法的靈活應(yīng)用和變通能力,及時(shí)總結(jié)c語言程序設(shè)計(jì)方法和設(shè)計(jì)過程中所涵蓋的計(jì)算思維,做到舉一反三,觸類旁通。

4.3 積極引導(dǎo)學(xué)生親自實(shí)踐

實(shí)踐是程序設(shè)計(jì)課的一個(gè)重要環(huán)節(jié),在學(xué)生自主實(shí)踐中,一定要讓學(xué)生認(rèn)識(shí)和掌握解決問題的思維方式,教會(huì)學(xué)生如何學(xué)習(xí)和思考。在實(shí)踐中遇到問題,相互探討,通過老師提示,學(xué)生能獨(dú)立完成。

5 結(jié)語

計(jì)算思維在C語言程序設(shè)計(jì)中起著很重要的作用。授課時(shí),要采用慢慢引入、循序漸進(jìn)的方式把這種思維滲透到各個(gè)知識(shí)點(diǎn)和知識(shí)點(diǎn)的應(yīng)用中,使學(xué)生在編程過程中自覺或不自覺地學(xué)會(huì)使用這種思維方式。培養(yǎng)學(xué)生在編程中得心應(yīng)手地使用計(jì)算思維,是當(dāng)代教師肩負(fù)的重要責(zé)任,當(dāng)然,它是一個(gè)需要在教學(xué)中長(zhǎng)期滲透和培養(yǎng)的過程,需要我們不斷探索,不斷實(shí)踐。

參考文獻(xiàn)

[1]專家論壇李竹林,王文發(fā).基于計(jì)算思維的程序設(shè)計(jì)類課程教學(xué)模式探索[J].2018(03):1-5

[2]Jeannette M.Wing.ComputationalThinking[J].Communciations of theACM,2006,49(03):33-35.

[3]袁開榜.二十一世紀(jì).人們應(yīng)該具有計(jì)算思維能力[J].計(jì)算機(jī)教育,2011(03):30-34.

[4]范興亮.C語言程序設(shè)計(jì)課程中的計(jì)算思維探析[J].無線互聯(lián)技術(shù),2017(08):67-68.

[5]張雪,伍常,晉義.計(jì)算思維在C++程序設(shè)計(jì)教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2013(13):52-56.

[6]汪紅兵,姚琳.C語言程序設(shè)計(jì)課程中的計(jì)算思維探析[J].中國(guó)大學(xué)教學(xué),2014(09):59-62.

[7]張東生鄭文奎基于思維空間轉(zhuǎn)換的計(jì)算思維教育[J].計(jì)算機(jī)教育,2014(11):2-6.

[8]臧勁松培養(yǎng)學(xué)生計(jì)算思維的程序設(shè)計(jì)課程教學(xué)[J].計(jì)算機(jī)教育,2012(02):78-80.

[9]呂俊陸淑娟以計(jì)算思維培養(yǎng)為導(dǎo)向的《語言程序設(shè)計(jì)》課程教學(xué)改革[J].2016(15):213-215.

猜你喜歡
計(jì)算思維
適合高中生計(jì)算思維能力培養(yǎng)的程序設(shè)計(jì)語言初探
高中信息技術(shù)課堂中計(jì)算思維能力培養(yǎng)問題的探討
基于計(jì)算思維視角的計(jì)算機(jī)基礎(chǔ)課程改革
商情(2016年39期)2016-11-21 09:41:50
公安專業(yè)學(xué)生計(jì)算思維能力培養(yǎng)對(duì)策初探
基于計(jì)算思維的多媒體技術(shù)及應(yīng)用課程教學(xué)模式研究
信管專業(yè)計(jì)算機(jī)科學(xué)概論課程的教學(xué)改革實(shí)踐
基于計(jì)算思維的軟件類研究生高級(jí)算法課程教學(xué)研究
基于計(jì)算思維程序設(shè)計(jì)的軍事案例研究
程序設(shè)計(jì)課程中計(jì)算思維和應(yīng)用能力培養(yǎng)問題研究
民族高校C語言程序設(shè)計(jì)課程教學(xué)改革的研究
軟件工程(2016年8期)2016-10-25 16:03:32
灵丘县| 昭苏县| 桓台县| 乐安县| 卢湾区| 家居| 固始县| 罗定市| 炎陵县| 交口县| 随州市| 堆龙德庆县| 根河市| 孝昌县| 万州区| 新闻| 巨鹿县| 永城市| 扶绥县| 佛坪县| 博客| 电白县| 台山市| 凌源市| 丰台区| 商洛市| 普陀区| 南溪县| 方山县| 乐平市| 盐池县| 九江县| 瓮安县| 兰州市| 冀州市| 全南县| 南充市| 永昌县| 乐都县| 亚东县| 临洮县|