吳俊杰
編者按:在科技發(fā)展日新月異的今天,信息技術教學已經遠離了開、關機還需要反復講解的時代,三歲孩童熟練地擺弄著iPad已非奇事。自策劃了“Scratch來了”這一專題之后,編輯深刻感受到研究程序語言的老師的可愛,他們的執(zhí)著、他們的探索,使得程序教學不再那么枯燥,煥發(fā)出勃勃生機。因此,雜志特別策劃了這一專欄,將陸續(xù)刊發(fā)一些程序教學領域有代表性的教學實踐。也期待更多老師投身到程序教學中去,通過自身的踐行,推動程序教學的復興。
從信息技術學科還被稱作是“計算機”的時候開始,程序教學就一直是信息技術教學的重要教學內容,但是期間經歷了一些波折,由于應用軟件教學的需求和信息技術課時的限制以及程序教學自身的有效性問題,程序教學的教學內容曾經一度被弱化。但近些年來,伴隨著家用電腦的普及和傳統(tǒng)應用軟件使用難度的下降,越來越多的一線教師開始自發(fā)地尋找各種信息技術的教學載體。在這個過程中,各種各樣的程序語言和與程序教學相關的教學內容、教學模式被挖掘出來,這一過程不是某種編程語言“一統(tǒng)江湖”,也不是一種教法突然地解決原本限制程序教學發(fā)展的所有問題,我們看到的更多的是一種自覺的、百花齊放的行動,很多信息技術學科的研究者開始自發(fā)地研究程序教學的若干關鍵性問題,出于對學科發(fā)展負責任的態(tài)度在小步地嘗試,形成了若干的小團體和網絡社區(qū),本文對他們面臨的一些共性的問題和困難做一些梳理,并非總結,期望是一個聚賢帖,期望更多的人加入到程序教學的若干重大問題的研究和實踐當中來。
程序教學的合法性
任何一個學科都存在其合法性的問題,學科的合法性并不僅僅來自于行政命令上的合法性、課程標準中的合法性,作為一個獨立的教學內容,其內容要能夠自證其合法性,這種合法性可以包含有用性、有效性、前瞻性三個維度。
信息技術像鋼鐵俠穿的盔甲一樣,對于人而言是一種“加持”,人們通過Photoshop可以畫出惟妙惟肖的圖像,通過Excel能夠快速完成數(shù)據(jù)的計算,這些都是對人的能力和效率的一種提升,而其背后就是程序和邏輯,編寫程序一定是有用的,而且“盔甲”的功能越強大,人們對盔甲背后的程序的興趣越大,但是其用處受到程序教學有效性的影響。
班級授課制面對的是差異非常大的普通學生,一個教學內容要讓所有的學生達到一個基本的標準,憑借教師在教法上的技巧,難以保證教學的有效性和學生興趣持久的保持,加之應用軟件的豐富導致了程序教學的式微,但是隨著像Scratch等圖形化程序語言的發(fā)展和機器人等教具的引入,從而有可能解決教學有效性的問題,使得教學的有用性更加穩(wěn)固。
在一系列的科幻作品中都呈現(xiàn)過對未來世界的描繪,大多數(shù)人和他們的“盔甲”的關系可能是使用者、選用者和設計者。在平臺壟斷的背景下所有人都是使用者,如果有很多平臺和公平競爭的可替代選擇,一般軟件素養(yǎng)的人就可以成為軟件的選用者,但是如果避免一個選用者的世界變成使用者的世界,唯一的出路就是讓大多數(shù)人成為設計者或者通過編寫程序的學習使他們成為更加理性的選用者,這是程序教學的前瞻性所在。
程序教學的研究范式流變
程序教學復興的過程,不是簡單的重復之前的做法,而是在對信息技術的理解不斷深入的基礎上,為了證明和促進程序教學的合法性得以成立,在繼承的基礎上出現(xiàn)的一系列自主的實踐。在這個過程中,普遍的研究視角和思路導向出現(xiàn)了一些變化,我們稱為研究范式的流變。
首先是從關注和引進各種各樣新的程序語言到關注新的做法在現(xiàn)有做法當中可能的位置;其次是從尋找新鮮有趣的教學案例到探究各種有趣的案例的內在規(guī)律;再次是從對程序語句的簡單了解和雙基的落實到學會自覺地運用程序解決問題;最后是從關注程序學習后人的能力的提升到關注程序學習過程中人對其自身特質的理解。
這四種變化代表著程序教學中的四個問題:在什么學段選用什么樣的語言,通過怎樣的體系化的課程設計可以保證教學的有效性,以及學生學習程序設計語言之后其知識和能力的有用性如何能夠盡可能長久的維持,最后從“人”的角度將程序設計教學導向從事功走向內求。
程序語言選用的梯度設計
隨著各種容易教學的圖形化編程語言的出現(xiàn),使得教學的程序語言選用成為了可能,根據(jù)不同的學段和教學目的選用程序語言成為程序教學研究者面臨的一個問題??傮w上來講小學適合圖形化編程語言;初中適合一款比較簡單的代碼語言;高中適合程序員在工作中使用的程序語言。但現(xiàn)在程序語言教學的有效性問題還沒有解決,很多地方高中的教師面臨的還是零起點的學生,對于零起點的學生,講授Scratch這種圖形化編程的語言也是合適的。上面說的這種梯度設計是針對各個學段都完成了有效的程序基礎之上的一種比較理想的設計,但是這種視角有助于我們確定一款新的“可編程環(huán)境”適用于哪個學段的程序教學。
程序教學案例的排布線索
信息技術教師的創(chuàng)造性很大程度上體現(xiàn)在教師設計教學案例和教學目標的余地很大,很多教師處理信息技術的教學內容以學生感興趣、教學容易組織為原則,這種原則本身沒有錯誤,客觀上保證了程序教學有效性的落實,但是缺乏頂層設計的教學,難以在較高水平上維持學生的學習動機,難以使學生突破程序學習的難點,難以實現(xiàn)從“寫程序”到“編程序”的轉變。頂層設計需要有一個內核和多條線索,內核可能是人知道自己適合做什么,線索可能包括程序語言算法的由淺到深、從軟件到硬件、從基礎知識到各個領域中的應用等。在程序語言的初級教學階段,可能是圍繞著語言來設計案例,但是到了高級階段,學生掌握了很多門程序語言后,就可以根據(jù)需求和每種程序語言的特點來選用程序語言了。
圍繞著程序語言選用的梯度設計和教學案例的排布線索,在具體的某一門語言的教學研究過程中,一定會涉及適合程序教學教法學法的研究、教學質量保證體系的建立問題,這兩個問題彼此相關,需要更多的人做踏實的研究和細致的工作。
教具的研發(fā)和教學實驗
程序的教學同樣需要教具,機器人可以是很好的程序教學教具,但是作為大班教學的教具,機器人設備需要重新設計,使其滿足容易維護、價格低廉、可以互操作的教學需求,與此同時還需要進行嚴謹?shù)慕虒W實驗來驗證儀器的教學效果和教學價值。未來編程的一種趨勢是從虛擬走向現(xiàn)實,對傳感器的編程和對輸出裝置的編程,成為程序教學的一個重要方向,但是這里需要注意兩點,一是機器人編程不能替代一般的軟件編程,機器人程序一般只包含一些特定的算法,像排序這類的算法則很少涉及,以機器人程序設計教學替代軟件編程教學是不合適的,另外很多機器人語言是被封裝好了的,其接口在便于入門的同時,也帶來了不求甚解的問題,未來學生還需要了解接口背后的原理;二是教具的引入要適當,機器人的各種傳感器和輸出設備作為程序教學的輔助工具可謂是“鮑參魚翅”,可是一開始就吃這些東西,很可能就會造成對“粗茶淡飯”失去耐心。另外,盲目地追求教具的先進性會造成教學成本虛高,不利于整個行業(yè)的長遠發(fā)展,但是總體上來講,程序教學教具的研發(fā)將是一個重要的研究領域,期望在未來,每個機房都能有兩個實驗柜,這將是一個重大的變化。
最后,隨著程序教學研究的深入,作為信息技術課程的一個重要組成部分,程序教學需要處理和信息技術其他教學內容的銜接、和同屬于技術領域的通用技術的銜接、從學科整合的角度出發(fā)還會涉及和物理、數(shù)學等相關學科的銜接這三個銜接的問題。此外,程序教學的研究并不僅僅是信息技術學科一門學科的研究主題,面對知識爆炸的挑戰(zhàn),面對跨越式教學的誘惑,程序教學是否能夠成為統(tǒng)整學科藩籬的一條新路,我們拭目以待。廣而推之,未來人們對于程序的認識水平,決定著人面對機器智能是否可以作為一個有尊嚴的個體存在,那么此時的教育抉擇和實踐,一定是一條充滿荊棘的道路,但是許多人都無法抗拒這條道路,即使它目前只是蜿蜒地閃著微光。