魯志建
【摘 要】Python是近幾年迅速流行而普及的一門程序設計語言,Python語言課程化也將成為孩子學習的一種趨勢。許多地區(qū)已經(jīng)把Python編程基礎納入信息技術課程和高考內(nèi)容體系,2017年公布的江蘇、浙江信息技術高考改革方案中,都將教材中程序設計語言由VB改成了Python。初中階段開展Python程序設計教學的首要問題,是如何激發(fā)學生學習的興趣,其次是如何探索行之有效的教學方法,幫助學生邏輯思維能力提升,最終達成學生信息素養(yǎng)的培養(yǎng)目標。
【關鍵詞】程序設計;python;教學方法;信息素養(yǎng)
一、程序設計教學現(xiàn)狀分析
目前,大多數(shù)學校還是延續(xù)VB語言教學,少數(shù)學校采用了Scrath以及APP Invertor等語言。這些程序設計語言主要分為兩類:一是塊語言;二是代碼語言。塊語言的學習適合程序設計的初學者,譬如小學階段學習Scrath是相當不錯的選擇。到了中學階段,學生對程序基本結構已有一定的了解,加上認知水平的提高,完全可以學習代碼語言,從而更好地理解程序設計的算法知識。
1.傳統(tǒng)程序設計教學中學生的困惑
以大多數(shù)學校仍舊采用的VB程序設計為例,在代碼語言中,VB作為一種面向?qū)ο蟮某绦蛟O計語言,其缺點也是顯而易見的:VB發(fā)布至今已經(jīng)20年了,對于技術迅速更替的信息技術領域,這顯得太古老了;學生在寫VB代碼之前需要花大量的時間設計程序界面,設置控件屬性,并不能聚焦到程序設計的算法中去;在日常生活中幾乎沒有很好的應用,這會讓學生感覺到程序設計距離生活太遙遠,不實用。
2.為什么選擇Python
Python是近幾年隨著人工智能的流行而迅速普及的一門語言,未來是AI的時代,Python語言是最接近人工智能的語言。所以掌握了Python語言,是孩子未來發(fā)展的基本能力之一。在筆者看來,Python語言是最適合孩子學習的語言之一,相比C++或Java,Python是一門非常具有人文情懷的編程語言,簡單易學,語法優(yōu)雅,適合新手入門使用。
二、借力Micro:bit,激發(fā)學生興趣
筆者曾經(jīng)開設過C++課程,在DEV C++環(huán)境下編寫調(diào)試C++程序,由于編譯運行在DOS窗口,而且解決的問題一般都是數(shù)學問題,時間長了,很多學生都沒有足夠的耐心了,覺得枯燥。這對中學階段想利用興趣引導學生入門的目標而言,學生喪失興趣是致命的。所以,在初學者階段,最好能夠兼顧到趣味性和實用性,在趣味項目中完成程序設計算法的學習。
BBC micro:bit是一款由英國廣播電視公司(BBC)推出的專為青少年編程教育設計的微型電腦開發(fā)板,是由微軟、三星、ARM、英國蘭卡斯特大學等共同完成開發(fā)。在英國、美國、加拿大等國,已經(jīng)有很多學校利用它來進行創(chuàng)客教育,STEAM跨學科教學、程序設計教學。筆者認為:基于micro:bit的Python教學有能讓學生快速體驗程序設計的樂趣。
micro:bit有眾多的開發(fā)環(huán)境,常用的有JavaScript Blocks Editor在線編程環(huán)境、PythonEditor在線編程環(huán)境、Mu離線軟件、BXY Python Editor等等,從塊語言到Python語言,甚至微軟的JavaScript語言都支持,其中Python Editor、BXY Python Editor、MU等可以直接用Python語言進行開發(fā),程序燒錄到開發(fā)板后可查看運行效果,筆者通過一個學期的實踐,覺得BXY Python Editor對Phtyon代碼的支持程度更好,軟件界面也很直觀,比較穩(wěn)定,推薦使用。Python程序的上手難度小,筆者通過短時間的學習,制作出了溫度計、簡易動畫、跳動的心、擲骰子、指北針、計步器以及簡易的摩斯電碼發(fā)報機等。
三、利用項目式組織教學、提升學生思維能力
在傳統(tǒng)程序設計教學中,一般都是按照基本語法、三種基本結構、常用算法這樣的知識體系來組織教學,在這種教學方法中,知識點之間是獨立的,加上中學生信息課一周只有一節(jié)課,學生很容易學了后面忘記前面,在實物編程中,很難以常規(guī)的知識體系來組織教學。
項目式教學法,是學生在教師指導下,將一個個獨立的項目交給學生來完成。項目式教學法有著項目為主線,教師為引導,學生為主體的特點,所以這種教學方法是比較適合程序設計教學的,所以筆者認為,采用項目式的教學方法更加適合基于micro:bit的Python教學,采用這種方法可以將前后知識點進行整合,讓學生既學習新知識又能復習舊知識。通過一個個項目,能把同學們零散學到的知識全部串聯(lián)起來, 讓他們感覺到自己所學的知識終于有了一定的成果,他們自己也會感覺很有成就感,也會產(chǎn)生一種利用計算機解決實際問題的強烈愿望。
通過實踐研究,筆者采用了以下方法開展教學:
1.以一個獨立項目為一個章節(jié)的容量。一個章節(jié)就是一個獨立的小項目,一般情況下,都要求一節(jié)課完成。比如:“擲骰子”“跳動的心”,當然,可能會有些任務比較復雜,也可以把內(nèi)容分成兩課時,所以一個學期的教學內(nèi)容基本上就是十五個章節(jié)。
2.一個章節(jié)包含一個基礎項目加一兩個拓展項目。因為學生在學習程序設計過程中會存在較大的差異,基礎任務是要求大多數(shù)甚至全部同學都要完成的任務,在完成了基礎任務之后, 學有余力的同學可以嘗試著去完成拓展任務,拓展任務的內(nèi)容也是要基于基礎任務。比如在學習循環(huán)這個知識點的時候,我用的基礎任務是“會呼吸的燈”,拓展任務是“關公巡城”,都是關于循環(huán)語句這個知識點,但是難度加大了。
3.每個章節(jié)包含1-2個Python的知識點。項目式教學和傳統(tǒng)的程序設計教學不一樣,不是按照知識體系來建構教學內(nèi)容的,而是將程序設計的知識點分散到了各個項目中去,一個項目中除了要用到之前學到的知識點之外,還需要包含1-2個新的知識點, 設計項目的時候應圍繞新的知識點設計,比如:在“擲骰子”這個項目中,隨機數(shù)是主要學習的知識點,除了隨機數(shù)之外,還要求學生用到之前學過的顯示文字和顯示圖像的語句,新舊知識點有串聯(lián)。
項目式教學方法不同于傳統(tǒng)的按照知識體系來組織教學,但也是程序設計中一種常用手段,是比較容易激發(fā)程序設計初學者興趣的教學方法。
四、注重教學過程、優(yōu)化教學方法
信息技術教育中,在程序設計教學中,要特別重視學生信息素養(yǎng)的培養(yǎng),讓學生在學習程序的過程中,不斷提升自己的學習能力和創(chuàng)造能力,學會分析問題,解決問題,給予學生“代碼”以外的理念,不斷激發(fā)學生的創(chuàng)作熱情和思維,這就需要我們在程序設計教學過程中不斷優(yōu)化自己的教學方法和手段。
1.分層教學。在程序設計學習過程中,學生的興趣、能力會存在一定的個體差異,所以程序設計教學中必須采用分層教學的模式。在一個項目中,基礎任務一定是要比較簡單的,大多數(shù)同學都可以完成的,拓展任務要準備1-2個,而且要有梯度,讓學有余力的同學完成。
2.培養(yǎng)學習能力。其實自學能力尤為重要,如果學生只是依賴學案或者模仿才能完成,他們所學知識將很快被淘汰。所以在教學過程中,教師要給予學生方向性的指導,鼓勵學生自主學習,培養(yǎng)自主學習能力。
3.注重實踐。學習程序設計的目的是讓學生掌握程序設計的思想,提升利用編程語言來解決實際問題的能力,所以,教學重點應該放在分析問題的思路上,學生應該通過大量的實踐來構建程序,解決問題。
4.尊重學生學習的方式。在剛開始接觸程序設計學習時,很多學生習慣性的去“抄程序”,這很正常,很多人都經(jīng)歷過這個階段,畢竟以初中生的認知水平以及課時設置注定學生不可能記得住太多,如果不抄,可能在一開始連很多簡單任務也完成不了,學習的興趣可能就此喪失了。但是抄不能一直抄下去,抄的過程要求學生帶著理解,下個階段就可以嘗試著去修改程序,比如在循環(huán)結構中讓學生去修改初值、終值和步長,從而改變循環(huán)的次數(shù),如果學生會修改了,說明這個知識點也掌握了。再下個階段就可以自己去創(chuàng)作程序,比如學生利用隨機數(shù)做了“擲骰子”,老師要求自己去創(chuàng)作一個隨機產(chǎn)生“剪刀石頭布”的程序?!俺?、改、創(chuàng)作”這三個階段既是一般學生學習的方式,也可以作為課堂的分層教學,針對不同的學生采取不同的方法。
五、小結
經(jīng)過筆者一個學期的實踐研究,基于BBC micro:bit的Python程序設計課程的教學效果較好,不僅能提升學生的理論能力,而且對動手實踐能力和創(chuàng)新能力均有良好效果,很好的契合了初中生的認識水平和興趣愛好,基于BBC micro:bit開展Python程序設計是一個很好的選擇,具有一定的推廣價值。
【參考文獻】
[1]劉衛(wèi)國,奎曉燕.Python語言程序設計教學體系建設[J].計算機教育,2017(08)
[2]唐永紅,龔安.程序設計語言實驗教學探討[J].電氣電子教學學報,2006(03)
[3]嵩天.程序設計基礎[M].高等教育出版社,2014
[4]王軍英,馬紅梅.C語言程序設計教學存在的問題與對策[J].教育理論與實踐,2015(03)
[5]嵩天,黃天羽.Python語言程序設計教學案例新思維[J].計算機教育,2017(12)