資源簡介 教學設計課程基本信息課題 棧教學目標1. 依據解決問題的需要,從問題中提煉出棧結構。 2. 能夠總結出棧的特性,領會棧的相關操作。 3. 通過具體任務的實踐活動,體驗用棧解決問題的基本流程,逐步形成運用棧結構解決問題 的思維方式和學科方法。教學內容教學重點: 1. 從實際問題中,能恰當地選擇棧結構,并總結棧的特性及基本操作。 教學難點: 1. 抽象與建模、設計算法,用棧結構解決問題的過程,并用棧的基本操作進行編程實現。教學過程一、情境導入 根據收納箱存放書本的動畫實例,總結收納箱中書本的取放有什么特點?并列舉生活中 包含棧結構特點的實例。 設計意圖: 以動畫方式,激發學生的學習興趣,感知生活中蘊含棧結構的實例,并總結生活中這些 事物的特點,引出本節課的學習內容棧。 二、知識講解 教師以知識條目的方式呈現棧的概念與特性。學生根據之前學習的隊列知識,對比棧和 隊列的相同點與不同點。 教師講解用數組、鏈表存儲棧結構的方式。然后采用數組存儲, 以具體的實例詳細講解 棧的基本操作,包括建棧、入棧和出棧。例 1:將“A ”“B ”“C ”“D ”四個元素,按序入棧、出棧,模擬出其中的過程,并給出 python 實現的代碼。入棧操作用順序結構實現,引導學生將入棧代碼用循環結構進行優化。出棧操 作時通過三個問題激發學生思考。教師講解要點以及 python 編程實現過程。 問題 1:若棧空不能出棧,那么判斷棧空的條件是什么? 問題 2:輸出棧頂元素代碼如何實現? 問題 3: 出棧和取出棧頂元素有什么區別? 例 2:字母 ABC 按順序入棧,可能的出棧順序有哪些? 教師通過動畫演示的方式講解出棧順序為 ABC 的實現過程,讓學生思考其他出棧順序的 實現過程,講解 CAB 出棧順序不可能實現的原因。 設計意圖: 通過新舊知識的聯結,對比學習隊列與棧的特性,學生加深對棧的理解;通過具體問題, 學習棧的基本操作,從而實現知識的內化。通過代碼閱讀、優化和問題思考,學生將知識進 行遷移;通過出棧順序的討論,加深并鞏固對入棧、出棧的理解。 三、實例分析 實例 1:進制轉換 教師講解用戶角色特征值(十進制)轉二進制的過程,采用除二取余法,從計算過程抽 象出棧的結構,然后講解 python 代碼,通過代碼補全的方式,引導學生閱讀程序并思考。演 示程序運行過程,用數據來檢驗程序的正確性。 實例 2:括號匹配 教師講解括號匹配問題,先讓學生觀察計算式,總結出判斷括號是否匹配需要考慮括號 的數量與位置。然后根據計算機解決問題的一般步驟,引導學生進行抽象與建模、設計算法 和編程實現,體驗用棧結構解決問題的全過程。 設計意圖: 通過實例講解,引導學生從生活實例中提煉出棧的結構,并用棧相關的操作,實現入棧、 出棧等操作。通過抽象與建模、設計算法和編程實現,提高學生的計算思維能力。 四、拓展提升 教師講解 python 中可以使用列表自帶的函數和方法來實現棧。將列表的右端作為棧頂, 可以使用 append()函數實現入棧操作,pop ()函數實現出棧操作,len ()函數求棧中元素個數, 如果個數為 0 則表示棧空。學生嘗試使用列表自帶函數和方法來實現括號匹配程序。設計意圖: 通過拓展知識學習,學生加深對棧操作的理解,增強代碼實現能力。 五、課堂小結 教師總結本節課所學內容,并適當布置作業,讓學生完成課后練習。 設計意圖: 通過思維導圖,再現本節課知識體系,幫助學生將知識進行梳理;通過布置課后練習, 幫助學生進一步鞏固所學知識,提高問題解決能力。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫