● 夏令營開場之關鍵詞:懸念
夏令營開場伊始,主講老師第一句話就是“誰愿意和我一起做傻瓜”,這個開場白引得學生哄堂大笑。老師似乎并不介意,繼續通過投影,運用編程語言,一句一句地列出了一個長長的程序,并激活程序,讓連接在線路板上的幾組LED燈或同時亮、或分組亮、或按照要求延時點亮……當老師停下手來的時候,詢問學生兩個問題“好不好玩”、“想不想自己試試”,回應很簡單,肯定前者、否定后者。
老師轉而點名活動中為數不多的高中學生:“請你運用課堂里學過的算法與程序設計知識,畫出流程方框圖來”,而高中生卻擺手表示這個知識點正是自己高中學業會考的失分點。老師并沒有介意,繼續熟練地在屏幕上將剛才的編程顯示轉換成另一個圖形編程界面。當猶如搭積木般的再次還原出剛才的調試結果時,就連小學生營員都驚呼太神奇,自告奮勇“我看懂了,好容易”。大同學們則幽幽地旁白:“要是我們當時考試用這套軟件,我怎么會失分?”即使如此,還是遭到了小弟弟小妹妹們的集體“嘲笑”,有些好面子的大營員拋出了一句經典的評語:“現在你們知道傻瓜也是需要技術含量的了吧!”哄堂大笑之下,學生們若有所思。
這個場景的設計,意在為老師接下來講解圖形編程、邁過編程語言這道坎做了充分的鋪墊和巧妙的過渡。其實,在備課過程中,老師們就選擇Arduino還是ArduBlock作為教學平臺,著實動了番腦筋。有競賽輔導經驗的老師,從培育競賽選手的習慣思維,贊成直接使用Arduino,畢竟ArduBlock還有不少BUG,不如前者開源充分,且配件的選擇也受到一定的制約,系統不容易做大。但更多的俱樂部志愿老師更趨向從ArduBlock向Arduino過渡,大家認為這不僅關系到能不能兼顧夏令營中眾多零起點小營員的接受能力,更重要的是要首先破除對編程的神秘感和恐懼感心理。于是,集思廣益之下,有了開頭的一幕。
● 夏令營進程之關鍵詞:合作
為了讓孩子們真正成為實驗游戲的主人。老師在接下來的輔導中,不再停留在讓學生模仿的階段,而是直接調用了一組非常繁復的圖形“程序”,要求學生在識讀理解的基礎上,嘗試優化這一程序。這個要求激起了同學們的熱情,但一段時間過后,大家都發現僅憑個人的力量,縱有新意,也總是不盡完善。于是開始主動要求老師修改規則,同意大家集思廣益。這時老師又說了一句話,讓孩子們都不好意思了,老師說:“誰規定了不可以交頭接耳,不可以團隊合作?是你們自己的內心從一開始就自我劃定了游戲規則!”
在這個場景的設計中,不僅強化了對圖形程序的理解,也訓練了營員的邏輯思維和解決問題的能力。為變圖形為抽象,接納Arduino做了鋪墊。而關于游戲規則的一段,則是老師的臨場發揮,倒也切中了學生思維定勢的死穴。
● 夏令營深化之關鍵詞:挑戰
夏令營注重批判思維基礎上的創新欲望培養,無論是上午的PC界面編程虛擬演繹,還是下午的實物組件配套實操,老師們都堅持讓學生、特別是小同學上臺嘗試,再啟發大同學給予指導。老師的教學角色始終半隱在幕后,只是在一些關鍵節點上,對走不出思維怪圈的孩子們給出了簡明扼要的方向提示。比如,有學生此前曾經學過App Inventor MIT,還未深入,只覺得與ArduBlock有些相似。老師就給出提示:App Inventor跟ArduBlock用同一個繪圖核心,都是從StarLogo來的,這讓學生恍然大悟。接下來他邀請幾位有基礎的同學,臨時創立了一個開源項目,用圖形的方式來重新編輯腳本。而指導思想恰恰源自ArduBlock、 Scratch#以及AppInventor……到夏令營尾聲時,他們已經能用HTML5 canvas描述函數以及簡單的邏輯,畫出變量常量以及整個流程,實現拖拽改變結構,最后生成相應腳本代碼。
這個場景預設,是希望讓同學們了解類似Arduino的圖形化環境還有很多,包括ArduBlock、Minigloq、Modkit、Scratch for Arduino、Mind Coder,等等。即使是在ArduBlock內部,也可以通過諸如repeat模塊規定執行次數,代替程序上的(val=0;val<255;val++)。老師甚至鼓勵同學們可以討論、挑戰下ArduBlock模擬器。
● 夏令營回顧之關鍵詞:重構
夏令營讓學生大呼過癮。夏令營課程猶如當年的美國車庫文化,以至于學生會調皮地大叫:“夏令營,開門吧。”
就連零起點的小學生營員,在嘗試ArduBlock隨便搭個框架居然可以生成代碼之后,在老師的指導下,也完成了可視化編程環境與程序語言環境的比較與過渡。一位小同學甚至在中午用餐的間隙,特意在爸爸面前現學現賣,并說了一句讓富有藝術家氣質的父親和老師們都感到震驚的建議:“這個圖形編程非常適合像你這樣看代碼就頭疼的電腦盲藝術家;我來教你,一定會讓你的作品錦上添花的?!边@句話給我們夏令營的組織方和志愿者團隊以很大的啟迪:我們的信息技術課程有著廣闊的天地,在培育學科成長的過程中,我們不僅要激活老師的成長沖動,也有必要透過學生、邀請學生、與學生一起重構我們的課堂、課程和學科,以及學科間的交叉和融合。
課程的定位決定了我們的夏令營設計理念。這一堅持五年的俱樂部夏令營活動自身也始終處于課程設計的自我開發、自我優化過程之中。我們雖然是在設計夏令營,但我們始終沒有忘記,課程的原意就是“學習的進程”(Course of study)。我們記得“Currere”的動詞形式是指“跑道”和“奔跑”,這樣理解課程的話,我們的著眼點就會放在個體認識的超越和創新意識的建構上,從而得出一種完全不同的課程理論和實踐。