• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      編程:一種觀察世界的新視角

      2018-01-06 01:03:40胡金錦
      電腦知識(shí)與技術(shù) 2017年35期
      關(guān)鍵詞:計(jì)算思維程序算法

      胡金錦

      摘要:讓學(xué)生學(xué)習(xí)編程,引導(dǎo)學(xué)生深度思考算法及其工作流程,親歷問(wèn)題建模、算法設(shè)計(jì)、程序?qū)崿F(xiàn)及優(yōu)化的完整過(guò)程,引領(lǐng)學(xué)生從計(jì)算機(jī)科學(xué)家視角分析問(wèn)題、解決問(wèn)題,對(duì)于學(xué)生而言,無(wú)疑是一種觀察世界的全新視角。

      關(guān)鍵詞:算法;程序;計(jì)算思維;冒泡排序

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)35-0126-03

      伴隨面向?qū)ο蟪绦蛘Z(yǔ)言的興起,算法思維與建模能力的培養(yǎng)在高中信息技術(shù)課堂中一度被弱化,原因是編程環(huán)境的可視化和控件的事件響應(yīng),以及追求程序課堂的趣味性,讓算法與程序設(shè)計(jì)課向多媒體技術(shù)方向發(fā)展。這樣的課堂雖然沒(méi)有拋棄程序基本語(yǔ)言的學(xué)習(xí),但是漂亮的程序代碼、嚴(yán)謹(jǐn)規(guī)范的語(yǔ)言風(fēng)格、計(jì)算思維的訓(xùn)練卻被忽視。我們?cè)诔绦蚪虒W(xué)的路途中,常有茫然失措、忘了初心的感覺(jué)。

      著名的計(jì)算機(jī)科學(xué)家、圖靈獎(jiǎng)得主艾茲格·迪杰斯特拉說(shuō):“我們所使用的工具影響著我們的思維方式和思維習(xí)慣,從而也將深刻地影響著我們的思維能力?!庇?jì)算機(jī)給我們提供了一種全新的思維方式——計(jì)算思維。美國(guó)卡內(nèi)基梅隆大學(xué)周以真教授認(rèn)為:計(jì)算思維是人們運(yùn)用計(jì)算機(jī)科學(xué)思想與方法進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì),以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)廣度的一系列思維活動(dòng)。新課標(biāo)將“計(jì)算思維”引入課堂,使信息技術(shù)課程教學(xué)從注重實(shí)踐操作的技術(shù)素養(yǎng)層面上升到注重思維素養(yǎng)培養(yǎng)的層面。

      下面,我們以《冒泡排序》為例來(lái)談如何在程序設(shè)計(jì)課中落實(shí)計(jì)算思維的養(yǎng)成,以期拋磚引玉,與同行們一起努力建構(gòu)更好的算法與程序設(shè)計(jì)教學(xué)模式。

      1 第一層次思維:實(shí)際問(wèn)題的抽象與量化

      計(jì)算機(jī)思維的本質(zhì)是以“0”和“1”為基礎(chǔ)的數(shù)字量來(lái)反映真實(shí)世界?!澳!薄皵?shù)”的轉(zhuǎn)換是人類與計(jì)算機(jī)建立聯(lián)系的紐帶。因此,實(shí)際問(wèn)題的抽象與量化是計(jì)算思維形成的第一層次。下面是我在課堂中引導(dǎo)學(xué)生體驗(yàn)實(shí)際問(wèn)題抽象量化的一個(gè)課堂片段:

      師:生活中,我們經(jīng)常碰到排隊(duì)的情況,比如:操場(chǎng)上排隊(duì)做操、醫(yī)院里排隊(duì)看病。

      我邀請(qǐng)第一排6位同學(xué)上來(lái),要求學(xué)生按身高進(jìn)行排序?!安粚?duì)不對(duì),生一應(yīng)該排在生二后面……”,下面學(xué)生囔囔著。6位學(xué)生前前后后調(diào)整了幾次總算排好了位置。

      接著,我讓后面一排6位同學(xué)先用記號(hào)筆把身高寫(xiě)在A4紙上,然后到上面排隊(duì),大家互相看看身高,不一會(huì)就排好了。

      師(指著其中一位換到前面去的同學(xué)):請(qǐng)這位同學(xué)說(shuō)說(shuō)為什么第二次排隊(duì)效率比較高。

      這時(shí)學(xué)生一般會(huì)提到數(shù)字標(biāo)明比較明確,方便比較大小。

      (學(xué)生體驗(yàn)到了抽象與量化,在問(wèn)題處理中的優(yōu)勢(shì)。)

      師:學(xué)生身高抽象為數(shù)學(xué)量以后,使問(wèn)題簡(jiǎn)潔明確,方便我們處理,所以下面的同學(xué)一看就知道順序了。排隊(duì)是一種排序——通過(guò)調(diào)整位置,把雜亂無(wú)章的數(shù)據(jù)變成有序數(shù)據(jù)。

      師:當(dāng)學(xué)生數(shù)量比較多,比如在操場(chǎng)上,我們就沒(méi)法一眼看出誰(shuí)身高第一、誰(shuí)第二、誰(shuí)第三……。其實(shí),我們?nèi)四X的計(jì)算力是有限的,當(dāng)隨之人數(shù)的增加,數(shù)據(jù)規(guī)模就會(huì)擴(kuò)大,人腦處理就會(huì)越來(lái)越困難,這時(shí)我們可以借助計(jì)算機(jī)。要讓計(jì)算機(jī)幫我們排序,我們首先要記錄6位同學(xué)的身高數(shù)據(jù)。我們用哪種變量類型比較適合?

      生:數(shù)組。

      師:嗯,數(shù)組。但計(jì)算機(jī)生活在“01”世界里,有它自己的布爾智慧,我們生活中的排序思維方法不能直接移植給計(jì)算機(jī),而需要通過(guò)計(jì)算機(jī)的布爾邏輯特性進(jìn)行算法設(shè)計(jì)以做到人機(jī)互適。計(jì)算機(jī)排序算法的類型很多,這節(jié)課我們來(lái)學(xué)習(xí)一種比較典型的排序算法“冒泡排序”。

      2 第二層次的思維:基于模型建構(gòu)算法

      計(jì)算思維源自數(shù)學(xué)思維,像所有的科學(xué)一樣,其基礎(chǔ)建筑于數(shù)學(xué)之上。計(jì)算思維又源自工程思維,基本計(jì)算設(shè)備的限制迫使計(jì)算機(jī)學(xué)家必須考慮計(jì)算機(jī)的特性。在教學(xué)中能突破簡(jiǎn)單問(wèn)題的求解,挖掘人機(jī)共存算法思維顯得尤為重要。教師可以通過(guò)模擬執(zhí)行法、自頂向下逐步求精法,特殊到一般歸納總結(jié)法等,給學(xué)生展示與剖析算法的原理與思想。

      2.1 模擬執(zhí)行,體驗(yàn)計(jì)算機(jī)處理數(shù)據(jù)的過(guò)程。

      教師通過(guò)PPT展示冒泡排序數(shù)據(jù)存儲(chǔ)結(jié)構(gòu):

      表1

      [下標(biāo) 1 2 3 4 5 6 數(shù)組a() 49 97 65 13 76 38 ]

      教師模擬計(jì)算機(jī)完成第一趟數(shù)據(jù)的比較和交換過(guò)程后:

      師:數(shù)據(jù)兩兩比較一共比較了幾次?

      生:5次。

      師:第一趟完成后數(shù)據(jù)有什么特征?

      學(xué)生交流討論得出結(jié)論,最大數(shù)97被交換到了最后。

      師:第二趟比較需要比較幾次?

      學(xué)生交流討論,得出結(jié)論第二次比較只需比較4次,因?yàn)樽畲髷?shù)已經(jīng)排定。

      教師再演示第二遍的過(guò)程讓學(xué)生印證自己的想法。

      第二遍排序結(jié)束后,讓學(xué)生寫(xiě)出第三趟排序結(jié)果,了解學(xué)生的掌握情況。之后教師進(jìn)行適當(dāng)?shù)目偨Y(jié),讓學(xué)生繼續(xù)觀察第四、第五遍的排序結(jié)果??偨Y(jié)出冒泡排序的規(guī)律:

      (1) 從一端開(kāi)始,逐對(duì)進(jìn)行相鄰元素比較

      (2) 如果前一個(gè)數(shù)比后一個(gè)數(shù)大,則進(jìn)行交換

      (3) 重復(fù)(1)、(2)步驟直到得到一個(gè)最值(位置右端)

      (4) 重復(fù)(1)、(2)、(3)步處理n-1趟,完成排序

      2.2 畫(huà)流程圖,感悟自頂相下逐步求精的思想

      教師以具體的6個(gè)數(shù)升序排序?yàn)槔?,由最?jiǎn)單的流程圖1開(kāi)始,讓學(xué)生回顧冒泡排序的特點(diǎn),每趟比較可以確定一個(gè)最數(shù)(最大或最小),確定完成6個(gè)數(shù)排序需要5趟,得出流程圖2。

      得出流程圖2后,教師讓學(xué)生思考:這種結(jié)構(gòu)實(shí)際上屬于什么結(jié)構(gòu)?(循環(huán)結(jié)構(gòu))引入變量i進(jìn)行計(jì)數(shù),使用循環(huán)結(jié)構(gòu)流程圖進(jìn)行進(jìn)一步細(xì)化,得到流程圖3。后拓展到n個(gè)數(shù)的情況,得到流程圖4。

      這里需要引入一個(gè)j變量來(lái)標(biāo)識(shí)正在參加比較的數(shù)組元素。確定第i趟j的取值范圍為:1到n-i,得到圖6。

      在分析相鄰數(shù)據(jù)比較交換模塊時(shí),可以描述為a(j)與下一個(gè)數(shù)a(j+1)比較大小。如果a(j)>a(j+1)就交換數(shù)據(jù)位置,得到圖7。

      再將“a(j),a(j+1)數(shù)據(jù)交換位置”流程細(xì)化為:t=a(j):a(j)=a(j+1):a(j+1)=t得到圖8。數(shù)據(jù)交換需結(jié)合變量賦值原理進(jìn)行講解:變量名的實(shí)質(zhì)是申明內(nèi)存單元,賦值的過(guò)程是數(shù)據(jù)寫(xiě)入變量名所指內(nèi)存單元的過(guò)程,新數(shù)據(jù)寫(xiě)入會(huì)覆蓋原來(lái)的數(shù)據(jù),造成數(shù)據(jù)丟失。

      至此,所有問(wèn)題、難點(diǎn)自頂向下逐一解決后,用自底部向上的思路形成下面總流程圖,如圖9。

      3 第三層次思維:從算設(shè)計(jì)到代碼實(shí)現(xiàn)

      要讓計(jì)算機(jī)解決問(wèn)題,需要將算法用計(jì)算機(jī)“語(yǔ)言”表示并告知計(jì)算機(jī),這個(gè)過(guò)程稱為“代碼實(shí)現(xiàn)”或“編程”。學(xué)生若缺乏上機(jī)編程,就無(wú)法充分理解變量定義、邏輯運(yùn)算、循環(huán)嵌套、形參實(shí)參等運(yùn)行機(jī)制,無(wú)法深度思考算法及其工作流程。本環(huán)節(jié)通過(guò)關(guān)鍵代碼引導(dǎo)的方式讓學(xué)生動(dòng)手編寫(xiě)程序,旨在讓學(xué)生通過(guò)編寫(xiě)代碼、調(diào)試程序,親歷完整的編程過(guò)程,加深對(duì)算法的理解與應(yīng)用,同時(shí)培養(yǎng)學(xué)生認(rèn)真、嚴(yán)謹(jǐn)、堅(jiān)韌的優(yōu)秀品質(zhì),教學(xué)環(huán)節(jié)如下:

      首先,講解關(guān)鍵程序段實(shí)現(xiàn)方法。

      1) i:控制冒泡排序的趟數(shù),由1到n-1

      for i=1 to n-1

      每趟確定一個(gè)最大數(shù)

      next i

      2) j:控制每一趟的處理過(guò)程,控制數(shù)組下標(biāo),由1變到n-i

      for j=1 to n-i

      a(j)與a(j+1)進(jìn)行比較判斷是否互換

      next j

      3) a(j)與a(j+1)互換

      t=a(j):a(j)=a(j+1):a(j+1)=t

      接著,讓學(xué)生對(duì)照流程圖,自下往上,寫(xiě)出主要參考代碼:

      for i=1 to n-1

      for j=1 to n-i

      if a(j)>a(j+1) then

      t=a(j):a(j)=a(j+1):a(j+1)=t

      end if

      next j

      next i

      在編程實(shí)現(xiàn)環(huán)節(jié),學(xué)生遇到的錯(cuò)誤五花八門(mén),一般我們可以分為三類:編譯錯(cuò)誤;運(yùn)行錯(cuò)誤;邏輯錯(cuò)誤。錯(cuò)誤是課堂的生成性教學(xué)資源,是教師進(jìn)一步展開(kāi)教學(xué)的依據(jù):如運(yùn)行錯(cuò)誤往往與數(shù)據(jù)溢出有關(guān),可以加深學(xué)生對(duì)變量存儲(chǔ)的理解,如邏輯錯(cuò)誤,往往與學(xué)生對(duì)算法理解不到位有關(guān),可以引導(dǎo)學(xué)生正確理解算法。教師要引導(dǎo)學(xué)生用分類的思想判別錯(cuò)誤,用模塊化的思想縮小錯(cuò)誤范圍,用逐步調(diào)試的方法鎖定錯(cuò)誤,最終達(dá)到預(yù)期效果,使學(xué)生分析問(wèn)題,解決問(wèn)題的能力得到提升。

      4 第四層次思維:逐步養(yǎng)成“迭代”的思維

      學(xué)習(xí)的最高層次是應(yīng)用,即解決實(shí)際問(wèn)題。當(dāng)我們面對(duì)實(shí)際問(wèn)題,通常通過(guò)觀察弄清問(wèn)題,抓住問(wèn)題的特征進(jìn)行廣泛的聯(lián)想、檢索和回憶,制定選擇最優(yōu)解決方案。能否找到合適的策略與觀察問(wèn)題的角度及聯(lián)想范圍有關(guān),受學(xué)生已有知識(shí)與經(jīng)驗(yàn)的制約。在學(xué)生思維受阻時(shí),我們應(yīng)引導(dǎo)學(xué)生調(diào)整思維方向,變換角度進(jìn)行分析思考,直到產(chǎn)生新的思路,對(duì)培養(yǎng)學(xué)生解決問(wèn)題的能力與創(chuàng)新能力十分有益。

      在程序與算法模塊的實(shí)際教學(xué)中,可以通過(guò)對(duì)算法變形、優(yōu)化及情境模擬,培養(yǎng)學(xué)生聯(lián)想、檢索、回憶等解決問(wèn)題的能力。教學(xué)環(huán)節(jié)設(shè)計(jì)需要注意以下幾點(diǎn):第一要有目的性,要明確通過(guò)拓展是使學(xué)生掌握算法的哪些外延與內(nèi)涵,還是滲透一些算法思想與方法,第二要有適度性,過(guò)于簡(jiǎn)單易陷入簡(jiǎn)單的重復(fù),無(wú)法提高學(xué)生思維品質(zhì),過(guò)于復(fù)雜會(huì)挫傷學(xué)生學(xué)習(xí)積極性。第三要學(xué)會(huì)放手,靜待花開(kāi)。通過(guò)教師的信任與等待,以及必要時(shí)機(jī)的釋疑,最終厚積薄發(fā),學(xué)生會(huì)成為獨(dú)立自主、敢于質(zhì)疑、有創(chuàng)造力與創(chuàng)新精神的學(xué)習(xí)資者。

      在冒泡排序教學(xué)中,可以安排一系列遞進(jìn)的教學(xué)任務(wù),如同質(zhì)化任務(wù):將“升序冒泡排序程序”改為“降序冒泡排序”,加深了學(xué)生對(duì)相鄰元素比較判斷的理解;優(yōu)化任務(wù):讓學(xué)生討論當(dāng)某趟比較過(guò)程中沒(méi)有數(shù)發(fā)生交換,是否需要在進(jìn)行下一趟比較交換,給學(xué)生灌輸流程優(yōu)化的思想;變形任務(wù):將“從前向后冒泡排序”改為“從后往前冒泡排序”,綜合檢驗(yàn)學(xué)生對(duì)冒泡思想的掌握與編程實(shí)現(xiàn)的能力;應(yīng)用任務(wù):評(píng)委打分,去掉最高分、最低分的實(shí)現(xiàn),提高學(xué)生解決實(shí)際問(wèn)題的能力……

      正式在這種算法不斷優(yōu)化的“迭代”過(guò)程中,學(xué)生的計(jì)算思維才能獲得不斷的提升。

      5 結(jié)束語(yǔ)

      當(dāng)“程序驅(qū)動(dòng)”的數(shù)字化工具滲透到人們生活、學(xué)習(xí)和工作的方方面面,甚至成為人們生活的一部分時(shí),人們不僅需要具

      備操作這些技術(shù)工具的技能,同樣需要深層次理解這些技術(shù)工具,知道它們的工作原理和工程思想,并學(xué)會(huì)運(yùn)用這些思想,優(yōu)化我們的工作與生活,即發(fā)展計(jì)算思維。讓學(xué)生學(xué)習(xí)編程,引導(dǎo)學(xué)生深度思考算法及其工作流程,親歷完整的編程過(guò)程,學(xué)會(huì)像計(jì)算機(jī)科學(xué)家一樣思考,對(duì)于他們的意義可謂一種觀察世界的全新視角。

      參考文獻(xiàn):

      [1] 李鋒,熊璋.面向核心素養(yǎng)的信息技術(shù)課程:數(shù)據(jù)與計(jì)算”模塊[J].中國(guó)電化教育,2017,1(360).

      [2] 邵紅祥.基于計(jì)算思維的高中信息技術(shù)選修課程設(shè)計(jì)與開(kāi)發(fā)[J].中國(guó)信息技術(shù)教育,2016(17).

      [3] 任樟輝.數(shù)學(xué)思維論[M].南寧:廣西教育出版社,1996.

      猜你喜歡
      計(jì)算思維程序算法
      基于MapReduce的改進(jìn)Eclat算法
      Travellng thg World Full—time for Rree
      試論我國(guó)未決羈押程序的立法完善
      進(jìn)位加法的兩種算法
      “程序猿”的生活什么樣
      英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
      程序設(shè)計(jì)課程中計(jì)算思維和應(yīng)用能力培養(yǎng)問(wèn)題研究
      民族高校C語(yǔ)言程序設(shè)計(jì)課程教學(xué)改革的研究
      軟件工程(2016年8期)2016-10-25 16:03:32
      算法的案例教學(xué)探析
      淺談藝術(shù)專業(yè)學(xué)生計(jì)算思維能力的培養(yǎng)
      延长县| 土默特左旗| 麟游县| 尉氏县| 凌云县| 依兰县| 汕头市| 论坛| 乡宁县| 安陆市| 嵩明县| 贵南县| 黔西| 三门峡市| 康定县| 阿克陶县| 繁昌县| 达日县| 万荣县| 克山县| 松溪县| 孟州市| 海阳市| 武隆县| 绥宁县| 池州市| 秭归县| 扶余县| 隆林| 乐亭县| 泸州市| 廊坊市| 那曲县| 长汀县| 和林格尔县| 沿河| 瑞丽市| 扶风县| 大丰市| 巴彦淖尔市| 灵石县|