鄒 帆
(四川師范大學基礎教學學院,四川成都610068)
教育部在《關于進一步加強高等學校計算機基礎教學的意見》中指出,在大學教育教學過程中,要對計算機基礎教育給予高度重視,并明確提出要求培養學生的信息素養及計算思維能力[1]。同時,教育部高等學校計算機基礎課程教學指導委員會提出了大學計算機基礎教學4個方面的能力培養目標:①對計算機的認知能力;②應用計算機解決問題的能力;③基于網絡的學習能力;④依托信息技術的共處能力[2-3]。2010年,九校聯盟在首屆計算機基礎課程研討會上發表聯合聲明,確定將“計算思維”能力作為大學計算機基礎教學的核心任務[4]。
作為大學通識教育的重要組成部分,大學計算機基礎教學在高校學生的計算思維、信息素養等能力素養的教育方面承擔了重要職責。在計算機技術蓬勃發展、相關應用水平不斷提高的今天,高等院校計算機基礎教學迎來了新的挑戰和機遇,對教學內容、方法、模式等有了新的需求,因此,以提高學生計算思維能力為目的,構建更好的教學理論、教學模式、教學設計、實施教學過程成為計算機基礎課程改革的重要任務。筆者結合長期在一線的計算機基礎教學實踐工作,探討程序設計課程中培養學生計算思維的以項目為導向的教學方法——項目式學習(projectbasedlearning,PBL)教學模式,提出教學改革的實踐方略,以期為廣大教學同行探討新的計算機基礎課程的教學改革思路。
“計算思維(computationalthinking)是運用計算機科學的基礎概念進行問題求解、系統設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動”[5]。因此,在培養學生的計算思維能力時,除了要求閱讀、寫作和算術技能之外,還要求學生能運用計算機科學的基礎概念去分析解決問題、設計系統和理解人類的行為[3]。這將對學生的科學思維、邏輯思維、算法思維、效率思維、創新思維、倫理思維等思維能力產生很好的促進作用。
實質上,計算思維的核心是一種思維過程,有助于真實情況下的問題的有效解決。計算思維作為一種角度切入問題的解決,能夠清晰、抽象地描述問題,并將問題的解決方案表達為信息處理的流程[3]。培養具有計算思維的學生,即培養其學習如何將問題抽象,并更新為新的計算性表達,繼而發揮學生的工程思維,綜合處理、考慮問題解決的效率高低,判斷表達的準確性等。

表1 常見教學模式對比
構建主義理論的核心思想認為學習的過程是學習者主動建構知識的過程[6],知識不再是常規意義上的教材、影音素材、文字資料及教師的板書和演示等對現實的準確表征,而只是一種理解和假設[7]。因此,不同個體對知識理解的標準不再唯一,學生通過自己的個人經驗和知識背景,利用不同的個體方式建構對知識的理解,從而對知識體系和世界產生自身的認知。項目式學習是近年來在歐美國家新興的并被廣泛應用的基于構建主義理論的教學模式。學生們通過PBL這一動態的學習方法主動探索現實世界的問題和挑戰,從中領會到更深刻的知識和技能,探索的問題范圍跨越小學教育到成人教育。
研究表明,PBL是一種以學生為中心設計執行項目的教學和學習方法,可以有效提高學生的學習效果[8]。在一定時間內,學生通過設計構建項目、解決問題并成功實現項目的過程來解決實際問題獲取知識。需要注意的是,項目式學習過程并不關注學生們可以通過一個既定的方法來解決這個問題,而更強調學生們在試圖解決問題的過程中發展出來的技巧和能力,包括獲取知識、計劃項目以及控制項目的實施、加強小組溝通和合作等。
基于構建主義的項目式學習教學模式與傳統的教學模式相比,區別主要體現在改變了3個傳統教學的中心:①以課堂“灌輸式”教學為中心轉變為以實踐經驗為中心;②以教材為中心轉變為以項目為中心;③以教師為中心轉變為以學生為中心[8]。PBL教學模式與傳統課堂教學模式對比見表1。
PBL將學習過程劃分為4個關鍵的環節:問題的提出(propose)、方案的規劃(plan)、問題的解決(execute)以及評價和反思(judge),如圖1所示。每個環節中,老師都參與其中進行有效引導,根據項目主題的不同、學生表現的不同,有效調整自己的教學計劃和項目規劃。整個學習過程中,教師不再以主導身份存在,而是作為“隱形”的參與者,僅在某些關鍵時刻起到點撥、支架與教練的作用,不再是學生知識的唯一來源,而是幫助學生進行自我知識建構的促進者、學科專家、信息的咨詢者等,從而促進學生不斷思考,自發查閱相關資料,有效歸納、總結所學的知識與技能,培養學生的自主學習能力,進一步促進學生“計算思維”能力的構建,突出“學生為學習中心,教師為學習輔助”的核心教育理念。

圖1 PBL學習過程
面向對象的程序設計是計算機基礎課程中關于計算思維方法的典型課程,涉及程序設計結構基礎和枚舉、遞歸、回溯等大量的算法,這些都是典型的計算思維案例。從這個角度出發,筆者經過長期的一線教學發現,目前的大學計算機基礎教學中存在如下問題:
(1)大部分計算機教學者都在無意識地實現計算思維教學,而自己本身并不清楚。很顯然,未來需要大量地、系統性地開展目的明確的計算思維教學。
(2)不少計算機教學者并未認識到計算思維是人才培養的重要目標,只是將其作為一種基本技術應用技能而非人的基本素質。
(3)大部分計算機基礎教學最終產出的成果為一些軟件或小項目,并未幫助學生形成計算思維能力,未對其未來面向社會解決實際問題的能力的提升產生影響。
PBL教學模式最本質的特點是教師首先了解并掌握學生的興趣和需求,從教學的整體目標出發,尋找或設計匹配的項目,根據項目的不同進行相應的有針對性的指導。總之,在每一個PBL教學項目中,都需形成以學生為中心、以教師為輔助引導的學習閉環,如圖2所示。

圖2 PBL學習過程中的教學閉環
在學習過程中,將大學計算機基礎課程按類別劃分為若干個相對獨立的知識單元,每個小單元作為一個學習項目,進行理論、實踐互相融合的單元式教學,每個單元的教學都以應用相關知識點完成一個項目任務作為結束,并迭代至下一個項目單元的教學。每個相對獨立的項目都由學生自行管控處理。信息的搜集、方案的設計、項目的實施及最終的評估等環節也都由學生自己負責。最后,學生通過對項目的把控和推動,完成知識的構建過程。
基于上述的教學思路和教學實踐,建立基于項目式學習的有效教學模式具有5個關鍵要點:①與現實的聯結。知識的構建更貼近學生的生活,使學生在學習過程中感受到知識和他們的相關性,能夠更好地深入學習,激發學習動力。②嚴謹的項目。構建的項目式學習不能與課程標準背離,教師為學生設計的項目目標應與學習目標一致。③合作學習。讓學生在項目過程中開展批判型思考,提高學生和學生之間的合作、交流能力,并有效促發他們的創造力。④輔助開展學生主導的項目。讓學生能夠直接參與到項目的規劃和執行,以便學生更好地投入到學習中。⑤隨時評估。讓評估與項目式學習自然融合到一起,在上機實驗課中,學生的項目進展可以隨時反饋并且教師可隨時以輔助參與者的身份介入幫助并隨時退出,完成幫助學生完成自我評估和自我修正的學習螺旋過程。
在設計執行具體項目計劃的時候應該注意的幾點是:①PBL是以服務學生的學習為目標建立的,因此,學生在完成每一個目標的時候,需要自主學習并運用標準化的計算機基礎知識,培養自己的計算思維,鍛煉合作和自我管理等能力。②在項目執行過程中,需要引導學生自主思維,提出有意義、有挑戰的新問題。③在項目執行過程中,需要為學生提供適合提問、尋找相關解決問題的資源信息以及進一步思考提問的學習環境。④在具體項目中需要將知識點與現實應用和現實問題相結合,引導學生對真實世界的思考和觀察,從而以計算思維方式對現實世界中的問題進行合理分析和解決。⑤允許學生在項目完成過程中具有較大的自主選擇,包括計劃的制訂、修改、設計、反思、重構和評估等。⑥教師需要引導學生對所學的知識點、項目的完成進行有效地評價和反思,從而產生改進的需求,促發新的學習動機。⑦讓學生通過不斷地反思產生不同的反饋,從而不斷對項目執行進行把控和修改項目內容,完成項目產品的迭代,從而螺旋式提升學生的知識構建水平。⑧給學生提供以不同的形式展示其研究成果的機會,在展示過程中讓學生整理其知識體系,完善其知識構建。

圖3 雞兔同籠1.0版

圖4 雞兔同籠2.0版
在大學計算機基礎的系列課程中,面向對象程序設計是其中一門非常重要的課程,該課程的教學應該以鍛煉學生的程序設計能力,構造并提升學生的計算思維為重要目標導向。目前,國內的不同高校分別通過不同的計算機編程語言,如C語言、VisualBasic、C++、VisualFoxpro等,對面向對象程序設計進行教學,然而,不管采用何種程序設計語言,程序設計理念和計算思維方式本質相同。在大學計算機基礎系列課程之一的VisualBasic程序設計中有個教學片段為介紹程序設計的基本結構,包括順序結構、分支結構、循環結構。在大部分的傳統教學中,教師采用不同的教學案例對這3種結構進行介紹,相關知識點較為分離,相關性不強,學生不能夠很好地應用這些知識點解決實際的程序問題,現實應用和理論學習脫節。因此,筆者利用PBL教學模式,根據其教法思路和教學設計原則設計了“雞兔同籠”項目,以軟件工程的螺旋迭代式程序構建原則將項目分離成了基本功能實現(雞兔同籠1.0版)、已有項目細節完善(雞兔同籠2.0版)、符合用戶習慣需求(雞兔同籠3.0版),在一個項目逐漸完善的過程中對程序設計的順序結構、分支結構、循環結構分別做了引導和介紹,讓學生在項目完成過程中,實現知識的構建并對相關知識點的構建實現體系化的關聯,如圖3、圖4、圖5所示。
具體教學步驟包括:①情境創設。創設與知識點相關的情景環境,把學生引入到問題的思考中,自發尋求解決問題的途徑,通過總腳數F和總頭數H,得出雞的個數X和兔的個數Y。②引導思考。讓學生獨立思考,用已有知識探索解決問題的可能性,并尋求解決辦法,引導計算思維的產生。在本項目中,第一階段需要思考:如何通過已有F、H獲得X、Y,引入順序結構的介紹;第二階段需要思考:若用戶輸入不正確的H、F,是否報錯或仍要繼續計算,引導思考如何控制流程的走向,引入分支結構的介紹;第三階段需要思考:若用戶輸入錯誤的H、F,是否退出程序,或進一步完善程序使其符合用戶常規習慣,讓用戶有權選擇是否重新輸入,引入循環結構的介紹。③知識點引入。圍繞相關知識點,引入新的知識點的介紹,幫助學生實現“知識遷移”,通過教師示范將知識點帶入項目的解決過程。④提出新的項目需求。通過小組交流、討論及教師干預,探索項目完善的新的可能性并重復迭代2~3步。⑤協作學習。開展小組交流、討論,分工協作,共同思考并完成項目的完善。⑥學習評價。學習效果評價包括教師評價、自評和成員互評3個部分,通過項目完成情況和完善情況衡量。

圖5 雞兔同籠3.0版
近年來,計算思維作為人的基本思維能力,受到了廣泛關注,高校計算機基礎教學目標由簡單的技術技能的培養,開始逐漸轉變為學生計算思維能力的培養。以培養學生計算思維能力為導向的PBL教學模式應用于具體的教學中,有助于將以教師為主導的“灌輸式”講授的課堂轉變為以學生為主導的探究式主動學習、潛在吸收的知識構建的項目實踐過程。在此模式下,教學活動中全程以計算思維為思維方式,在學習過程中可以有效地拓展學生的計算思維維度,有意識并系統地培養學生計算思維的相關能力。期望以培養學生計算思維能力為導向的PBL教學模式的提出,能夠為高校計算機基礎教學中對計算思維進行系統化培養的教學模式探索提供一定的參考。
[1]教育部高等學校計算機科學與技術教學指導委員會.關于進一步加強高等學校計算機基礎教學的意見(征求意見稿)[J].中國大學教學,2005(5):11-18.
[2]教育部.高等學校計算機基礎教學發展戰略研究報告暨計算機基礎課程教學基本要求[M].高等教育出版社,2009.
[3]朱世敏,孫桂芳,張重陽,等.C語言程序設計教學中計算思維的培養[J].Advancesin Education,2014,4(3):36-41.
[4]何欽銘,陸漢權,馮博琴.計算機基礎教學的核心任務是計算思維能力的培養:“九校聯盟(C9)計算機基礎教學發展戰略聯合聲明”解讀[J].中國大學教學,2010(9):7-11.
[5]WingJM.Computational thinking[J].Communications of the ACM.2006,49(3):33-35.
[6]溫彭年,賈國英.建構主義理論與教學改革—建構主義學習理論綜述[J].教育理論與實踐,2002(5):17-22.
[7]肖鋒,辛大欣,耿朝陽.計算思維培養為核心的教學模式研究與實踐:以“數據庫原理與應用”課程為例[J].現代教育技術,2015,25(7):49-55.
[8]劉景福,鐘志賢.基于項目的學習(PBL)模式研究[J].外國教育研究,2002(11):18-22.