謝坤
【摘要】? ? 以真實的教學課例為依托,通過實踐教學,發(fā)現(xiàn)基于真實情境的項目式學習在信息技術學科中的應用效果,基于此引發(fā)在信息技術課堂中,在python編程教學過程中應該用真實的情境吸引學生,用行之有效的方式幫助學生記憶與學習python知識的關鍵點,并對python所帶來的編程思維的訓練與拓展。
【關鍵詞】? ? 信息技術? ? 真實情境? ? 項目式學習
引言:
眾所周知,信息技術既是一門知識性課程,又是一門應用性課程。在小學高年級學段開展Python編程教學,是在知識與應用的基礎上,所進行的一項培養(yǎng)學生計算思維的探索。我們學校是山東省人工智能實驗校,作為一名小學信息技術教師,我和我的同仁在平日工作中,我們一直在探索編程教學路到底該怎么走,我們組老師們認為編程教學的教學內(nèi)容與教學方法一定要立足課標,基于學情,備課之前要明確傳授給學生哪些方面的知識,追求課程標準中哪方面的核心素養(yǎng)提升,讓每個學生都掌握一定的信息技術學科基礎知識與基本技能。
讓學生通過編程實踐,提高實踐能力、創(chuàng)新能力和計算思維能力。基于此,我在日常教學中也進行了一些探索,并從中積累了一些行之有效的方法,以python第12課循環(huán)輸入數(shù)據(jù)為例。
在教學之初,在分析了學情和本節(jié)課重難點的基礎上,首先制定了三維目標:
知識與技能:
1.理解input和for循環(huán)結(jié)合使用的原理。
2.掌握多個數(shù)據(jù)輸入的方法,實現(xiàn)數(shù)據(jù)的累加、有條件運算與求和。
過程與方法:
1.鼓勵學生通過自主探究、小組合作等方式解決問題,培養(yǎng)運用所學知識解決實際問題的能力。
2.在學習的過程中,掌握編程思維有序思考的方法。
情感態(tài)度與價值觀:
1.在編程中培養(yǎng)對待問題嚴謹縝密的思維習慣。
2.以義賣為大背景,讓學生在編程解決問題的同時,懷善行走,熱愛? 公益。
3.感受程序為生活帶來的便利,激發(fā)對學習的熱愛。
這節(jié)課是在學生學習了input語句、for與if基本結(jié)構(gòu)以及數(shù)據(jù)類型的基礎后的綜合練習,要借助這些語句實現(xiàn)累加求和和條件求和等。
在情境的選擇上以學?!凹瓮x賣”這一真實情境為導入點,學生回憶了在義賣現(xiàn)場每個小組爭先出臺優(yōu)惠措施現(xiàn)場非常熱鬧,每個人都陶醉在其中,學生通過回顧之前義賣的火爆場面,激發(fā)他們的學習興趣,培養(yǎng)學生善于從生活中思考問題。
在任務的設置上,分為三個大板塊,四個小任務,分別是:
任務一:
編寫Python程序,實現(xiàn)從鍵盤輸入每個小組的義賣金額,求出本班義賣金總額。
任務二:
修改小程序,求出義賣金額超過300元的小組的義賣金的總額。
任務三:
從所有小組中,找到義賣金額最高的小組和義賣額了。
任務四:
評選:
義賣優(yōu)勝組(義賣金>300);
義賣良好組(100<義賣金<300);
義賣進步組(義賣金<100)。
這四個任務分別可以概括為:累加求和——有條件求和——求最大值——判斷數(shù)值渝300的關系,四個任務在層層遞進后,有進行了橫向的擴展,幫助學生更全方位進行練習。
在任務一的處理上,先讓學生共同梳理解決思路,讓學生說說可能會用到之前學習的哪些知識,并出示板書,然后讓學生用python語言翻譯思路,在梳理思路的過程中,追問學生兩個問題:
1.“he”中怎樣實現(xiàn)累加,以及變量名的意思,幫助學生再次理解變量名設置要有意義,方便再次識讀程序;
2.我們已經(jīng)學過讀入一個數(shù)放入a中,那要實現(xiàn)不斷讀數(shù)應該怎么做?梳理完思路后,請學生完成任務一。
在巡視的過程中,個別學生出現(xiàn)了無法實現(xiàn)金額的累加問題,主要集中在1.input輸入語句下的命令開頭未縮進;2.input讀取的是字符串輸出了一長串數(shù)字,這兩個小問題以學生小助手的形式幫他們共同找到問題的出現(xiàn)的原因,再次夯實python中各種規(guī)定用法,同時找到解決問題的最快捷的方法,1.tab鍵快速入四個空格,2.input讀取的是符串,不能直接參與運算,生活中因為我們現(xiàn)在很少使用角分,所以我們選擇用int整型規(guī)定輸入的數(shù)字,用input內(nèi)的“he”與第一個“he”對比,強調(diào)變量一個重要特點——新值頂替舊值。在任務一中夯實編程的思路以及python的用法規(guī)則。
在這里還向?qū)W生滲透了調(diào)試程序的一些技巧,1.這組程序可以實現(xiàn)每輸入一個數(shù),就進行求和,同時學生可以用口算進行核對,確保數(shù)據(jù)的準確性,如果想一次性求和,那應該把print放在循環(huán)的外面。給學生介紹這種調(diào)試程序的方法,既是一種技巧,同時也是對程序“讀”和“檢”實際過程的清晰化。
2.學生出現(xiàn)了兩種情況(1,1+n)或(n),這里用第一種或者第二種都可以,這是循環(huán)數(shù)值的范圍,代表的是遍歷了多少次,這兩種寫法都是循環(huán)了n次,只要規(guī)定好初值和終值即可,讓學生多種方法解決問題,在這里不做統(tǒng)一要求。
解決完問題后學生將使用幫助級部其他班級完成統(tǒng)計計算,完成后,兩兩一組進行比對,以確保數(shù)據(jù)的準確性。在任務一中主要完成了幾個關鍵點的夯實,最后利用自己調(diào)試好的小程序,在完成任務一的基礎上,幫助其他班完成計算,培養(yǎng)了助人為樂的品質(zhì)。
任務一累加求和解決后,教師在總結(jié)的基礎上,同時提出任務二,實現(xiàn)有條件的求和,在這里加入了if條件語句的使用,并以提問的方式帶著學生分析1. 如果(if)大于300將累加2.if要放在for循環(huán)中是因為每次都要對數(shù)值進行比較;
在完成任務二后,小結(jié)解決問題的一般思路:遇到問題——分析問題——找準算法——解決問題,這也正是我們用編程思維解決問題的過程。
接下來,帶著這些思路讓學生去思考完成出示了任務三和任務四,一個是找到每個級部的金牌義賣小組,并進行表彰,感謝他們?yōu)楸敬瘟x賣做出的巨大貢獻,感謝他們?yōu)樨毨絽^(qū)兒童復學做出的巨大努力。一個是義賣優(yōu)勝組、良好組和進步組的評選,這兩個任務殊途同歸,讓學生挑選自己感興趣的任務,幫助學校完成統(tǒng)計。任務三是求最大值,任務四是所輸數(shù)值與300進行比較,輸入即所得。都是讓數(shù)值進行對比的過程,但兩個任務又有所不同。
其中任務三需要有兩個變量,i用來記錄組號,這個與循環(huán)變量有關,起始是0或1;max用來盛放最大值。
任務四評選各級別小組任務較難,所以調(diào)整為每輸入一個組的金額就顯示級別。練習后,分別請?zhí)暨x任務三和任務四的同學來介紹自己的思路和程序,以及自己想和大家分享的編寫程序中需要注意的關鍵點(變量喜新厭舊的特點、函數(shù)命名有意義、以及調(diào)試程序的一些小技巧),并說說自己本節(jié)課的收獲,任務三和任務四的共通之處是不斷實現(xiàn)讀取數(shù)據(jù)并進行數(shù)據(jù)的處理。
在課程的最后再帶領學生回顧整理本節(jié)課的收獲,并提問:今天我們只是整理了一個級部的數(shù)據(jù),后面我們還要應用我們所學的python知識整理全校更大規(guī)模的數(shù)據(jù),當面臨更大量的數(shù)據(jù)的時候,當需要進行多種計算的時候,在后面我們將要學習列表,它可以存儲一組數(shù)據(jù),并通過幾個簡單的函數(shù)就能求出最大值、和。
在日常的python教學中,讓學生用流程圖描述算法,掌握常見算法,應用該算法解決生活與學習中的問題,使用編程語言,設計和開發(fā)模塊化程序,去解決生活中的問題。但代碼編程對于小學生來說,思維方式和概念都是全新的,是一個從感性思維到理性思維的過渡,學生普遍感到枯燥,難學,沒有濃厚的學習興趣。與學生以往學習直觀所見即所得有很大不同,它恰恰需要學生積極開動腦筋思考問題,這方面又是很多學生所欠缺的,這就又增加了學生學習的難度。這也成了python教學中的一大難點,因此我們的情境盡可能的選用日常生活中的場景,學生沉浸于真實的場景,才會主動思考“我該怎樣做”,提高了學生學習python的積極性,變被動學習為主動學習。其次,一周一節(jié)課,學習間隔時間長,又由于python中函數(shù)語法較多,這周學習的內(nèi)容下周再來上課時,很多知識學生都忘記了,再加上現(xiàn)在的課本又是循環(huán)使用,學生不能在書上寫寫畫畫,即使寫了書也不能帶出教室,無法鞏固復習,因此在學習python期間,我要求學生每節(jié)課都要記筆記。
在一線教學過程中,老師們普遍發(fā)現(xiàn)信息技術中的編程教學是學生學習的難點和枯燥點,尤其是在小學階段,學生的認知思維發(fā)展水平在遇到高階算法的時候,總會出現(xiàn)一些“急轉(zhuǎn)彎”,很多孩子一開始感興趣,通過一段時間學習,覺得太枯燥,不感興趣了;一些孩子對于編程有畏難情緒;還有一些孩子習慣了背記,習慣了去“解題”,這些都導致了在后續(xù)學習中,學生拉開差距的重要原因。但其實在小學階段,學生應該具備的是編程思維的練習,是對問題理解并進行創(chuàng)造性、系統(tǒng)思考的過程,如果“跳一跳可以摘到桃子”,那么最終應該落腳于解決并驗證解決方案可行性上,這些使得學生學好編程變得尤為重要。如何突破學生“枯燥與乏力”,這就需要應用老師的教育智慧,在這幾年的編程教學的探索過程中 我發(fā)現(xiàn),基于真實情境而引發(fā)的問題,并最終在學生身邊應用他們的解決方案進行反饋的教學方式,讓學生找到了編程學習的內(nèi)驅(qū)力,每個孩子把想法發(fā)揮出了最大的價值,從中收貨了榮譽感,這對小學階段的孩子來說,無疑是最重要的正向激勵。
就以這次學校義賣情境為例,在學生思考的基礎上,后續(xù)我們根據(jù)學生的測算結(jié)果,在周一升旗時進行了頒獎,并分享了整個算法,每個孩子為了最優(yōu)解,都在不斷完善著自己的思維系統(tǒng),這是讓建構(gòu),讓學習真正的發(fā)生。
參? 考? 文? 獻
[1]陳寬一. 信息技術課堂中學生計算思維的培養(yǎng)策略[J].? 小學科學(教師版). 2019(08)
[2]楊紅利.? 信息技術課堂教學有效性的探索與實踐[J]. 文理導航(上旬). 2013(05)