這是一本基于小學(xué)生認(rèn)知水平和學(xué)習(xí)發(fā)展規(guī)律的教材,創(chuàng)設(shè)貼近小學(xué)生學(xué)習(xí)、生活的情境,在解決問(wèn)題的實(shí)踐中引出新知,由淺入深,由易到難,循序漸進(jìn),逐步系統(tǒng)化,為培養(yǎng)小學(xué)生編程能力和用算法解決問(wèn)題的意識(shí)提供了一套較優(yōu)的方案。本書(shū)設(shè)計(jì)的案例有層次、有梯度,利用類(lèi)似于代碼的自然語(yǔ)言描述解決問(wèn)題的過(guò)程與步驟,讓思維活動(dòng)可視化,為提升小學(xué)生的思考力提供了有力的抓手。每課、每單元均設(shè)計(jì)具有反饋、鞏固學(xué)習(xí)效果的檢測(cè)作業(yè),為激發(fā)小學(xué)生學(xué)習(xí)興趣、保持學(xué)習(xí)動(dòng)力、體驗(yàn)編程的快樂(lè)提供了可靠的保障。 本書(shū)適合小學(xué)四年級(jí)及以上學(xué)生閱讀使用,可作為小學(xué)信息科技學(xué)科的教輔材料,也可作為信息科技教師學(xué)習(xí)Python語(yǔ)言的參考讀物。
這是一本以解決問(wèn)題為核心、按能力體系編排的編程入門(mén)書(shū),弱化語(yǔ)法,強(qiáng)化算法,在情境中引出新知,循序漸進(jìn),由淺入深,逐步系統(tǒng)化,有習(xí)題,有課件,易學(xué)易會(huì)。學(xué)會(huì)編程,未來(lái)你將擁有更多的機(jī)會(huì)與可能。
現(xiàn)在有一種流行的說(shuō)法:Python語(yǔ)言最接近自然語(yǔ)言,語(yǔ)法簡(jiǎn)潔、清晰、易懂,擁有眾多的第三方庫(kù),非常適合編程初學(xué)者學(xué)習(xí)使用。 如果初學(xué)者是成年人,這種說(shuō)法完全正確。如果初學(xué)者是小學(xué)生,這種說(shuō)法就值得商榷了。 Python語(yǔ)言最接近自然語(yǔ)言,這個(gè)自然語(yǔ)言是指漢語(yǔ)嗎?不是,而是英語(yǔ)。對(duì)于我國(guó)的小學(xué)生來(lái)說(shuō),英語(yǔ)是一門(mén)外語(yǔ),不是母語(yǔ),按照公布的《義務(wù)教育課程方案(2022年版)》的課程設(shè)置,小學(xué)中高年級(jí)才開(kāi)始開(kāi)設(shè)英語(yǔ)課。如果按照正常的教學(xué)進(jìn)度,小學(xué)五、六年級(jí)的孩子英語(yǔ)剛?cè)腴T(mén),他們可以把學(xué)會(huì)的簡(jiǎn)單的英文單詞、語(yǔ)法遷移到Python語(yǔ)言中,但想以最接近自然語(yǔ)言為突破口來(lái)學(xué)習(xí)Python語(yǔ)言,是不現(xiàn)實(shí)的。 Python語(yǔ)言的語(yǔ)法是簡(jiǎn)潔、清晰的,但對(duì)小學(xué)生來(lái)說(shuō)是不是易懂的呢?簡(jiǎn)潔的語(yǔ)法,有時(shí)是會(huì)增加學(xué)習(xí)難度的。例如,賦值語(yǔ)句tot =2中使用了由 =構(gòu)成的增強(qiáng)賦值運(yùn)算符 =,這樣的語(yǔ)句很簡(jiǎn)潔、清晰,但孩子們?cè)趯W(xué)習(xí)時(shí),需要轉(zhuǎn)個(gè)彎,先轉(zhuǎn)換成煩瑣一點(diǎn)的普通賦值語(yǔ)句tot=tot 2,才能更容易消化、理解。同時(shí),計(jì)算機(jī)高級(jí)語(yǔ)言的語(yǔ)法結(jié)構(gòu)和漢語(yǔ)的語(yǔ)法結(jié)構(gòu)是不一致的,編程時(shí),要從母語(yǔ)的表述方式轉(zhuǎn)換成用計(jì)算機(jī)語(yǔ)言來(lái)描述,這涉及思維方式的轉(zhuǎn)換,對(duì)初學(xué)者而言特別不容易。 擁有眾多的第三方庫(kù),對(duì)于項(xiàng)目應(yīng)用的開(kāi)發(fā)者來(lái)說(shuō),可以提高工作效率,但也容易讓人迷失在庫(kù)的海洋里。對(duì)于一個(gè)人來(lái)說(shuō),時(shí)間是一個(gè)常量,更何況是小學(xué)生,各門(mén)學(xué)科都有各自的學(xué)習(xí)任務(wù),可支配的時(shí)間有限,以眾多的第三方庫(kù)作為學(xué)習(xí)內(nèi)容,也是值得探討的。 因此,我們要樹(shù)立一個(gè)觀點(diǎn):對(duì)于小學(xué)生來(lái)說(shuō),想要學(xué)會(huì)Python語(yǔ)言是不容易的。 一方面,這種不容易提醒所有的教育者要正確面對(duì)現(xiàn)實(shí),認(rèn)識(shí)到存在的困難,只有基于現(xiàn)實(shí)進(jìn)行思考,才能找到正確的解決方法;另一方面,這種不容易也激勵(lì)著教育者,只要方法正確,路徑有效,對(duì)于一般的小學(xué)生來(lái)說(shuō),學(xué)習(xí)Python語(yǔ)言也并非一件難事。 如何才能讓不容易變得容易呢?編寫(xiě)一本基于小學(xué)生認(rèn)知規(guī)律和學(xué)習(xí)發(fā)展規(guī)律的教材是重要的一環(huán)。 首先,編寫(xiě)小學(xué)生Python教材時(shí),要明白成人與小學(xué)生學(xué)習(xí)Python語(yǔ)言的目的是不同的。成人往往是為工作而學(xué),為開(kāi)發(fā)某個(gè)具體的項(xiàng)目或應(yīng)用程序而學(xué),側(cè)重于應(yīng)用性。而小學(xué)生是為成長(zhǎng)而學(xué),以Python語(yǔ)言為載體進(jìn)行思維的完整性和邏輯性訓(xùn)練,掌握利用計(jì)算機(jī)解決問(wèn)題的方法,培養(yǎng)思考力,激發(fā)興趣,側(cè)重于基礎(chǔ)性。 其次,編寫(xiě)的教材要做到對(duì)、好、趣、高。 對(duì)。就是教材編寫(xiě)的內(nèi)容要正確,這是最基本的要求。但由于Python語(yǔ)言的獨(dú)特性,做到對(duì)并不簡(jiǎn)單。例如,一般程序設(shè)計(jì)高級(jí)語(yǔ)言中的變量是箱子,賦值是把某個(gè)表達(dá)式的值裝入箱子的過(guò)程;而Python語(yǔ)言中的變量,是對(duì)象的標(biāo)簽,是對(duì)象的引用,賦值是把變量指向某個(gè)具體對(duì)象的過(guò)程。只有基于指向引用的認(rèn)識(shí)時(shí),孩子們才能理解多變量同時(shí)指向同一個(gè)組合類(lèi)型對(duì)象時(shí),修改某個(gè)變量指向的對(duì)象元素后,其他變量的值也會(huì)發(fā)生變化。因此,不能把Python語(yǔ)言中的變量比喻成箱子。 又如,一般程序設(shè)計(jì)高級(jí)語(yǔ)言中for循環(huán)是計(jì)數(shù)循環(huán),而Python語(yǔ)言中的for循環(huán)是遍歷循環(huán),遍歷循環(huán)可以實(shí)現(xiàn)計(jì)數(shù)功能,但它不是計(jì)數(shù)循環(huán),只有從遍歷的角度去理解,才能讓孩子們明白遍歷循環(huán)的循環(huán)體中對(duì)循環(huán)變量的重新賦值修改不會(huì)影響循環(huán)次數(shù),不能把遍歷循環(huán)簡(jiǎn)單處理為計(jì)數(shù)循環(huán)。 好。這個(gè)好一方面體現(xiàn)在編排順序上,要循序漸進(jìn),不能把知識(shí)點(diǎn)簡(jiǎn)單地堆砌起來(lái)。對(duì)于有基礎(chǔ)的成人,選用將各種語(yǔ)法知識(shí)集中呈現(xiàn)的教材能快速全面地掌握Python語(yǔ)言。但是知識(shí)點(diǎn)集中呈現(xiàn)的教材對(duì)于編程零基礎(chǔ)的孩子來(lái)說(shuō)是不適合的,猶如把各種字、詞集中整理在一起的字典不能作為孩子學(xué)習(xí)語(yǔ)文的教材。在案例中,循序漸進(jìn)地學(xué)習(xí)各個(gè)知識(shí)點(diǎn)或許是小學(xué)生學(xué)習(xí)編程的可行路徑。在解決問(wèn)題的實(shí)踐中,引出新知,適可而止,由淺入深,由易到難,不求概念化,逐步系統(tǒng)化,實(shí)現(xiàn)從以語(yǔ)法為核心的知識(shí)體系的教學(xué)編排轉(zhuǎn)向以解決問(wèn)題為核心的能力體系的教學(xué)編排。 好的另一方面體現(xiàn)編排內(nèi)容上,要做到因材施教。Python語(yǔ)言是一種生態(tài)語(yǔ)言,生態(tài)語(yǔ)言關(guān)注的不再是每個(gè)具體算法的邏輯功能和設(shè)計(jì),而是盡可能利用第三方庫(kù)進(jìn)行代碼復(fù)用,像搭積木一樣編寫(xiě)程序,提高開(kāi)發(fā)工作的效率。對(duì)于成人,從計(jì)算生態(tài)的角度學(xué)習(xí)Python是因材施教。如果小學(xué)生也是從計(jì)算生態(tài)的角度學(xué)習(xí)Python,那么要記住內(nèi)置函數(shù)、對(duì)象的方法及各種庫(kù)的調(diào)用語(yǔ)法,才能編寫(xiě)程序。但這樣大腦就會(huì)進(jìn)入記單詞階段,缺少思維活動(dòng)會(huì)讓學(xué)習(xí)變成記憶,不利于孩子的成長(zhǎng)。因此,小學(xué)生應(yīng)從算法的角度學(xué)習(xí)Python,注重基礎(chǔ)性,弱化應(yīng)用性,關(guān)注思維活動(dòng)。數(shù)據(jù)、算法、算力是人工智能的三要素。選擇算法作為學(xué)習(xí)內(nèi)容,也符合時(shí)代發(fā)展的趨勢(shì)。那么,選擇怎樣的內(nèi)容才算是從算法角度編排的呢?例如,已知某一個(gè)數(shù)字列表中各個(gè)元素的值,求出該列表中所有元素的和。從計(jì)算生態(tài)的角度出發(fā),直接學(xué)習(xí)內(nèi)置求和函數(shù)sum()的調(diào)用方法,代碼簡(jiǎn)潔,編程的效率高。從算法角度出發(fā),應(yīng)學(xué)習(xí)計(jì)算機(jī)高級(jí)語(yǔ)言累加求和的一般方法(先將累加器清零,再遍歷列表中的每一個(gè)元素,依次累加各個(gè)元素的值,最后輸出累加器的值)。這種求和方法的代碼長(zhǎng),編程效率低,卻能讓小學(xué)生明白累加的一般過(guò)程,學(xué)會(huì)思考。站在一般程序設(shè)計(jì)語(yǔ)言的視角選擇學(xué)習(xí)Python語(yǔ)言的內(nèi)容,既要關(guān)注Python語(yǔ)言個(gè)性化的內(nèi)容,也要關(guān)注程序設(shè)計(jì)語(yǔ)言的共性知識(shí),兩者有機(jī)結(jié)合,通盤(pán)考慮,適當(dāng)?shù)貜恼Z(yǔ)言細(xì)節(jié)上解放出來(lái),才能更有利于孩子的成長(zhǎng)。 趣。就是編寫(xiě)的教材要讓孩子感到有趣。趣是有層次的。第一層次是精美的畫(huà)面,以圖吸引孩子。對(duì)于小學(xué)低年級(jí)學(xué)生,這個(gè)顯得特別重要。對(duì)于從形象思維過(guò)渡到抽象思維的小學(xué)高年級(jí)學(xué)生,圖對(duì)他們有吸引力,但引發(fā)的興趣不持久,因?qū)W習(xí)而體驗(yàn)成功的快樂(lè)、因?qū)W習(xí)而實(shí)現(xiàn)自我價(jià)值引發(fā)的興趣才是最持久的、最可貴的,這便是第二層次的趣。因此,編寫(xiě)的教材一方面要有插圖,吸引孩子興趣;另一方面要設(shè)計(jì)有梯度、有層次的問(wèn)題,在解決問(wèn)題的過(guò)程中利用自然語(yǔ)言、流程圖或偽代碼語(yǔ)言等方式,呈現(xiàn)解決問(wèn)題的過(guò)程與步驟,讓思維活動(dòng)可視化,同時(shí)設(shè)計(jì)習(xí)題,舉一反三,為孩子體驗(yàn)編程的快樂(lè)、實(shí)現(xiàn)自我價(jià)值、保持學(xué)習(xí)動(dòng)力提供可能。 高。就是編寫(xiě)教材的指導(dǎo)思想要高。跳出學(xué)科看問(wèn)題,跳出技術(shù)看問(wèn)題,要從人的發(fā)展、培養(yǎng)人的角度來(lái)考慮。從人的發(fā)展角度看,多數(shù)孩子將來(lái)不會(huì)成為程序員或計(jì)算機(jī)科學(xué)家,因此,不能把編程看作一種狹隘的技術(shù),而是把它當(dāng)成一種解決問(wèn)題的方法,讓孩子學(xué)會(huì)問(wèn)題的分解、抽象、建模、設(shè)計(jì)算法的能力,并能將這種能力遷移、應(yīng)用到解決其他學(xué)習(xí)、生活中的問(wèn)題中。從培養(yǎng)人的角度看,編程只是學(xué)習(xí)的載體,不是學(xué)習(xí)的目的,學(xué)習(xí)的目的是能讓孩子在學(xué)習(xí)編程的過(guò)程中得到成長(zhǎng),關(guān)注孩子思維完整性和邏輯性方面的訓(xùn)練,培養(yǎng)孩子的理解力、思考力、創(chuàng)造力,為孩子的未來(lái)助力。不要只把編程當(dāng)成篩選人才的工具,而是應(yīng)該把編程作為培養(yǎng)人才的利器,因此,在編寫(xiě)教材時(shí),應(yīng)在科學(xué)的、發(fā)展的人才觀、成才觀、教育觀的視角下組織教學(xué)內(nèi)容,讓編程成為一種素養(yǎng)。 本書(shū)基于以上認(rèn)識(shí)和多年一線(xiàn)的編程教學(xué)實(shí)踐編寫(xiě)而成。在編寫(xiě)的過(guò)程中,得到金華市婺城區(qū)教研室鄭理新、金華市第五中學(xué)陳洪棋、金華市青春中學(xué)陳旭平、浙江師范大學(xué)熊繼平等老師的指導(dǎo)與幫助。因編者水平有限,書(shū)中難免存在不妥或錯(cuò)誤之處,歡迎讀者批評(píng)指正,可以發(fā)送郵件至電子郵箱4878747@qq.com,更希望讀者對(duì)本書(shū)提出建設(shè)性意見(jiàn),以便修訂、再版時(shí)改進(jìn)。 潘洪波 2023年4月
潘洪波,高級(jí)教師,曾獲浙江省小學(xué)信息技術(shù)優(yōu)質(zhì)課一等獎(jiǎng),編寫(xiě)的教材《小學(xué)生C 趣味編程》《小學(xué)生C 趣味編程訓(xùn)練營(yíng)》由清華大學(xué)出版社出版,編寫(xiě)的《智能機(jī)器人WeDo 2.0(小學(xué)版)》被評(píng)為浙江省第六屆精品課程。
人物介紹 000 第1單元走進(jìn)Python的世界001第1課 換個(gè)視角看世界認(rèn)識(shí)Python 002 第2課 鍵盤(pán)指法輸出函數(shù)print( ) 007 第3課 重要的話(huà)說(shuō)三遍變量與賦值 014 第4課 寄語(yǔ)輸入函數(shù)input( ) 019 第5課 生日禮物類(lèi)型轉(zhuǎn)換 023 第6課 工廠的時(shí)鐘取模運(yùn)算符 029 第7課 小棒總根數(shù)字符串split( )方法 033 第8課 身份證號(hào)碼有序序列的正向索引與切片 038 第9課 取盤(pán)子有序序列的反向索引與切片 044 第10課 星運(yùn)算多態(tài) 051 單元檢測(cè) 055 第2單元分支結(jié)構(gòu)059第11課 健康監(jiān)測(cè)單分支結(jié)構(gòu)if 060 第12課 變量名雙分支結(jié)構(gòu)if?else 067 第13課 作業(yè)等級(jí)多分支結(jié)構(gòu)if?else語(yǔ)句的嵌套 074 第14課 再談作業(yè)等級(jí)多分支結(jié)構(gòu)if?elif?elif 081 第15課 自然數(shù)的判定邏輯運(yùn)算符 087 單元檢測(cè) 094 第3單元循環(huán)結(jié)構(gòu)099第16課 青蛙跳水遍歷循環(huán)for 100 第17課 再談青蛙跳水range( )生成器 105 第18課 儲(chǔ)蓄計(jì)劃累加求和 111 第19課 再談儲(chǔ)蓄計(jì)劃sum( )函數(shù) 116 第20課 掃描識(shí)別線(xiàn)性搜索 121 第21課 再談掃描識(shí)別列表的可變性 126 第22課 素?cái)?shù)問(wèn)題break語(yǔ)句 131 第23課 幸運(yùn)數(shù)字continue語(yǔ)句 137 第24課 聲控?zé)粲肋h(yuǎn)循環(huán)while 143 第25課 驗(yàn)證碼隨機(jī)模塊 148 第26課 每天進(jìn)步一點(diǎn)兩種循環(huán)的比較 156 第27課 百錢(qián)買(mǎi)百雞循環(huán)嵌套 160 單元檢測(cè) 164 第4單元函數(shù)167第28課 洗衣機(jī)函數(shù)的定義與參數(shù) 168 第29課 溫差函數(shù)的返回值 173 第30課 廢鋼回運(yùn)變量作用域 178 第31課 跑出氣質(zhì)函數(shù)的副作用與純函數(shù) 184 第32課 回文數(shù)函數(shù)與方法 192 第33課 神奇的兔子數(shù)列遞推與遞歸 198 單元檢測(cè) 204 第5單元庫(kù)207第34課 會(huì)畫(huà)圖的小海龜turtle模塊 208 第35課 糖葫蘆畫(huà)筆控制函數(shù) 212 第36課 海龜賽跑繪圖坐標(biāo)系統(tǒng) 216 第37課 以生態(tài)視角看世界模塊編程 220 單元檢測(cè) 224 參考文獻(xiàn) 228 參考答案及配套資源下載 229 附錄231附錄A 代碼格式說(shuō)明 232 附錄B Thonny的程序調(diào)試功能 233 附錄C 字符集 235 附錄D 獎(jiǎng)勵(lì)積分卡比特童幣 236