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