亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        剝開編程教學(xué)中“知識”的堅硬果殼

        2023-01-30 05:11:56張永順江蘇省清江中學(xué)
        中國信息技術(shù)教育 2023年1期
        關(guān)鍵詞:神燈二進制知識

        張永順 江蘇省清江中學(xué)

        胡連國 山東省利津縣高級中學(xué)

        王愛勝 山東省青州第一中學(xué)

        由于信息科技課程中算法與程序設(shè)計教學(xué)、人工智能等內(nèi)容與傳統(tǒng)文化知識差異很大,所以學(xué)習(xí)起來有一定的難度。因此,教師需要在教學(xué)中盡最大可能去剝開這些“知識”的堅硬果殼,才能讓學(xué)生吃到里面的果肉,吸收其營養(yǎng),增長智慧。

        ● 發(fā)現(xiàn):從Python的“bug”認識數(shù)據(jù)計算精度

        數(shù)據(jù)的計算精度,其背后的原理是二進制。以往,在C、C++、Pascal等語言中是需要進行數(shù)據(jù)類型定義的,而在Python中相對粗獷,這就容易出現(xiàn)誤會??蛇@也為在發(fā)現(xiàn)問題中認識知識提供了機會。

        1.案例:發(fā)現(xiàn)了多余的小數(shù)

        一天,在講授運算符與表達式時,為了讓學(xué)生熟悉運算符、操作數(shù),我給他們布置了一個小練習(xí):利用Python內(nèi)置的idle編輯器嘗試進行一些常見的數(shù)據(jù)運算,如加、減、乘、除,在給定幾個例子之外,我也請同學(xué)們發(fā)揮自己的主觀能動性,多嘗試幾組數(shù)據(jù)。當布置完任務(wù)之后,學(xué)生們都積極地投入到數(shù)據(jù)計算的測試之中。這時,一個平時比較活潑的學(xué)生在測試了幾組數(shù)據(jù)之后,突然舉手,我示意他站起來。他站起之后大聲說:“老師,我發(fā)現(xiàn)了一個Python程序的bug。”此時,班內(nèi)氣氛頓時熱烈起來。

        “哦,是什么bug呢?能不能給我演示一下?”

        “老師,是這樣的,當我使用16.888乘以100時(如圖1),結(jié)果多了一個小尾巴!”

        圖1

        見此情景,我立即表揚了這位學(xué)生的積極探索,并趁熱打鐵給學(xué)生們深入解釋:①在Python中使用兩個浮點型的數(shù)據(jù)進行計算時,會發(fā)現(xiàn)某些時候計算并不準確,如1.1+2.2結(jié)果是3.3000000000000003。這主要是二進制無法精確表達十進制小數(shù)的結(jié)果。例如11.11,整數(shù)部分按權(quán)展開1*2**1+1*2**0=(3)10,小數(shù)部分1*2**-1+1*2**-2=(0.75)10,可見二進制小數(shù)能精確表達十進制小數(shù)。②反過來,如果把十進制中的小數(shù)部分轉(zhuǎn)為二進制,把該小數(shù)不斷乘2、取整,直至沒有小數(shù)為止,發(fā)現(xiàn)有時候并不能乘盡。也就是有的小數(shù)其實并不能精確地轉(zhuǎn)換成二進制的小數(shù),限于數(shù)據(jù)類型的長度,只能近似地表達,如(0.45)10≈(0.0111001……)2無法精確表達。因為在計算十進制小數(shù)時要先轉(zhuǎn)化成二進制再進行計算,又因為二進制小數(shù)無法精確表達某些十進制小數(shù),此時Python只能盡量保證精度。如果要求特別精確,在Python語言中需要用到decimal,這是Python內(nèi)置標準庫,用它可以進行精確浮點數(shù)運算。

        總之,這位細心的學(xué)生確實發(fā)現(xiàn)了Python運算的“bug”,通過分析探索,學(xué)生更深刻地了解了計算機進行計算的本質(zhì),即數(shù)據(jù)類型、數(shù)據(jù)計算、二進制等知識。

        2.案例反思

        學(xué)生在遇見問題時有好奇心,能夠去思考與探索,這些發(fā)現(xiàn)不論大小都能夠增長學(xué)生的智慧,意義重大。在數(shù)據(jù)計算精度問題的研究中,還可以鼓勵學(xué)生搜索計算機語言在相關(guān)數(shù)據(jù)類型方面的規(guī)范,甚至嘗試其他計算機語言的簡單計算,構(gòu)建更豐富的認知空間。

        ● 質(zhì)疑:有沒有可以改變的步長

        敢于對現(xiàn)象提出問題,正是思考的表現(xiàn);敢于對知識提出質(zhì)疑,正是主動認知的過程。例如,在循環(huán)中較少學(xué)生能夠提出range()的意義,大都局限在對其初值、終值、步長的思考。當有部分學(xué)生提出計數(shù)循環(huán)的步長是否可以更改時,教師可以鼓勵學(xué)生探索,使其在探索中深化對列表函數(shù)特點的認知。

        1.案例:range()中的步長在循環(huán)中可變嗎?

        “老師,range()是什么?”一個學(xué)生曾這樣問我。我解釋它就是一個列表函數(shù)。他又問怎么列表?我說:“在循環(huán)里不是講了嗎?”他說:“可老師講的是循環(huán)范圍,我不理解這是什么函數(shù),為什么還自己產(chǎn)生這么多數(shù)呢?什么從初值開始,又到不了終值,步長還默認是1,好繞!”我鼓勵道:“你試著改改各個參數(shù),觀察運行結(jié)果,在循環(huán)程序里體會!”過了一會兒,他又問道:“我試了試,步長可以是變量嗎?可是放在里面不變能呢?”(他給我看的程序如圖2所示)

        圖2

        我問道:“這說明什么?range()有什么特點?”他說:“步長不受后面變化的值影響?”我說:“總結(jié)一下就是range()一次性先完成了。”(學(xué)生讓我給再講講,我沒有細講,而是給了他如圖3所示的幾個程序,讓他試驗,并要求他試完之后總結(jié):①list是做什么的?②m的測試跟循環(huán)有什么不同?③range()、list(range())的數(shù)據(jù)類型分別是什么?)

        圖3

        后來,他又問道:“range(1,30,0.5)能否構(gòu)成小數(shù)列表?”我解釋道:“調(diào)試與試驗是個法寶,以后學(xué)了while循環(huán)可以考慮用追加方法構(gòu)造一個小數(shù)列表,到時也可以做自己的自由變化的步長了?!?/p>

        2.案例反思

        學(xué)生對函數(shù)的理解多數(shù)是單一的映射數(shù)值,并沒有多數(shù)據(jù)列表的認知,因此也可適當從集合角度去理解。range()值的特點、數(shù)據(jù)產(chǎn)生時間、整數(shù)特征等都可以在試驗中體會,可舉例證明。問題探究可以延伸出程序功能的升級實現(xiàn),即學(xué)習(xí)while循環(huán)提高自由設(shè)計的思想。

        ● 類比:從書卡理解列表的應(yīng)用

        列表是Python的重要知識,大量的程序設(shè)計基于列表進行。但學(xué)生還沒有學(xué)習(xí)數(shù)學(xué)的“數(shù)列”,因此也無法建立數(shù)據(jù)集合的概念,所以,使用實際生活中的事物類比是破解難題的重要方法之一。

        1.案例:書卡抽屜與列表的類比

        有一天,一位學(xué)生歡喜地進門就喊道:“老師,我太想你了!我做夢都在編程序?!蔽屹澋溃骸斑@說明你快成明白人了,就像學(xué)車做夢就快出手了?!睂W(xué)生說道:“可是夢里我什么都不會,夢見一抽屜的卡片上都是你演示的一段段的程序代碼,可就是看不清楚,都急死了!”我笑了,我是提過老圖書館抽屜里的卡片,但是我說的是貼個變量X、Y的標簽而已,哪有一大段代碼。正好當天的課上我要讓學(xué)生練列表,因此給學(xué)生提出了分步探索的要求:①根據(jù)代碼樣式,補充真實內(nèi)容完成自己的程序。②每個環(huán)節(jié)的程序單獨從云課堂提交作業(yè)。

        引導(dǎo)類比方式的探索如下:

        (1)一抽屜的書卡是什么?(列表賦值)有多少張?(列表長度)哪張是第一張?(列表位置)程序如圖4所示。

        圖4

        (2)隨意抽出一張書卡是哪本書?(直接訪問列表數(shù)據(jù))(刪除列表數(shù)據(jù))程序如下頁圖5所示。

        圖5

        (3)怎樣全部查看書卡?(順序訪問列表數(shù)據(jù)、判斷數(shù)據(jù))程序如圖6所示。

        圖6

        (4)有快速查找一本書的“方法”嗎?(列表索引位置的‘方法’)程序如圖7所示。

        圖7

        (5)拿出一摞卡片(列表切片),列表有很多用途,相應(yīng)地有很多操作方式,還有列表排序list.sort()、列表切片list[x:y]等,學(xué)以致用是最好的學(xué)習(xí)。程序如圖8所示。

        圖8

        2.反思與總結(jié)

        概念厘清,即一個概念及應(yīng)用要列出1、2、3,搞清晰、有體驗,就算再做夢也不容易迷糊。操作都與需求相聯(lián)系。沒需求就不用發(fā)明這個操作了,所以編程也好、軟件也好,一個操作方法必然是對應(yīng)著應(yīng)用的,有什么用要對上號,自然就容易掌握。別強記規(guī)則,而是理解應(yīng)用為宜。

        ● 比喻:彰顯自定義函數(shù)的神奇

        比喻是最易理解的知識描述方式,因為它會更形象、生動、有趣,如把自定義函數(shù)比喻成自我DIY一個阿拉丁神燈,體現(xiàn)出可以“復(fù)用的代碼”的形象來。

        1.案例:DIY一個阿拉丁神燈

        每到“可以復(fù)用的代碼——自定義函數(shù)”這部分內(nèi)容,我心里總是有個掙扎的聲音:內(nèi)容太抽象了,學(xué)生理解起來太困難了,不上好像也不影響學(xué)業(yè)水平測試的結(jié)果,直接跳過吧!研讀課標與教材,發(fā)現(xiàn)程序中的自定義函數(shù)就是要讓學(xué)生理解:①為什么需要自定義函數(shù)?②自定義函數(shù)怎么寫?③自定義函數(shù)如何使用?我突發(fā)奇想,要不通過“DIY阿拉丁神燈”來講解這個自定義函數(shù)?

        (1)視頻導(dǎo)入。播放“阿拉丁神燈”實現(xiàn)愿望的視頻片段,學(xué)生需要關(guān)注那盞“燈”的作用是什么?“燈神”住在哪兒?有什么作用?“燈神”是如何被喚醒的?

        (2)程序觀察。向?qū)W生展示一段程序,提出問題:該程序?qū)崿F(xiàn)什么功能?連續(xù)執(zhí)行三次make_juice()能實現(xiàn)什么功能呢(如圖9)?

        圖9

        學(xué)生通過閱讀程序回答“make_juice( )是制作蘋果汁的流程,連續(xù)執(zhí)行三次make_juice( )可實現(xiàn)制作三杯蘋果汁”等。學(xué)生通過代碼閱讀學(xué)會了自定義函數(shù)的定義和調(diào)用方法;通過觀察輸出的結(jié)果,明白了調(diào)用的作用是什么。繼續(xù)提出思考問題:這個程序能夠?qū)崿F(xiàn)制作蘋果汁、香蕉汁、獼猴桃果汁各一杯嗎?

        (3)模仿修改。模仿:在課堂教學(xué)中,學(xué)生通過復(fù)制制作蘋果汁函數(shù),并將蘋果修改為香蕉和獼猴桃,調(diào)試運行,發(fā)現(xiàn)結(jié)果都是獼猴桃。在學(xué)生發(fā)現(xiàn)此路不通后,我適時提出了問題:make_juice( )函數(shù)被調(diào)用的時候,知道自己是做什么的嗎?如果不知道,該如何告知呢?

        (4)增加參數(shù)。通過make_juice(‘蘋果’)語句告知我們要制作的是蘋果汁,這是在“召喚燈神”。①“神燈”設(shè)計。函數(shù)make_juice( )該如何接收“蘋果”這個值呢?通過增加參數(shù),即用make_juice(fruit)形式,參數(shù)“fruit”用來接收水果名稱。②“神燈”使用。“燈”在接收到fruit參數(shù)后,在函數(shù)內(nèi)部該如何來使用呢?以“將蘋果去皮”為例,通過將具體的水果名稱替換為變量“fruit”,將其修改為“將”+fruit+“去皮”,即可實現(xiàn)內(nèi)部的名稱自適應(yīng)功能。由此,make_juice(fruit)函數(shù)可以實現(xiàn)多種果汁制作了,這是“燈神”可以滿足不同要求的要訣。具體程序如圖10所示。

        圖10

        2.案例反思

        通過“神燈”設(shè)計,修改自定義函數(shù)的參數(shù)是一種良好的“適用不同對象”的“召喚燈神燈”的代碼復(fù)用。還可以繼續(xù)探討使用“循環(huán)結(jié)構(gòu)”對實現(xiàn)某個功能的基本語句的重復(fù)式復(fù)用。自定義函數(shù)能夠把多次重復(fù)的功能抽象成固定符號表達,也屬于結(jié)構(gòu)化程序模塊設(shè)計,在程序中通過調(diào)用函數(shù)名稱和傳遞參數(shù)達到簡潔、靈活的功能現(xiàn)實。

        猜你喜歡
        神燈二進制知識
        天上掉下盞阿拉丁神燈
        小主人報(2022年7期)2022-08-16 06:59:36
        用二進制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
        有趣的進度
        二進制在競賽題中的應(yīng)用
        習(xí)題變一變 思維現(xiàn)一現(xiàn)
        是“知識”,還是“知識權(quán)力”追求?
        考試周刊(2016年84期)2016-11-11 00:16:57
        試論新時期合格政工師應(yīng)具備的素質(zhì)
        愛與知識的力量
        旅人與神燈
        一個生成組合的新算法
        国产亚洲精品看片在线观看| 放荡的美妇在线播放| 丰满少妇呻吟高潮经历| 天天躁人人躁人人躁狂躁| 亚洲国产成人无码电影| 隔壁的日本人妻bd高清中字| 豆国产96在线 | 亚洲| 成年无码av片完整版| 成人午夜视频一区二区无码| 国产精品日本一区二区三区在线| 国产av无码专区亚洲av果冻传媒| 最近最新中文字幕| ZZIJZZIJ亚洲日本少妇| 成人性生交大片免费看激情玛丽莎 | 亚洲人成影院在线无码观看| 久久精品国产亚洲av桥本有菜| 国产国语按摩对白av在线观看 | 午夜精品久久久久久毛片| 伊人影院综合在线| 国产成人夜色在线视频观看 | 色爱av综合网站| 日本大片免费观看完整视频| 日本一区二区三区在线| 亚洲精品有码日本久久久| 国产亚洲日韩在线一区二区三区 | 国产高清吃奶成免费视频网站| 美腿丝袜网址亚洲av| 免费a级毛片高清在钱| 日韩亚洲av无码一区二区不卡| 国产av一区二区三区丝袜| 一区二区三区观看视频在线| 18禁黄污吃奶免费看网站| 亚洲av无码国产精品麻豆天美 | 综合偷自拍亚洲乱中文字幕| 无码国产午夜福利片在线观看| 国产精品色内内在线播放| 国产精品国产三级国产剧情| 免费视频爱爱太爽了| 亚洲天堂免费视频| 一区二区三区精品亚洲视频| 亚洲a∨无码精品色午夜|