資源簡介 教育科學出版社 高中信息技術 必修1 數據與計算《3.2 數據與結構(第一課時)》教學設計【教學目標】知識與技能(1)認識不同的數據類型,以及它們的特點。(2)熟悉隊列結構的概念和特點。過程與方法(1)能夠使用python語言對隊列進行操作。(2)能夠比較不同數據結構的特點,并會選用合適的數據結構組織數據來解決簡單問題。情感態度價值觀(1)增強對信息技術的求知欲,養成積極地學習和使用信息、參與信息的態度。(2)通過完成活動,學生理解并掌握計算機語言處理問題的思維方式,感受編程的價值從而運用到實際生活中。【教學重難點】教學重點:理解線性數據結構的數據間關系。教學難點:理解復合數據類型;學會根據問題的需要選擇合適的數據結構對問題抽象組織,進而解決問題。【教學方法】情景導入法、項目教學法、微課教學法、實踐體驗法、自主探究法。【授課時間】1課時【教學過程】導入新課通過觀看視頻來了解“約瑟夫問題”,提出問題:1.為什么約瑟夫和他的朋友,最后能活下來呢 2.約瑟夫和他的朋友,一開始要站在什么位置才能逃避死亡 學習目標【項目主題】網絡購物【項目目標】通過項目活動,認識相關數據的組織方法,了解數據之間的關系,理解幾種典型的數據結構,為利用數據、實現數據的價值做準備。隊列:熟悉隊列的概念和特點,能夠使用Python語言對隊列進行操作。【項目任務】探究網購訂單處理活動1 了解訂單數據在當今信息時代,網上購物已成為人們的一種非常重要的購物方式。在網上購物時,在我們提交訂單后,網頁上就會顯示訂單數據,請你參照圖所示的訂單數據填寫如下表內容。訂單數據商品名稱商品數量商品總價Python對應數據類型【數據類型】(一)簡單數據類型1整數(int):包括正整數、負整數和0。2.浮點數(float):浮點數由整數與小數部分組成。3.字符串(str):(1)字符串就是文本,可以是字母、數字或符號。(2)字符串兩端需加引號('或”)。(3)輸出時原樣顯示引號中的內容。4.布爾型(bool):當關系表達式成立時值為True(真),不成立時值為False(假)。復合數據類型:列表、字典、元組、集合列表:StuList=[ 10, 'file', 2.0 ],混合數據類型。字典:dictionary={ 'a':1, 'b':2, 'c':3 },“鍵:值”對。元組:StuInfo=( 3.6 , '一班' , 16 ),不能修改。集合:StuInfo={ '張三' , True ,10 },無序不重復。數據類型小練習1.以下不是簡單數據類型的是( )浮點數 B.字符串 C.布爾 D.字典2.以下是簡單數據類型的是( )A.元組 B.集合 C.整數 D.列表3.以下語句是定義空列表的是( )A.bookset=set() B.q=[ ] C.num=( ) D.dictionary={ }四、活動2 編制訂單數據處理程序1.問題:商家如何安排發貨?發貨原則:先下單,先發貨2.問題:商家對訂單進行了哪些操作?(1)添加訂單(顧客下單)(2)發貨(3)查看未發貨訂單(4)退出3.用列表模擬訂單的操作q=[] #空訂單_________ #001編號下單_________ #安排001編號訂單發貨_________ #查看未發貨訂單_________ #返回訂單長度4.嘗試補全代碼實踐練習練習1:列表的基本操作。練習2:將“訂單數據處理程序”補全代碼并運行、測試功能。【數據結構、線性結構、隊列】動畫演示添加訂單與商家發貨的過程,理解訂單數據間的關系,引出以下數據結構的知識:1.數據結構是存在特定關系的數據元素的集合。主要有集合結構、線性結構、樹結構和圖結構四種類型。線性結構如下圖2.線性數據結構特點:(1)首元素無前趨元素、尾元素無后繼元素;(2)中間元素既有前趨元素,又有后繼元素;(3)數據元素之間是一對一的關系。特殊線性結構—隊列:動畫演示入隊出隊過程,特點:先進先出。在Python中,隊列一般用列表(list)實現。列表的使用者只需要知道列表上有哪些可用的操作,而不需要知道這些操作是如何進行的。q=[ ] #定義空列表qq.append(x) #元素x入隊q.pop(0) #返回隊首元素,隊首元素出隊(刪除)len(q) #返回隊列q的長度(元素個數)q[i] #返回列表q中索引(index)為i的元素。正編號(從左到右編號依次為0,1,2,…)負編號(從右到左編號依次為-1,-2,-3,…)五、約瑟夫問題1.過程模擬 學以致用請五位同學到臺上站成一個隊列,教師充當計算機角色發號施令。2.問題解決:請同學們根據約瑟夫問題的解題過程,將程序的空白處填寫完整,求得最后結果。解題過程詳細描述 轉化成代碼1.所有人,即41人全部進入隊列。 2.第一個人出隊,然后入隊。 3.第二個人出隊,然后入隊。 4.第三個人出隊,不再入隊。 重復2--4步,直到隊列中只剩下兩個人為止。 ls=[ ] #建立一個空列表用于模擬隊列 for i in range(1,42): #使用循環將1-41加入隊列 ls.append(i) while len(ls)>2: #只要隊列長度大于2,就不停重復。 for i in range(2): #循環兩次模擬前兩個人的出隊、入隊。 c=___________ #彈出隊首元素,并賦值給c進行記錄。 _____________ #把c添加回隊尾 t=ls.pop(0) #第三個人只出隊,不再入隊。 print( t ,“很遺憾,您被淘汰了!”) print(ls,“恭喜你們,成為為幸運兒!”) #將隊列打印出來,查看剩下的兩個元素。3.實踐練習將“約瑟夫問題”程序補全代碼并運行。課堂練習1.請找出下列關于列表的描述正確的是( )A. 列表中的元素是無序的B. 列表元素從1開始建立索引C. append( )會在列表尾部添加新元素D. 使用pop(0)刪除0號元素后,列表不再有索引號為0的元素2.以下現實生活中哪些問題可以利用隊列來解決( )A. 解決地圖最短線路選擇問題 B. Windows操作系統的文件系統結構C. 打印機打印任務流程問題 D. 實現瀏覽器后退、前進按鈕的功能注:學生在問卷星網頁上答題,并以簡答題的形式進行總結收獲。課堂小結知識梳理(1)數據類型(2)列表的基本操作(3)線性數據結構(4)什么是隊列(5)隊列的應用2.收獲提升零散孤立的數據是很難被有效利用的!根據所要解決的問題的不同,依據數據關系建立合適的結構。采用這些結構將數據組織起來,才能有利于操作和管理,進而更高校地解決實際問題。學會在生活中根據實際問題,建立合適的數據結構,進而運用所學的知識解決問題。八、課后作業1. 改進訂單數據處理程序,實現當用戶輸入“2”表示“發貨”時,還要輸出發貨的單號,以便工作人員及時處理。2. 對比以下“訂單數據處理程序”的兩種不同運行界面,感受圖形用戶界面美觀友好、操作方便靈活,從而激發興趣,預習《3.3 數據與系統》。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫