

當前,我國信息技術產業發展面臨巨大挑戰,編程作為構建現代信息社會的重要工具,其作用和價值需要重新審視。綜合編程教學不同的思路和想法,筆者認為,編程教學的核心是算法,信息技術課程應加強算法教學。之所以需要“再議編程教學”,意在回顧筆者所經歷的40年中小學編程教學歷程,闡釋編程教學的價值,為后來者開展面向未來的編程教學提供借鑒和參考。
中小學編程教學發展概述
(1)編程教學起步于可編程計算器。北京景山學校的何子嵐先生早年留學日本,他的日籍朋友操野好道1978年來北京景山學校參觀訪問,介紹日本中小學的教學理念和經驗,還贈送了一些彼時很先進的掌上電子游戲機和可編程計算器。同年,游銘鈞先生(時任北京景山學校校長)指定沙有威和章淳老師在景山學校開展可編程計算器的教研活動。
(2)出現在中小學的第一批計算機就是用來開展編程教學的。1979年8月方毅同志將他出訪美國帶回來的一臺個人電腦轉贈給北京景山學校。這臺電腦附帶APL/S插卡(另有一些家庭賬務管理卡、游戲卡等)。APL是陣列式語言,/S表示固化的是APL的一個子集。由此,拉開了我國地區中小學計算機編程教學的序幕。
沙有威老師在章淳老師和陶振宗先生(時任人民教育出版社信息室主任)的幫助下,編寫了APL/S語言程序設計的教案,在計算機課外小組進行編程教學。此后,北京景山學校又陸續購置固化了BASIC語言的TP-803、APPLE、LASER/310等計算機,教學的主要內容也只能是BASIC語言程序設計。
(3)出現在中小學的第一本計算機教材是也只能是教編程。20世紀70年代中期,我在景山學校配合何子嵐先生從事綜合理科教改試驗?;谠撛囼炛械摹芭囵B新知識的生長點,實現對學科前沿知識的實時跟蹤”這一理念,我將彼時看來還十分神秘的電子計算機的相關知識編入了綜合理科(五年級)課程。
1982年,在既有的綜合理科教材相關內容的基礎上,我編寫了《微電腦學習手冊》。這是我國大陸地區中小學出現的最早的計算機教材。
(4)第一個《計算機教學指導綱要》是也只能是以編程教學為主。1995年,我和呂品、陳星火老師受全國中小學計算機教育研究中心委派制定《中小學計算機課程指導綱要》?!吨行W計算機課程指導綱要》設定了五個教學模塊,編程雖是其中一個模塊,但占用2/3的課時。
20世紀80年代至90年代中期,是我國中小學編程教學蓬勃發展的黃金期,培養了一批編程高手。他們在國內外的程序設計競賽中獲得獎項,其中的一些佼佼者現已成長為我國IT業的中堅力量。這一時期初步形成了頗具規模的能勝任編程教學的專職(或兼職)教師隊伍。
(5)所謂的“災難說”,導致了“淡化”編程教學。1995年上半年,聯合國開發署的首席技術顧問Dwight W.Allen博士到我國進行有關中小學計算機教育的短期考察。他寫了兩篇考察報告:《重新考察中國中小學的計算機課程——警告》和《中國中小學計算機教育的未來》。
Allen認為,“現在計算機已成為教育的工具而不是教育的目標”,中小學計算機課程講授算法和程序設計是錯誤的甚至是“一場災難”。
這兩篇報告未在我國的媒體上發表,但有專家以基本贊同的語氣,在公開發行的報紙上肯定了報告的觀點,導致以“課程整合”取代信息技術課程的趨勢和政策導向。全國多數學??车袅艘跃幊探虒W為重點和突破口,旨在培養學生信息素質和思維能力的教學內容。
我曾撰文和發表談話(《關于計算機與基礎教育相結合的再思考——兼評Allen博士的訪華考察報告》《計算機學科教學中的十種關系》《課程整合是否還要開設<信息技術>課——郭善渡先生答記者問》等)力圖扭轉局面,結果只是包括北京景山學校在內的少數學校的教師頂住了壓力,繼續編程教學。
(6)近年來,編程教學重新被重視,令人欣慰,但有關編程教學的教育價值、目的、意義、方法等問題,仍眾說紛紜,莫衷一是。
前事不忘后事之師,故有必要舊話重提。這些“舊話”絕非一個新造詞組“計算思維”所能概括。
編程教學的價值
(1)現代信息社會最重要的人工語言就是計算機語言。人是符號動物。符號通常可分成語言符號和非語言符號。在各種符號系統中,語言是最重要的,也是最復雜的符號系統。語言包括自然語言和人工語言。
思維是符號操作。頭腦中的思維活動是憑借內部言語進行的。符號及其相互聯系既是信息的外在形式和載體,也是認知過程(學習)的結果——將新的認知所得與“原意識”(原符號系統)重構,內化為“新意識”(新符號系統)。
符號系統是個體思維產生的基礎。是否掌握了豐滿的符號系統,以及使用符號系統的精確程度和熟練程度決定了使用者的思維水平。
(2)計算機語言是思維的工具和載體。培養和提高學生的思維能力是基礎教育的重要任務。語言(母語、外語、計算機語言)教學不可淡化,更不能缺失。有人認為學生未必需要使用外語,且翻譯軟件日趨成熟,主張取消外語課程;有人認為多數學生將來不從事編程工作,主張取消計算機語言和編程教學。對這種與教育的根本宗旨背道而馳的短視的主張,我始終不敢茍同。中小學學生學習一點計算機語言和編程,不僅具備了繼續深入學習計算機科技的很好的“突破口”和“生長點”,而且有助于學好自然語言。
(3)計算機程序設計以動態數據處理形式反映客觀世界數量變化及運動過程。變動性、發散性、時序性是計算機程序設計中動態思維的重要特點。計算機程序設計可以有效地對學生進行動態思維訓練。動態思維方法是分析問題、解決問題,特別是循時序不斷變化的問題的重要方法。
動態思維訓練是與傳統數學、物理等學科運用公理系統進行的演繹思維訓練相平行的另外一種重要的思維訓練。同時,計算機程序設計是培養學生創造力的一個極好手段。
過去人的思維成果只能物化為自然語言和文字,這種形式的成果,不通過人是不能自動運行的。而計算機的程序存儲和自動運行,使物化的思維在計算機中高速度地自動運行,從而實現了自動化生產、自動辦公、自動管理等。
(4)可以將適用于中小學教學的計算機語言視為一種“模型”。它應具有簡便易學的特點,但不一定“實用”,更不必是當前在職程序員使用的語言。編程教學應使所有學生終生受益。中小學生今天的學習要為將來服務,這就要求學習的內容必須是基本的和可遷移的。我們不敢茍同的是那種試圖把現在的教學內容同若干年后學生走上工作崗位時的實際需要簡單地和直接地一一對應起來的主張。
實現編程教學目的的核心內容是程序的讀寫、算法的分析,而不必苛求該編程語言本身的所謂“先進性”。根據心理學的研究成果,十多歲孩子的形式運算能力已逐步形成,這正是學習利用計算機語言解決問題的大好時機。在兒童形式運算能力發展的初級階段,可以用圖形化語言編程以降低難度和培養興趣,但對于較高學段的編程教學來說,仍使用圖形化編程替代代碼編程,則只能說是一種退步了。
(5)信息技術課程應加強編程教學 。由于人工智能、機器人等技術的快速發展和普遍應用,數學、物理中相關計算機科學的諸多領域,如布爾代數、編碼、圖論、隨機數與MonteCarlo方法、門電路、傳感器、納米技術等都有了長足進展和廣泛應用。這些內容理應在中等數學和物理教材中有所體現或滲透,但囿于多方面的制約,現有的中學數學和物理課程難以勝任,而我們既往的實踐證明,信息技術課程中的編程教學能較好地滿足這些要求。
作者單位:北京景山學校