蔣慧麗 江蘇省宜興市和橋高級中學
素養包含品格和能力,是知識、技能、態度等整體綜合的能力。與傳統的教學模式相比,素養導向的教學旨在促進學生對所學知識和技能進行有意義的深度建構。[1]《普通高中信息技術課程標準(2017年版2020年修訂)》倡導項目式學習,要求教學內容主題化、課程內容情境化,教師需轉變教學思維,積極探索基于情境、問題等的課堂教學,注重加強課題研究、項目設計、研究性學習等跨學科綜合性教學。[2]信息技術學科注重算法、數據等核心概念,要求學生掌握程序設計語言的基本知識,利用Python實現簡單的算法,解決實際問題。但目前學生在學習Python編程的過程中難以學以致用,如何將所學知識應用于解決真實問題是教學中亟待突破的點。因此,筆者以素養為導向,將項目式教學方法應用于高中Python編程教學中,嘗試對當前的編程教學進行革新。下面,以教育科學出版社出版的高中信息技術《必修1 數據與計算》中的“認識”數據單元的“加密與解密”內容為例,介紹此種教學設計的思路與實施路徑。
該部分內容包含“數據加密和解密的概念及技術原理”“凱撒加密和解密算法”“用Python實現簡單的加密和解密算法”。數據也是一種信息,因此,筆者設定本項目的主題為“信息的守護者”,引導學生學習密碼的設置、加密、破譯,理解保護數據的意義。項目的難點是利用凱撒加密算法理解加密思想,并通過程序設計實現加密與解密。學生將綜合運用Python編程中的循環、條件語句、字符串和ASCII碼轉換函數等知識點解決真實情境中的問題。
項目情境要貼近學生實際的情況和學習需求。本節課的情境基于中國的飛鴿傳書和二戰中的軍事信息傳輸,學生需理解飛鴿傳書的局限性以及軍事情報的安全挑戰,從而引出“數據的加密與解密”的主題。
師:(出示圖片)中國有一種古老而獨特的傳信方式——飛鴿傳書,這種傳輸方式是否存在安全問題?
生:敵軍可以截獲并解讀這些信息。
師:如何解決這個問題?西方國家采用一種方法,將信息轉化為一種特殊的內容,只有掌握特殊內容轉換方法的人才能將其還原成原文。即使敵軍截獲了傳輸的內容,也無法解讀其中的真實含義,從而確保了信息的保密性,這種數據處理技術成為二戰期間軍事通信的關鍵。(引出本節課的項目主題:通過學習數據的加密和解密,成為“信息守護者”)
項目式教學基于基本知識內容,以單元中的學科中位、核心概念為起點,明確項目的本質,對項目進行準確的表征和理解,將復雜項目拆解為一系列有意義的問題,從而形成對項目的準確描述和全面認識。基于此理念,筆者將項目主題“信息的守護者”分解為“信息的隱身”和“揭秘隱身術”兩個子任務。
子任務1:“信息的隱身”。教師發放學習任務單,即理論任務單,在理論任務單中,“數據”為核心大概念,學生將深入學習數據加密的概念、原理等理論知識,該部分的項目成果是加密和解密的過程圖。教師先讓學生閱讀書本并探究“情境創設”中的“將信息轉換為內容”的“信息”“內容”“轉換的方法”分別對應加密和解密技術中哪些專業名詞,然后總結加密與解密相關理論:將原始信息(數據)隱匿起來,在缺少特殊信息(數據)時不可讀的即加密,原始信息(數據)稱為明文,加密后的信息(數據)稱為密文,將密文還原成明文的過程稱為解密(或解碼),控制加密和解密過程的是密鑰。教師讓學生發揮主觀能動性,根據核心概念繪制加密解密的過程圖,最后總結加密和解密原理。
子任務2:“揭秘隱身術”(本項目的重點內容)。主要學習凱撒密碼算法及思想,合理設計加密解密程序。教師發放實踐任務單,學生分組搜集相關的加密算法,如凱撒密碼、維吉尼亞密碼、哈希算法等,并進行展示比較。教師以“凱撒算法”為例讓學生體驗凱撒密碼,學生自主探究凱撒加密算法,將任務單上的代碼補充完整,并編程體驗“信息的隱身”,實現對信息的加密。在教學過程中,教師應注意鍛煉學生舉一反三的能力,靈活分析問題、描述算法、編寫程序、調試運行,通過對加密過程的推導和類比自主完成解密程序。
以“凱撒加密算法”為例,由于高一學生已經掌握數軸中關于偏移量的數學知識,教師可以通過偏移量的表達建立數學關系抽象出加密算法。教師呈現如圖1所示的算法規則,讓學生嘗試在字母表上進行簡單的偏移操作,學生觀察找到規律:將圖中每一個字母用字母表中該字母偏移后的第三個字母替換。接著,教師提問:“每一個字母都滿足這個規律嗎?最后幾個字母的規律是什么?”學生回答:“如果明文字母在‘A’和‘W’之間,則直接后移3位得到相應密文字母,如果明文字母在‘X’和‘Z’之間,則返回字母表的開頭按順序后移。”在學生了解算法規則后,教師呈現凱撒密碼表(如下表),學生從表格中可以清晰地觀察字母在字母表中的位置與ASCII碼之間存在的對應關系并建立數學表達式。以字符Z為例,向后偏移3位,Z后面變成了字母C,ASCII值-26再向后偏移ASCII值+3,學生得出數學表達式,即A-W:密文碼值=明文碼值+3,X-Z:密文碼值=明文碼值-23。至此,抽象出凱撒加密算法的核心原理,將明文中的每個字母向后移動固定的位置,同時也讓學生理解在計算機中英文字符是以ASCII編碼形式存儲和處理的,偏移過程是通過對ASCII碼值進行加減操作實現的。
?
圖1
編程測試階段學生需要思考如何用Python語言描述明文、密文和密鑰,根據教師下發的實踐任務單,畫出流程圖,分析凱撒密碼核心算法代碼的知識點。凱撒加密過程可以分解成3個子問題:如何處理密碼中的每一個字符?如何轉換ASCII碼和字符?如何考慮不同大小寫的字符?
子問題1可以采用循環結構遍歷每個字符。子問題2涉及ASCII碼和字符之間的相互轉換過程,用Python實現加密算法需用到ord()和chr()函數,ord()函數將字符轉換成對應的ASCII值,chr()函數把ASCII值轉換成對應的字符,明文轉換成密文即“字符-數值-字符”兩次變換過程,將其用Python語言表示即A-W:密文=chr(ord(明文)+3),X-Z:密文=chr(ord(明文)-23)。子問題3采用條件結構判斷A-W間的字母、X-Z間的字母以及非字母的其他字符。示例代碼如圖2所示,實踐任務單上的代碼可以重點讓學生根據注釋補全第3行到第9行代碼。學生提交加密程序作業,然后自主推導解密算法并完善程序(需注意字母表變換的范圍),如圖3所示。
圖2
圖3
項目評價環節將實施素養導向的表現性評價,學生分享自己設計的作品,教師歸納總結典型錯誤、易錯點以及課堂的生成性問題。最后,圍繞學生的編程項目成果、代碼質量、解決問題的思維和創新性等進行不同維度的評估,學生根據教師設計的表現性評價量表進行同伴互評,全面地評估學生在編程項目中的能力和素養。
本文以“加密和解密”為例,呈現了素養導向的高中Python編程項目式教學設計的思路:情境創設、項目分解、算法探究、編程測試、成果評價。在進行教學設計時,教師需明晰“項目”的意義,項目式學習的前提是教師要設計真實的項目主題、驅動性的高質量的任務和問題,并對教材內容進行二次開發以提高自身的學科教學勝任力。