中小學python程式語言教學
作為一名高中資訊科技老師,被技術的發展潮流推動著,不斷更新教學內容和方法,以適應快速發展的資訊社會。
那麼程式語言學習更側重於計算思維的培養,同時也滲透其他三個要素的培養。計算思維是什麼?是指個體運用電腦科學領域的思想方法,在形成問題解決方案的過程中產生的一系列思維活動。具備計算思維的學生,在資訊活動中能夠採用計算機可以處理的方式界定問題、抽象特徵、建立結構模型、合理組織資料(資料結構);通過判斷、分析與綜合各種資訊資源,運用合理的演算法形成解決問題的方案(演算法);總結利用計算機解決問題的過程與方法,並遷移到與之相關的其他問題解決中。(遷移,學以致用)
為什麼要學習程式設計?
程式語言是和計算機溝通必須的語言,學習一門新的語言就像開啟一扇背後充滿各種可能性的窗戶,多一種認識世界的角度和方式。類似於幾十年之前的英語的學習,先接觸英語的一批人就優先的獲取了新的訊息和視角。無需人人都從事專業程式開發,但計算思維已經是面向未來的必備基礎素養。
為什麼選擇python語言作為高中生的入門語言? python是一種什麼樣的語言?
沒有最好的,只有最合適的。程式語言就像廚房裡面的勺子,樣式不同,各有特色,滿足不同需求,類似於油畫的各類筆刷,不同藝術效果需選用不同的筆刷。從底層的機器語言到組合語言再到高階語言,每種語言都有他們的特色。比如,c語言:作業系統底層;j**a:跨平台物件導向語言;python:人工智慧時代的首選語言。
如何教授程式設計?
從學習分析角度,程式設計屬於技能領域。程式設計的學習就要遵循技能學習規律。刻意練習是技能學習的不二法門。中小學學生有他們特有的認知和心理特點,不能只是簡單粗暴的練習,導致學生們對程式設計畏難和絕緣。通過以往的教學經驗,融入專案教學方法,總結出如下的教學模式流程:
(1) 丟擲概念 問題(專案活動1)
概念和問題盡量和學生已有認知結構有關聯,和他們日常生活息息相關的案例會更能激發他們興趣和解決問題的動力。
視覺化程式設計可以作為入門課程,比如python裡面的turtle模組。視覺化程式設計可以提供即時反饋,降低初學者入門門檻,學習過渡會順利一些,另外,視覺化程式設計可以持續激發學生的興趣。為後面的學習提供動力基礎。
藝術創作(繪製創意藝術作品)。讓學生體會到程式設計不僅僅是機械枯燥的數字和抽象模型,通過有限的邏輯控制,實現無限的創意。讓學生從新的角度來理解程式設計。發現藝術中蘊含的程式設計之美。
語文文字分析(統計詞頻,資料視覺化呈現)通過程式設計來實現文字分析,並把資料視覺化。從資訊中提取出有用的知識也是資訊社會必備的技能。
數學(輸出質數、輸出最大公約數、判斷是否為閏年、概率統計模擬等)數學是電腦科學的基礎,可以通過計算機實現驗證某些數學原理,幫助學生深刻理解數學概念。
科學模擬(自由落體、泊松運動等)有趣的科學實驗和原理都可以通過計算機模擬實現,也是通過程式設計來學習科學的一條路徑。
生活案例隨機點名器(列表和字串)密碼技術(凱撒密碼 隨機替代密碼 維吉尼亞密碼等)真實的案例和問題給學生提供了學以致用的機會,當用著自己或是學生的產品,會有很強的成就感。學生們也藉機體會真實的程式開發過程迭代過程。
硬體結合(各類感測器應用)隨著硬體套件的普及,學生們也有很多機會接觸硬體。通過硬體的控制給學生提供了乙個實物,可以通過程式設計來控制,並且這個事物還是乙個看得見摸得著的實物。這樣學生的積極性和興趣持續時間會更長。對於老師的挑戰就是工作量會增加,不僅要考慮軟體,也要關注硬體的使用。
遊戲開發,程式語言的教學可以借助遊戲平台模組或平台進行開展。比如python語言可以通過pygame模組開發2d的遊戲;也可以通過minecraft開發3d遊戲。通過學生感興趣的遊戲入手可以激發學生的學習興趣。
(2)學生手動體驗活動(專案活動2)
具體的體驗為後面的抽象提供了實踐**,只有這樣才不至於跨度大,進而降低學習難度。相當於為學生提供了實踐活動機會,體會具體的操作過程。順利過渡到抽象階段。我們學習一項新的技能,最好的方式就是在學生已有的認知和經驗範圍基礎進行建構。從直觀的體驗和觀察過渡到後面的抽象,認知負荷會小很多。比如讓學生取扮演小烏龜的運動,讓學生通過卡牌來展示各類排序過程,讓學生通過角色扮演和實物演示來體驗各種問題及解決思路。為學生後面的抽象建模過程提供了體驗基礎,符合認知建構過程。
(3)程式設計實現解決問題(專案活動3)
給學生們**時間,允許犯錯,及時反饋,迭代改進。這個時候就是從具體到抽象的提公升階段。學生們往往會不知如何下手,兩眼一抹黑。剛才聽的挺明白的,就是不知道怎麼通過計算機抽象模擬問題情境,並解決問題。首先要明確問題,理出輸入是什麼,輸出是什麼?然後,分析如何能處理輸入才能得到輸出的結果;其次,根據需要選取合適的資料型別或資料結構存放資料。最後,通過程式設計實現問題解決並測試。debug的技巧:熟悉bug的型別,比如語法錯誤,一般執行時會報錯,比較容易發現和修改,這也是初學者經常會犯的;還有邏輯錯誤,比較難去找到bug。能正常執行輸出,但是不是想要的結果。一般在debug的過程中,可以通過輸出語句和注釋功能來逐步查詢bug的位置。debug也是程式設計學習必不可少的一部分,甚至會比前期的寫**時間還要長。
(4)迭代完善(專案活動4)
(5) 反思分享(專案活動5)
總結反思實踐過程中遇到的困難,如何解決的,如果再碰到類似問題應該如何遷移解決。專案過程中興奮時刻是什麼時候?最抓狂時候是什麼時候?是如何解決的?
概念可以再次螺旋深入認識和理解。
程式設計教學一些小技巧:
中小學生程式設計
近幾年以來,發布了多個推廣少兒程式設計教育的紅本政策,市面上也湧出了一大批少兒程式設計教育 機械人程式設計教育的機構。格物斯坦認為 大多數家長都不太名二者之間有什麼區別,很多家長感覺是機械人程式設計更高大上,但又不知道是不是這麼一回事。其實,少兒程式設計類產品,大體上分為兩類 純軟體類或軟硬體結合類...
結對程式設計分析 中小學數學卷子自動生成程式
中小學數學卷子自動生成程式分析 本次課程任務要求我們在規定時間內完成乙個可以自動生成中小學數學題目卷子的程式,使用者為老師。主要是實現賬戶名密碼的驗證,賬戶的切換,根據賬戶型別生成不同難度的試題並查重。在此簡單分析一下搭檔的專案 程式流程 搭檔的程式流程圖如下圖所示,可以看到她的程式編寫邏輯十分清晰...
我國中小學在校生為何應該學習Python程式語言?
有人會問,從 basic 語言轉向 python 程式設計一定很難吧?非也。不僅不難,而且還要更簡單易於學習。為什麼?當今,我國中小學的資訊科技課程還在教授 basic 程式語言 無用的老古董 為什麼不教授現代而流行的 python 程式語言呢?後者既簡單,又通用,不知為何受到如此這般 冷落 我們要...