摘要:在介紹圖式理論概念的基礎(chǔ)上,分析程序閱讀的心理構(gòu)建過程,提出將圖式理論應用于程序設計語言教學,通過幫助學生主動構(gòu)建形式圖式并鞏固已有圖式,取得良好的教學效果。
關(guān)鍵詞:圖式理論;程序設計語言教學;程序閱讀
1 問題的提出
程序設計語言類課程是面向所有專業(yè)一年級學生開設的計算機基礎(chǔ)課程,以南華大學為例,非計算機專業(yè)為4學分64學時,工科采用c語言,文科選用VB語言。課程目的是通過學習程序設計語言,掌握基本的程序設計思想和編程方法,具備運用程序分析解決實際應用問題的能力。目前教學中普遍存在教學課時短、學生基礎(chǔ)參差不齊、教學以“語言”為主、上機以“驗證”為主、考核方式單一、重語言輕應用等問題,導致部分學生不知學為何用,甚至滋生厭學情緒,致使教學質(zhì)量不高。從語言學角度看,程序設計語言與外語同屬語言范疇,可借鑒外語教學取得的研究成果與成功經(jīng)驗。
2 理論基礎(chǔ)
圖式記憶結(jié)構(gòu),包括語言知識、社會知識、文化知識等。1932年,英國心理學家Bartlett首先使用了圖式(Schema)這一概念,用來解釋人類的高級心理活動。1980年,美國人工智能專家Rumelhart進一步發(fā)展完善了這一理論。圖式是大腦為了便于信息存儲和處理,而將新事物與已有的知識、經(jīng)歷有機地組織起來的一種知識表征形式,是相互關(guān)聯(lián)的知識構(gòu)成的完整的信息系統(tǒng)。
圖式理論的主要觀點是,人們在理解新事物時,需要將新事物與已知的概念、過去的經(jīng)歷及背景知識聯(lián)系起來,對新事物的理解和解釋取決于頭腦中已經(jīng)存在的圖式。圖式能促進理解,也可阻礙理解。如果輸入的信息與記憶中的圖式結(jié)構(gòu)不一致,會導致兩種情況,一種是拒絕接受與自己原有概念相反的信息;另一種是修正、增補原有的知識結(jié)構(gòu)、盡可能與新的信息一致。圖式理論將閱讀過程解釋為讀者所具備的背景知識和閱讀材料相互作用的過程。這種對讀者運用圖式知識進行語言理解和文本解讀的闡述就是圖式理論,現(xiàn)已被廣泛用于語言研究和閱讀研究。
根據(jù)圖式理論,程序閱讀的心理構(gòu)建過程基于兩個方面:一是程序文本提供的新信息;二是讀者已有的相關(guān)知識,如程序設計范式。這一心理過程的完成要求讀者利用記憶中的編程語言知識,以及過去的經(jīng)驗、程序設計范式和背景知識對程序所傳遞的信息進行加工編碼、聯(lián)想和預測,領(lǐng)會作者通過語言符號表達的意圖,從而達到與作者相互交流的目的。
按照圖式理論,學習者的圖式知識結(jié)構(gòu)分3種類型:內(nèi)容圖式(content schema):指文章內(nèi)容的背景知識,讀者對文章主題的熟悉程度;形式圖式(formal schema):指讀者對文章體裁結(jié)構(gòu)的理解程度;語言圖式(1inguistic schema):指學習者對詞匯、語法、習慣用法等語言知識的掌握程度及語言運用能力。
程序閱讀具有鮮明的學科特色,應擴展圖式知識結(jié)構(gòu)內(nèi)涵,如表1所示,內(nèi)容圖式(content schema):指程序應用的背景知識,如:N—tier、MVC、MVVC、ORM、SignalR等;形式圖式(formal schema):指一定的程序設計范式,如:順序、分支、循環(huán)、遞歸、控制流圖、事件響應模型、ADO.NET數(shù)據(jù)訪問模型、Web生命周期、設計模式等;語言圖式(linguistic schema):指編程語言的基本符號集合、語句、對象、控件、屬性、事件、方法等。程序設計語言教學本質(zhì)上是以某種特定編程語言為基礎(chǔ),傳授程序設計思想。它強調(diào)思維的定式,而非局限于語法語義本身,所以教學核心是幫助學生在頭腦中構(gòu)建程序設計有關(guān)圖式,尤其應注重形式圖式的訓練。
外語教學以“聽說讀寫譯”為訓練手段,程序設計采用“讀譯寫”作為訓練方法?!白x”指閱讀代碼;“譯”指理解他人代碼,從代碼中抽象出思想,如算法、控制流、數(shù)據(jù)結(jié)構(gòu)等;“寫”指編寫程序解決應用問題,將自己的解題思想用程序設計語言加以實現(xiàn)。3種方法都離不開對程序的閱讀理解,圖式理論是解釋閱讀過程的理論,所以教學中應指導學生主動地運用圖式理論,改善程序閱讀效果,進而提高程序設計語言教學質(zhì)量?!抖Y記·中庸》中使用“博學之,審問之,慎思之,明辨之,篤行之”來描述學習的層次,它指明了學習的一般規(guī)律。程序設計語言教學應遵循這一規(guī)律。“讀”是基礎(chǔ),該階段應博學、審問,即廣泛閱讀程序,掌握基本語法與常見范式;“譯”是提高階段,應慎思、明辨,即分析對比程序;“寫”是最高階段,應篤行,即學以致用,使用編程語言解決實際應用問題。
3 教學中的應用
根據(jù)上述分析不難得出以下結(jié)論,傳統(tǒng)教學模式以教師為中心,以語法為綱,主要分析講解語句,片面強調(diào)語法和算法的重要性,缺乏創(chuàng)新能力培養(yǎng),顯然有悖于圖式理論。因此,教學實踐中應以學生為中心,以應用HZrqgXiUzINjCoLmRl+4wA==為導向,以程序設計范式為核心,遵循“讀譯寫”學習規(guī)律,幫助學生主動地構(gòu)建形式圖式,激活擴充豐富已有圖式,培養(yǎng)創(chuàng)新能力、實際應用能力。
3.1 構(gòu)建形式圖式
因為學生沒有任何程序設計基礎(chǔ),頭腦中也就不存在相關(guān)圖式,所以首先要幫助學生構(gòu)建程序設計圖式。根據(jù)圖式理論,認知受已有圖式影響,因此構(gòu)建的圖式應盡可能確保其質(zhì)量,這將影響今后學習。我們從Microsoft OneCodeSample與微軟示例項目中精心挑選閱讀材料,保證程序代碼遵循統(tǒng)一的命名規(guī)范、編碼、注釋和文檔規(guī)范。以1~2個項目貫穿教學全過程,每次課都有一個UI,既容易激發(fā)學生興趣,又可以作為示例模仿,課堂以形式圖式講解為主,輔以圖片動畫便于理解加深印象。因為語言圖式比較簡單而且IDE工具提供智能提示功能,因此這一部分由學生自學掌握。部分形式圖式案例,如表2所示。
3.2鞏固已有圖式
因為新信息的獲取質(zhì)量取決于已有圖式,盡早激活已有圖式有利于學生對新圖式的理解和掌握,為此教學中采用了以下措施:①每次授課先回顧上次內(nèi)容以激活已有圖式;②采用螺旋模型逐步增加新信息以豐富擴充已有圖式,如表3所示;③聯(lián)系生活實際,列舉現(xiàn)實生活中或?qū)W習中遇到的問題,說明如何用程序設計思想進行解決;④邀請學生介紹課后練習的基本解題思路,與學生共同討論存在的問題及改進意見,刺激學生的學習興趣,激發(fā)學好程序設計語言的欲望;⑤由學生上機實踐,解決應用問題;⑥采取“書面考試+上機考試+綜合應用”的考核方式,引導鼓勵學生學以致用。
4 結(jié)語
上述方案自2009年起在軟件工程卓越班實施以來,已先后培養(yǎng)了3批學生,收效顯著。與普通班比較,實驗班學生不但熟練掌握了編程語言語法,而且能運用程序設計思想獨立完成課堂示例與課后練習,部分學生還編寫了宿舍管理、游艇出租管理、出租車計費等實際應用程序,自主學習能力、應用能力、創(chuàng)新能力明顯提升。
教學中應注意以下幾個方面問題:①應注重良好的工程規(guī)范,包括命名、編碼、文檔、注釋等;②教學設計時算法應通俗易懂,結(jié)構(gòu)應簡單明了,避免設計過度,盡量降低學習難度,培養(yǎng)學習興趣;③對普遍性問題,應及時指導解決,注重同伴教育,可挑選能力強有責任心的學生擔任技術(shù)負責人,負責課下答疑i④應有:意識地培養(yǎng)學生養(yǎng)成定期總結(jié)的習慣,鞏固已有圖式;⑤順應學生溝通方式的改變,充分利用QQ、微博等現(xiàn)代信息技術(shù),對教學情況及時掌握與干預;⑥充分利用網(wǎng)絡課堂等平臺,將知識顯式化,逐步形成組織知識。
圖式理論是解釋人理解客觀事物的心理過程,在程序設計語言類課程教學中科學運用圖式理論,改革教學模式與評價體系,指導學生主動地構(gòu)建其形式圖式、激活鞏固擴充豐富已有圖式,取得了良好的教學效果,值得借鑒推廣。