999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

人人都能學會編程

2018-04-18 10:40:26伍先軍
中國信息技術教育 2018年6期
關鍵詞:語言教學學生

伍先軍

2017年7月,國務院印發了《新一代人工智能發展規劃》,明確要求“實施全民智能教育項目,在中小學階段設置人工智能相關課程,逐步推廣編程教育,鼓勵社會力量參與寓教于樂的編程教學軟件、游戲的開發和推廣”,使中小學普及編程教育上升為國家戰略。對人工智能和編程的理解,許多人認為人工智能屬于更高級的范疇,編程只是其中的一部分,其核心在于算法,所以在中小學編程教學過程中應更注重算法教育,這樣才能更好地過渡到人工智能的學習。

傳統編程教學的困境

傳統的編程教學是在上世紀70年代末80年代初起步,到本世紀初,教材基本就是某種計算機高級語言的操作說明書,教師和學生都以軟件操作為核心,課堂幾乎成為公司軟件培訓部,這種教學模式可稱為“程序教學1.0”。這種以程序設計語言語法為中心、按成人短訓班模式組織教學的做法,可能適合有大塊自由時間消化、肯主動鉆研的大學生,但不適合課時極少、幾乎無自由時間可支配、自我約束能力較弱的中小學生。

2003年啟動的信息技術課程改革,在“程序設計”前面增加了“算法”,教學以“解決問題”為目的。但在教學實踐中暴露出諸多問題:一是“算法”與“程序設計”常常脫節——先講算法,容易紙上談兵,空洞說教,或者講清楚了算法,卻沒時間編程實現;先講程序設計,算法就顯得多余甚至是累贅。二是“程序設計”本來概念就多而且難懂,如常量、變量(數組)、數據類型、運算符、表達式(算術表達式、關系表達式、邏輯表達式、字符串表達式等)、函數(內置函數、自定義函數)、過程,還有各種語句(如輸入、輸出、賦值、條件、循環語句)的語法。若采用面向對象的程序設計,還有各種控件(類)、對象、屬性、方法、事件等高難度概念?,F在引入“算法”后,又新增了許多內容,以及一些常見算法,如解析法、迭代法、窮舉法、二分查找、排序算法、遞歸算法等。三是由于課時少,上機時間不足,學生編寫代碼、調試程序經常出錯,往往無法得到及時解決,難以形成知識積累和意義建構,致使每節課幾乎都是零起點,久而久之,學生對程序設計容易產生恐懼甚至厭惡心理。這種教學模式,可稱為“程序教學2.0”,雖然引入了“算法”,但沒有厘清“算法”與“程序設計”的關系、面向過程程序設計與面向對象程序設計的關系,導致“頭發胡子一把抓”,不但原來“程序設計”的問題沒有解決,還增加了新的矛盾。

這一輪課改也在高中數學中引入了“算法”,出現在必修3第一章“算法初步”中。然而,放眼高中數學算法教學課堂,我們會發現“紙上談兵”幾乎是普遍現象。一是許多數學教師的算法水平和實現能力偏低,只會“紙上談兵”。算法是高中數學新課程新增內容,許多一線高中數學教師,尤其是年齡較大的教師,求學期間沒有系統地學習過算法,在職業培訓時也沒有及時有效地跟進,他們缺乏在計算機上驗證程序的意識和能力,一般只會“紙上談兵”式地模擬計算機執行流程圖,幾乎不安排學生集體上機實踐,從而將本來實踐性強、生動有趣的內容變成了機械呆板、枯燥乏味的說教。二是“固化”“機械”的高考題型助長了教師的“紙上談兵”。由于多數高考題似乎就只考“根據流程圖寫出程序運行結果”這種題型,而且往往只需照著框圖模擬運行幾趟(一般是3~6趟)就能直接得到結果,這種極端機械的題型,使得大部分一線數學教師和學生堅信只需“紙上談兵”即可,從而大大削弱了算法教學。三是算法教學存在兩大“結構性”障礙,讓師生止步于“紙上談兵”:①分析問題時,在得出了用自然語言表示的解題步驟之后,怎么把它轉化為流程圖呢?無論是在紙上還是在黑板或電子白板上畫,無論用紙筆還是用Word、Visio等軟件畫流程圖,都費時費力。②好不容易畫出流程圖后,再怎么轉化為程序?這個框圖是給人看的,是人與人之間交流算法思想時用的,往往只能用于手工模擬。由于先學流程圖,學生還不會寫代碼,因此無法寫出代碼驗證算法。如果先學算法語句,學會編寫程序代碼,則又淡化了算法思想的主導作用,違背了高中數學算法教學的初衷:重在理解算法思想,不要上成程序設計課。這就是算法思想與程序實現之間的結構性矛盾:從邏輯上講,先有算法思想,再編程實現;但從技術上講,先要編寫程序,才能承載算法。這樣就陷入了類似于先有“雞”還是先有“蛋”的“怪圈”。

綜合上述情況,算法教學在高中是很難有效開展的。那么,算法教學的出路何在?

畫程軟件破解編程教學難點

算法思維的本質是抽象和自動化。算法中的抽象屬于人的思維范疇,可使用圖符系統(如流程圖)或形式化語言(如偽代碼)來表達,當然,也可以直接用自然語言表達,但最終要落實在能夠由機器自動化執行上。算法思維連接“人”和“機器”,為確保機器的自動化,必須在抽象過程中進行精確無歧義、人易懂易操作、機器也能執行的符號標記。此時此刻,我們渴望有一種“翻譯工具”,能把這種抽象的符號系統,直接“翻譯”為計算機能執行的軟件,實現從“抽象”到“自動化”的軟著陸。

自然語言是人的語言,但機器不懂(隨著人工智能的發展,將會有改善);偽代碼是意在跨越各種計算機語言而提出的一種通用的、簡明的文字符號系統,書寫偽代碼,實際上需要有程序思維和代碼基礎,所以不太適合初學者,而且偽代碼并不能被計算機執行;計算機程序設計語言,是機器能懂的語言,雖然經過多輪迭代進化,計算機語言已經離人類語言越來越近了,但對初學者而言,中間仍有巨大的鴻溝。怎么順利跨越這道鴻溝呢?

探究算法教學,其實也就是三個基本步驟:第一步,從分析問題得到用紙和筆分步驟可實現的通用算法,可稱為紙筆算法;第二步,把用自然語言描述的紙筆算法轉為用流程圖表達;第三步,把流程圖翻譯為程序代碼實現算法。高中數學“算法初步”教學,往往實現了前兩步,無力實現第三步,倒在了算法被實證檢驗的最后一公里,使教學最終淪為令學生厭煩的“紙上談兵”。高中信息技術課程中的“算法與程序設計”教學,則往往走向另一個極端:為了“解決問題”,常常舍棄算法構思與流程圖,即拋棄了前兩步,直接編寫代碼,至于為什么要這么寫代碼,常常無法向學生講清楚,而且若代碼較長,學生更接受不了,編程成為無源之水、無本之木。

綜合兩者,理想的算法教學是,第一步是根基,不可偏廢,只能通過啟迪學生數學分析能力、抽象邏輯思維能力、建立數學模型等來達成;第二步要易于用計算機軟件實現;第三步則要由計算機軟件自動實現。如果學生能用拖拽圖標的方式輕松地繪制流程圖,系統能夠根據流程圖和學生鍵入的信息自動生成程序代碼,那么在研究、設計算法時,就能暫時不理會程序語言代碼和實現的細節,只需專注于算法思想,這樣就大大降低了算法入門的門檻。顯然,教師需要一個算法教學的工具平臺,來輔助解決兩個問題:一是快捷方便地繪制、修改流程圖,二是自動編程實現算法、驗證算法。

“畫程軟件”應運而生?!爱嫵獭?,寓意“用畫圖(流程圖)的方式畫出程序來”。畫程軟件能把流程圖自動翻譯為程序代碼(支持Python,Java,C,C++,VB,QB等六種計算機高級語言),能編譯(或解釋)運行實現算法,這樣就使原來的算法教學的三步變成了兩步:第一步,設計算法(用自然語言表示);第二步,用畫程軟件畫出流程圖,而這個流程圖是可以執行的。畫程軟件避免了一些教師上機操作底氣不足的尷尬,解放了教師;降低了算法入門門檻,適合初學者,釋放了學生;可輕而易舉地改變算法,是學生自主研習算法的好工具,激活了課堂。該軟件對電腦設備要求低,操作簡單。因此,畫程軟件成為中小學普及編程教學的極好平臺,使人人都能學會編程成為可能。

程序教學1.0和2.0,都是以“電腦”和“知識”為中心,學生要花大量精力學習它們的各種規則,才能小心謹慎地駕馭它們。令人“憤怒”的是,不同的計算機語言即使實現同樣的功能,它們似乎也要故意使用不同的關鍵詞和語法規則(如下表),使得人們總是為應該學習什么語言而糾結。

例如,要輸入一個變量,就要根據不同的語言選擇不同的“關鍵詞”,是input,還是read,是scanf還是cin,抑或next(),還要嚴格遵守其語法規則,否則機器就罷工。

引入畫程軟件后,程序教學升級為3.0,教學以“學生”和“思維”為中心,學生只要會用紙和筆解決問題,寫成步驟,就可以輕而易舉地畫出流程圖,讓計算機去編寫代碼并運行解決問題。如輸入變量a,只需在“輸入圖標”中鍵入變量a就行了,至于怎么寫出合法的輸入語句,那是畫程軟件的事、機器的事。

畫程軟件實際應用案例

下面筆者以“有限驗證考拉茲猜想”為例,說明畫程軟件的用法。

1.問題描述與算法設計

德國數學家考拉茲(Lothar Collatz)于1930年提出考拉茲猜想,又名3n+1猜想或冰雹猜想,是指對于每一個正整數(用變量n表示),如果它是偶數,則對它除以2,如果它是奇數,則對它乘3再加1,如此循環,最終都能得到1。

設計算法驗證考拉茲猜想(當然只能是在有限的數據范圍內驗證),可用自然語言來描述算法:

第一步,輸入n(正整數);

第二步,若n為偶數,則將其除以2,否則(n為奇數),將其乘以3后加上1,結果仍用n表示;

第三步,如果n等于1,退出到第4步,否則轉回到第2步;

第四步,輸出“考拉茲猜想成立!”。

2.用“畫程”軟件繪制流程圖

畫程初始化時,就自動產生了一個只有“開始”圖標和“結束”圖標的(空的)流程圖,它們之間有一根流程線相連。“開始”圖標上有一個小紅旗,表示當前主流程圖(畫程允許在一個流程圖文件中有多個主流程圖共存,以便于比較不同的算法,當然只能有一個為當前主流程圖,如下頁圖1),擁有當前執行權。

第一步,拖入一個“輸入”圖標,在其內鍵入n。在畫程中,輸入變量的默認數據類型為浮點實型(float),本例此處應改為整型(int):在剛才的“輸入”圖標的“輸入”兩字上點鼠標右鍵,在彈出的快捷菜單中單擊“輸入變量定為整數類型(int)”。

第二步,拖入一個“判斷-分支”圖標,內置條件怎么寫?“n為偶數”如何用計算機的語言表達呢?顯然,在畫程支持的6種計算機語言里,取模運算的寫法并不一致,為此,畫程引入了一些“漢字關鍵字”,可以跨語言直接使用,如“取模”“整除”“π”“且”“或”“等于”“平方根()”“絕對值()”“隨機整數()”“返回”“為偶數”等,這樣就能盡量實現“一次性畫圖,多語言通用”。直接鍵入條件n為偶數,在“是分支”里拖入一個“處理”圖標,在“處理”圖標里鍵入賦值語句n=n整除2。在“否分支”里拖入一個“處理”圖標,鍵入賦值語句n=3*n+1。

第三步,這里有一個詞非常關鍵——“轉回”,也就是說,流程線要回到上面來,必須使用“判斷-循環”圖標,拖入一個“判斷-循環”圖標,條件怎么寫呢?鍵入n等于1,“如果n等于1則退出”,所以這個“否”與“是”要交換,只要雙擊“是”或“否”就改變了。“否則,轉回第2步”,要轉到上面來,怎么操作呢?流程線不能拖動,可以把上面的分支(條件)結構拖拽到循環體內來(放在“判斷-循環”圖標“n等于1”的上面),這樣就實現了“轉回第2步”。

第四步,拖入一個“輸出”圖標,鍵入“考拉茲猜想成立!”。

第五步,運行程序,檢驗算法是否正確。

單擊“保存流程圖”工具,保存畫好的流程圖文件。單擊“編譯工具”,編譯程序,成功之后,(以Python語言為例)彈出窗口(如圖2)。

此時輸入一個整數,如100,按回車(如圖3)。

這個例子集聚了輸入、輸出、處理、判斷-分支、判斷-循環等五種基本圖標,讓學生重點體會“分支”與“循環”的異同。

畫程軟件還有其他功能,大家可以去做更多的探索。

猜你喜歡
語言教學學生
微課讓高中數學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
趕不走的學生
讓語言描寫搖曳多姿
“自我診斷表”在高中數學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
學生寫話
累積動態分析下的同聲傳譯語言壓縮
學生寫的話
我有我語言
主站蜘蛛池模板: 亚洲综合极品香蕉久久网| 97久久超碰极品视觉盛宴| 国产在线观看一区精品| 九色国产在线| 综合人妻久久一区二区精品 | 中文字幕调教一区二区视频| 亚洲av综合网| 国产剧情伊人| 久久99精品久久久大学生| 喷潮白浆直流在线播放| 色屁屁一区二区三区视频国产| 午夜激情福利视频| 欧美日韩第三页| 国产精品久久久久久影院| 免费a级毛片18以上观看精品| www.youjizz.com久久| 久久综合久久鬼| 91最新精品视频发布页| 国国产a国产片免费麻豆| 国产成人1024精品| 中文天堂在线视频| 国产日本欧美亚洲精品视| 伊人大杳蕉中文无码| 日本久久久久久免费网络| 国产成人精品18| 亚洲色图综合在线| 国产精品任我爽爆在线播放6080 | 久久91精品牛牛| 国产三级a| 国产精品一区二区不卡的视频| 综合人妻久久一区二区精品| 国产亚洲成AⅤ人片在线观看| 国产精品福利导航| 久热中文字幕在线| 国产一区在线观看无码| 亚洲成人网在线观看| 色偷偷综合网| 精品日韩亚洲欧美高清a| 91精品视频在线播放| 一区二区理伦视频| 国产欧美日韩精品第二区| 一本久道久综合久久鬼色| 国产福利观看| 99久久国产自偷自偷免费一区| 丰满少妇αⅴ无码区| 国产日韩精品欧美一区喷| 久久香蕉国产线看观看精品蕉| 欧美a在线| 国产亚洲欧美日本一二三本道| jizz国产视频| 久久无码高潮喷水| 国产精品太粉嫩高中在线观看| 国产一区二区三区夜色| 最新精品久久精品| 天堂成人在线| 国产视频资源在线观看| 久久无码av三级| 97国产精品视频自在拍| 国产在线小视频| 日本欧美精品| 香蕉国产精品视频| 国产成人久视频免费| 国产免费好大好硬视频| 国产精品永久久久久| 97国产在线视频| 色妺妺在线视频喷水| 精品国产自在在线在线观看| 国产91视频免费观看| 亚洲精品自拍区在线观看| 一级毛片基地| 免费福利视频网站| 有专无码视频| 一级成人a做片免费| 直接黄91麻豆网站| 国产一区成人| 97av视频在线观看| 国产精品第| 欧美午夜视频| 精品亚洲欧美中文字幕在线看| 这里只有精品免费视频| 亚洲av日韩综合一区尤物| 久久久噜噜噜久久中文字幕色伊伊|