摘 要:職業院校計算機專業的程序設計類課程是計算機教學中的難點,這些課程本身區別于那些傳統的知識型課程,教學方法也不能和知識型課程一樣。文章中筆者把程序設計看成是一種普通的心智技能,科學分解計算機程序設計的教學過程,借鑒認知心理學、心智技能的形成等教學理論,利用建構主義的教學模式指導計算機程序設計教學。
關鍵詞: 程序設計 心智技能 建構主義 課程改革
計算機程序設計課程是計算機類專業的基礎課,掌握了一門編程語言,就是打開了一扇通往計算機內部的大門。在學科體系的計算機程序設計教學中,研究者往往注重程序設計理論、程序設計方法、算法的研究,因為社會普遍把程序設計看成是一種高智商的活動,學習者也具備良好的知識背景。在職業院校中,學習者的認知結構、智能優勢完全不同,但由于普遍采用學科體系的教材、教法,造成教學效果低下。調查顯示,職業院校計算機專業畢業生很少能對口就業,很多畢業生的程序設計能力入門都達不到,更不用說專業課。這樣一方面造成國家教學資源的巨大浪費,另一方面“軟件藍領”人才奇缺,影響了國家軟件產業發展。如果把程序設計看成是一種普通的技能,可以在正常的教學活動中獲得,將對計算機教學產生深遠的影響。
一、計算機程序設計技能內涵闡述
1.技能
學習的目標就是掌握知識和技能,技能指通過練習形成的能完成一定任務的動作和智力系統。[1]技能是由一系列動作及其執行方式構成的一種活動方式,這種活動方式決定動作會不會做、熟不熟練的問題,而知識學習所要解決的是知與不知的問題。技能又可分為操作技能與心智技能。計算機教學中的中英文錄入、計算機組裝屬于操作技能,其他大部分技能都屬于心智技能,如編輯排版、計算機維修、程序設計等。了解技能的基本特點,有助于教師選擇合適的教學法,促進學生技能的形成。
2.心智技能
心智技能是通過學習而形成的合法則的心智活動方式。知識掌握是通過一系列的高級的心智動作實現的,心智智能是知識掌握中不可缺少的因素,它影響著知識掌握的整個過程。[2]與操作技能相比,心智技能具有“觀念性,內潛性、簡縮性”的特點,不易為人們直接感知和把握。心智技能的形成是外部活動逐步內化的過程。心智技能的教學在過去一直是欠缺的,結果直接導致教學效率低下。
加里培林于1959年提出了著名的心智活動形成的五階段理論,馮忠良等在長期的教學實驗過程中,對加里培林學派所劃分的階段進行研究,提出了原型定向、原型操作、原型內化的心智技能形成三階段論。這一理論對我國的中小學教育和職業教育產生了積極的影響。計算機類技能以心智技能為主,對計算機類教師而言,心智技能可以由知識遷移。由于學生的知識的缺乏,教師的這種遷移經驗不能適用于學生,必須另辟蹊徑,對心智技能的形成多加研究并應用于教學。
3.計算機程序設計技能
計算機程序是計算機所使用的語言,屬語言范疇,應與人類所使用的語言相近。從表面看,計算機程序由模塊構成,模塊由語句構成,語句由關鍵字構成,對應于人類所使用的語言的段、句、詞。從本質看,沃斯著名的程序定義的公式為:“程序=算法+語法+數據結構”,即按一定的結構把數據組織在一起,按解決問題的算法把數據處理的語句組織在一起就構成計算機程序。計算機程序所處理的對象是數據,處理的方法是算法。計算機程序設計課程除了語法、數據結構知識外,還有最重要的閱讀、寫作、解析技能。
從上面的分析不難看出,計算機程序設計課程中語法、數據結構知識,相當于語文課程中的字、詞、句,掌握這些是寫不出文章或計算機程序的,只有具備了一定的閱讀、寫作、解析技能,才能真正學好計算機程序設計課程。職業院校計算機專業的很多學生學了語句不知道怎么把它們組織在一起,想做個東西卻無處入手;也有學生看書挺明白的,可一坐到電腦前手就不聽使喚,思想也短路了,一寫程序就錯,這就是因為只具有閱讀技能,缺少寫作、解析技能。按心智技能形成的三個過程分析,“原型定向”階段不到位造成無處入手、缺少“原型操作”階段的強化訓練,結果不能順利進入“原型內化”階段。
二、計算機程序設計技能的建構主義教學
建構主義理論的內容很豐富,其核心為:以學生為中心,強調學生對知識的主動探索、主動發現和對所學知識意義的主動建構。[3]由于建構主義所要求的學習環境得到了當代最新信息技術成果的強有力支持,這就使建構主義理論日益與廣大教師的教學實踐普遍地結合起來,從而成為國內外學校深化教學改革的指導思想。
根據多元智能理論,職業院校學生的智能優勢在于形象思維和動作思維。因此,不能在學生的學習基礎、知識、學習方法上作過多要求,而應該運用心智技能的形成和建構主義理論開展教學,在各個環節發揮學生的優勢,避開學生的弱點,由學生的已有圖式進行學生的聯系、思考、協作訓練,建構學生的計算機程序設計技能。
1.原型定向階段的建構主義教學
原型定向就是了解“外化”或“物質化”了的心智活動方式或操作活動程序。[4]在計算機程序設計教學中,就是使學生了解計算機程序設計的活動結構,從而使學生知道該做哪些動作和怎樣去完成這些動作,明確活動的方向。從程序設計活動的結構來看,程序設計包括“一提(提出問題)、二建(建立數學模型)、三選(選擇算法)、四編(編寫程序)、五調(調試程序)”五個動作,核心動作是算法(可用流程圖或偽語言表示)。原型定向階段建構主義教學的主題主要圍繞這五個動作進行程序設計技能定向,使學生從“問題空間”向計算機“解空間”過渡。
意義建構的主題確定之后,接下來就是教學方法的選擇。為了借助于一定的物質形式使這種活動“外化”為原型(即實踐模式),讓學生多層次、多角度去定向,可選擇“多背景或多結構教學法”。教師可以借助多媒體在課堂教學中的多種應用建構“情境”。例如采用簡單易學的趣味例題,或圖、文、動畫演示等因勢利導引出教學內容,把學生難以理解的、抽象的知識變為學生可親眼看見、親手觸摸的知識,讓學生對程序設計語言產生感性認識,激發學生求知欲和學習興趣。在教學初期,需要把每步活動設計成教學卡片強化定向。使用時,按操作順序把它們擺在一張白紙上,每擺一張卡片,就按該卡片上方標明的步驟思考,并把結果填在下面的空框內。
原型定向階段的教學,只是程序設計技能形成的開端,要使學生形成熟練的技能,還需引導他們進行實際的操作。
2.原型操作階段的建構主義教學
所謂原型操作,即依據心智技能的實踐模式,把學生在頭腦中應建立起來的活動程序計劃,以外顯的操作方式付諸執行。不僅僅是依據原有的定向映象作出相應的動作,而且同時使作出的動作在頭腦中得以反映,從而在感性上獲得完備的動覺映象。[5]程序設計能力不是“教”會的,也不是“學”會的,而是“練”會的,是在程序錄入、運行、調試中鍛煉、體會出來的。因此,原型操作的建構主題是操作、操作、再操作,相應的教學方法為“支架式教學法”。
支架式教學是以前蘇聯著名心理學家維果茨基的“最近發展區”理論為依據。教學應從學生潛在的發展水平區開始,不斷創造新的“最近發展區”。支架教學中的“支架”應根據學生的“最近發展區”來建立,通過支架作用不停地將學生的能力引導到更高的水平。支架式教學由五個環節組成[6],下面以程序設計中最常見的“排序”問題分解教學的過程。
(1)搭腳手架:圍繞當前學習主題,按“最鄰近發展區”的要求建立框架。計算機排序的“最鄰近發展區”就是人工排序或最簡單的二個數的計算機排序,因此,腳手架可分別設計為:本班學生的身高進行人工排序、用計算機求二個數中最大者、三個數中最大者、三個數排序、本班學生的身高排序。
(2)進入情境:用動畫、幻燈片模擬,用網絡化多媒體演示、示范、訪問服務器上的資源等,將學生引入腳手架所設的問題情境。
(3)獨立探索:探索開始時要先由教師啟發引導,然后讓學生自己去分析,探索過程中教師要適時提示,幫助學生沿框架逐步攀升。例如,本班學生的身高進行人工排序總結解題過程為輸入(眼)、處理(腦)、輸出(嘴),得出計算機解題過程;用一條輸入(input或scanf)、處理(if)、輸出(print或printf)就可用計算機求二個數中最大者……沿潛在的發展水平區,不斷創造新的“最近發展區”。
(4)協作學習:進行小組協商、討論。
(5)效果評價:對學習效果的評價包括學生個人的自我評價和學習小組對個人的學習評價,評價內容包括自主學習能力、對小組協作學習所作出的貢獻、是否完成對所學知識的意義建構。
原型操作初期,學生要把五個活動的所有動作,依次按照順序一一作出,不能遺漏或缺失,而且每個動作完成之后,要及時檢查,考察動作的方式是否能正確完成。因為只有在展開的活動中,學生才能確切了解活動的結構,在頭腦中建立起完備的動作印象,同時也才能獲得正確動覺經驗及確保活動方式的穩定性。但當學生連續多次能正確而順利地完成有關動作程序時,應及時轉向內化階段,以免活動方式總停留在展開水平,阻礙心智活動的速度。
3.原型內化階段的建構主義教學
所謂原型內化,即心智活動的實踐模式向頭腦內部轉化,由物質的、外顯的、展開的形式變成觀念的、內潛的、簡縮的形式的過程。[7]職業院校的人才培養目標是學生職業素質和能力的形成,素質是由知識、技能、情感之間的遷移、整合與類化而形成的,學習材料相似性和學習目標與學習過程的相似性有助于這種遷移、整合與類化。因此,原型內化的建構主題是知識和技能的融合。相應的教學方法為“隨機進入教學法”。
事物的復雜性和問題的多面性,決定了程序設計的復雜性。在教學中就要注意對同一教學內容,在不同的時間、情境下,用不同的方式加以呈現。學生可以獲得對同一問題的多方面的認識與理解,這就是所謂“隨機進入教學”。這種多次進入,絕不是像傳統教學中那樣,只是為鞏固一般的知識、技能而實施的簡單重復。這里的每次進入都有不同的學習目的,都有不同的問題側重點。因此多次進入可使學生獲得對事物全貌的理解與認識上的飛躍,有助于實現技能的內化和能力的形成。隨機進入教學包括呈現基本情境、隨機進入學習、思維發展訓練、小組協作學習、學習效果評價五個環節。[8]例如,排序問題中,根據不同的數據特征、規模呈現不同的情境:冒泡排序、選擇排序、插入排序、快速排序、堆排序。
在程序設計語言課程后期引入一些實際問題的項目與課題,可使學生盡早進入計算機應用領域,與職業零距離接軌,進一步培養學生的邏輯思維、創新思維、團隊合作能力和職業素質。
小結
2005年我省制定的《江蘇省職業教育課程改革行動計劃》[9]明確了課程改革的總體要求和主要任務,在課程改革內容、課程的實施、評價和管理上形成了清晰的工作路線、實施方法和指導思想,課程改革已完成自上而下的指導性階段,正進入課改實施、試點階段。但職業院校從學科體系向職業能力體系的轉變任重道遠,本文僅從培養職業院校學生的計算機程序設計技能的角度,對計算機程序設計類課程的教學改革進行了探討,在課程標準、校本教材、教學設計、課程評價等方面還有大量的研究工作需要開展。
參考文獻:
[1][2][4][5][7]馮忠良.結構化與定向化教學心理學原理[M].北京師范大學出版社,1998年4月版:234,248-330.
[3][6][8]陳越.建構主義與建構主義學習理論綜述[EB/OL].http://www.being.org.cn/theory/constructivism.htm. 2002.06.17.
[9]江蘇省教育廳.江蘇省職業教育課程改革行動計劃[R]. 2005.11.
※本文是江蘇省職教科研課題《基于軟件行業細分的課程改革實驗研究》(課題批準號200643)的階段性研究成果。