張偉偉 陳彥磊
“數(shù)據(jù)與數(shù)據(jù)結構”是選擇性必修課程的第一個模塊,該模塊包含“數(shù)據(jù)及其價值”“數(shù)據(jù)結構”“數(shù)據(jù)結構應用”三部分內容。數(shù)據(jù)結構應用屬于選擇性必修1的第三部分,該部分要求學生掌握前兩部分內容后,能綜合運用數(shù)據(jù)結構知識解決實際問題,體現(xiàn)數(shù)據(jù)蘊含價值,結構提升效率是整個選擇性必修1模塊的難點和重點?!镀胀ǜ咧行畔⒓夹g課程標準(2017年版)》(以下簡稱《標準》)對該部分的學業(yè)要求為:能針對限定條件的實際問題進行數(shù)據(jù)抽象,運用數(shù)據(jù)結構合理組織、存儲數(shù)據(jù),選擇合適的算法(如排序、查找、迭代、遞歸等)編程實現(xiàn)、解決問題。本部分內容的學習,對于培養(yǎng)學生的信息意識和計算思維,將知識應用于解決現(xiàn)實問題,深入理解信息技術學科的核心素養(yǎng),具有十分重要的作用。
● 課程內容分析
本部分內容涉及的學科概念主要是數(shù)據(jù)結構和算法,數(shù)據(jù)結構在現(xiàn)實問題中的應用需要選擇合適的數(shù)據(jù)類型和恰當?shù)乃惴?,通過編程來解決問題。教科版教材中數(shù)據(jù)結構類型分別介紹了線性表、隊列、棧、二叉樹,算法引入了迭代和遞歸,涉及解決實質性問題的有排序和查找。
教材在第一章中提出了數(shù)據(jù)及其結構,引入了數(shù)據(jù)結構對提升數(shù)據(jù)價值、提高數(shù)據(jù)利用效率的重要性,其后的章節(jié)中分別介紹了線性表、隊列、棧和二叉樹,對每種數(shù)據(jù)結構的應用也貫穿在其中。數(shù)據(jù)結構應用的內容與新課標的內容要求對應如下表所示。
本部分通過對典型實例進行分析與體驗,引導學生認識數(shù)據(jù)結構的類型、特征,迭代、遞歸算法。根據(jù)本單元教材內容及教學目標,結合新課標的教學理念,建議以項目學習的方式進行組織,通過項目的實施,引導學生學會運用相應數(shù)據(jù)結構解決問題的一般方法和過程,其知識結構與項目任務對應的思維導圖如圖1所示。
● 教學實施策略
依據(jù)《標準》對該部分的學業(yè)要求和素養(yǎng)要求,建議在本部分教學實施時采用基于真實情境的項目教學法。在學習過程中,教師采用多維度評測方式,對學生的項目實施過程和項目成果進行反饋和評價,提高學生的學習效率,以達到預期的學習目標,培養(yǎng)學生的信息素養(yǎng)。
1.創(chuàng)設真實情境
教師在創(chuàng)設教學情境時,要充分考慮與學生生活相關的主題。例如,圖書館的書籍分類放置、學生排隊借書,就用到了兩種不同的數(shù)據(jù)結構。圖書存放采用的是樹形結構,而排隊借書用到的是線性結構中的隊列結構。因此在解決相關問題時,需要建立不同的數(shù)據(jù)模型,利用合適的抽象數(shù)據(jù)類型來解決。
2.以學生為本開展教學
在教學實施過程中,要充分體現(xiàn)學生的主體地位。分析具體問題環(huán)節(jié),引導學生通過小組討論、頭腦風暴的方式把握問題核心,將復雜的生活問題抽象成相關的數(shù)據(jù)模型。選擇算法環(huán)節(jié)可以鼓勵學生嘗試選擇多種算法,通過對比不同算法時間和空間的復雜度,來確定最優(yōu)算法。
3.立足而不拘泥于教材
教材為教學實施設計了很好的教學思路,也為項目開展提供了較豐富的教學資源,但是教師在具體的教學中,應根據(jù)地域和學生水平差異對教材內容進行重組或者二次開發(fā),以達到更好的教學效果。
4.有效評價提升項目實施效果
在整個項目實施過程中,教學評價多維度、多形式貫穿于教學活動的始終,包括學生自評、組內互評和教師點評,以及過程性評價和結果評價。有效的評價既能提高學生的學習熱情和項目的參與度,又能讓學生在學習過程中不斷改進實施方案和探究方式,有效地促進教學目標的達成。
● 典型案例設計
下面,筆者以教科版“數(shù)據(jù)與數(shù)據(jù)結構”第四章“隊列及其應用”中的第三節(jié)《排隊取號模擬系統(tǒng)》一課為例,講解如何以項目實施來開展模塊教學,體現(xiàn)數(shù)據(jù)價值。
1.學習目標
①了解排隊取號系統(tǒng)的基本功能。②分析該系統(tǒng)中用到的數(shù)據(jù),并建立相應的數(shù)據(jù)結構。③掌握隊列在排隊取號模擬系統(tǒng)中的應用方法。④體會排隊取號模擬系統(tǒng)在輔助決策中的應用。
2.項目分析
(1)項目情境
用餐高峰時段餐館排隊現(xiàn)象普遍,等待時間過久容易流失顧客,這對餐館來說是一個損失,而通過應用隊列結構來模擬顧客排隊取號用餐的過程,統(tǒng)計顧客平均等待時間,優(yōu)化餐桌配置,可以縮短等待時間,減少顧客流失。
(2)項目主題
餐館排隊取號,小組根據(jù)項目主題,進行討論,制訂項目學習規(guī)劃方案,可用流程圖、思維導圖等形式表達,參考上頁圖2框架。
3.教學過程
(1)情境引入
用視頻或文字描述生活中的實例,展示餐館中顧客排隊取號、等候和系統(tǒng)叫號、就餐的過程。
設計意圖:①展示數(shù)字化創(chuàng)新對日常生活的影響;②理解數(shù)據(jù)的價值。
(2)項目探究活動
分析問題,將復雜的問題分成兩個子任務。
任務一:模擬餐館排隊取號。
分析數(shù)據(jù)模型,得出該模型分為叫號和取號兩部分。叫號為顧客在隊尾入隊,取號為顧客在隊首出隊,即FIFO結構,可用線性表中的隊列進行表達和實現(xiàn)。
設計意圖:了解排隊取號系統(tǒng)的基本思路;體驗隊列在解決問題過程中的作用。
任務二:編程實現(xiàn)餐館排隊取號模擬系統(tǒng)。
引導學生分析解決問題的過程、需要用到的數(shù)據(jù),并建立相應的數(shù)據(jù)結構,進行數(shù)據(jù)的存儲。
①用顧客類Guest存儲顧客所選的餐桌類型、顧客的用餐時間、顧客的取號時間。
②用餐桌類Table來記錄餐桌的類型和狀態(tài)。
③設計取號和叫號的算法。
④用Python編程實現(xiàn)模擬系統(tǒng)統(tǒng)計信息的展示。
設計意圖:明白數(shù)據(jù)結構和算法是相輔相成的,兩者的有效結合才能提升數(shù)據(jù)的價值;在解決問題的過程中培養(yǎng)計算思維;體會數(shù)字化的學習和創(chuàng)新在輔助決策系統(tǒng)中的作用;提高學生的信息意識。
(3)項目展示與交流
將每個小組的項目成果進行展示和分享。每個小組派一名代表描述本組項目完成的過程、遇到的困難,以及解決的辦法。
設計意圖:讓學生通過陳述問題解決的方法,提升表達能力和自信心。
(4)項目評價
從以下幾個方面對各小組進行評價:
①小組成員參與度的自評和互評。②項目的步驟是否進行了有效的規(guī)劃。③項目結果是否有效地呈現(xiàn)。④教師對學生取得的成績充分肯定,對其不足提出修改建議。
設計意圖:在激勵學生的同時,進一步完善學生的知識體系。
(5)教學重點總結
只有將有效的數(shù)據(jù)結構結合恰當?shù)乃惴ú拍芡ㄟ^程序設計解決問題。
讓學生通過應用理解算法與數(shù)據(jù)結構的關系,理解問題解決的本質是要挖掘出數(shù)據(jù)的價值,讓數(shù)據(jù)為系統(tǒng)的決策提供支持。
(6)拓展探究任務
在現(xiàn)行方案上進行哪些改動,可以有效縮短顧客的等待時間?說明調整策略,并編程實現(xiàn)。
設計意圖:從數(shù)據(jù)到數(shù)據(jù)結構,再到應用,逐步加深對問題解決一般性過程的理解,實現(xiàn)知識的遷移。了解數(shù)據(jù)結構應用的本質是提升數(shù)據(jù)的價值,讓數(shù)據(jù)“會說話”。
數(shù)據(jù)結構應用是對數(shù)據(jù)結構基礎知識的綜合提升,難度相對較大,教師在教學時要抓住應用服務于生活的本質,讓學生通過項目學習,體驗數(shù)據(jù)結構在生活中的應用,更好地理解算法與數(shù)據(jù)結構的關系。教師在設計問題及解決方案時,要突出在應用數(shù)據(jù)結構之后能有效提升數(shù)據(jù)的存儲效率、在應用數(shù)據(jù)結構解決問題之后能明顯提高數(shù)據(jù)的應用價值,真正實現(xiàn)學習培養(yǎng)思維、應用體現(xiàn)價值。