●劉昕
以問題為中心加強計算思維培養*
●劉昕
當前大學計算機教育需要培養大學生的計算思維能力,在計算機課程中貫穿以問題為中心的教學模式,引導學生以發現問題、分析問題、解決問題的思路培養問題意識,從課堂講授、課外自主學習以及實驗訓練入手,多種方式滲透和激發學生的發散性思維和創造能力,以加強學生計算思維的形成與培養。
計算思維;教學模式;自主學習;問題導向學習
問題導向學習始于20世紀50年代美國的Case Western大學,問題導向學習(PBL)是以學生為中心的教學方式,偏重通過小組討論的方式進行以個案問題為基礎的提出問題、分析問題、解決問題的能力培養。Barrows認為問題導向學習是針對問題分析與解決過程中所進行的學習[1],通過特定問題進而整合相關知識的教學方法。許多學者對問題導向學習模式的構建、存在的問題進行了研究,并將該方法應用到計算機、金融等多種學科的教學,以及在網絡環境下的在線學習。
目前培養計算思維已經成為國際和國內大學教育的研究熱點。2010年《九校聯盟(C9)計算機基礎教學發展戰略聯合聲明》的核心要點也強調“需要把培養學生的‘計算思維’能力作為計算機基礎教學的核心任務”。[2]
2006年3月,周以真在Communications of the ACM上發表了論文《Computational Thinking》,提出了“計算思維”的概念和詳細定義[3]。周以真認為:計算思維就是通過約簡、嵌入、轉化和仿真等方法,把一個看來困難的問題重新闡述成一個我們知道怎樣解決的問題,提出了面向問題解決的系列觀點和方法。她認為大學應以學生“計算思維”的培養為核心,使“計算思維”成為每個學生應該具備的基本科學思維能力。學生在接受這種思維指導下的學習和訓練后,可以學習計算機科學知識,也可以學習其他專業的知識。
目前,計算思維已經開始納入各門計算機課程改革中。李廉提出以循序漸進的方式推進增強計算思維這一計算機學科課程的重大改革[4]。大學計算機課程已經以培養計算思維能力為核心進行課程改革[5],不僅僅將計算機作為一個狹義的工具[6],而是將思維訓練融入教學的各個環節中,進一步提升大學生的綜合素質和能力[7][8]。
基于以上分析,我們提出在計算機各門課程中以問題為中心改革計算機課程內容,在學生的課堂學習、課外研討和實踐應用中發現、分析并解決實際問題,使學生的計算思維能力成為21世紀每個大學生的基本能力。
《九校聯盟(C9)計算機基礎教學發展戰略聯合聲明》提出培養復合型創新人才的一個重要內容就是要潛移默化地使他們形成一種新的思維方式:運用計算機科學的基礎概念對問題進行求解、系統設計和行為理解,即建立計算思維。計算思維的形成是一種創造性的探索活動,包括“嘗試—探索—改進”的動態過程,學生在自主探索與合作交流中真正理解和掌握計算機的基礎知識與技能、計算思想和方法,以獲得應用計算機的學習經驗。從心理學角度看,學生要構建計算思維,需要主動地構建內部心理表征的過程,需要強調學習的主動性、社會性和場景性。即從場景中去發現能夠用計算機解決的問題,提出問題,又能自主分析問題,探索解決問題的途徑和方法,并在解決問題的同時發現新的問題。
問題導向學習的理論基礎起源于認知心理學,認知心理學強調學生的主動性,學生必須了解自己要學些什么,如何去學習,以及學生已經掌握的知識與新知識發生關聯,才能成功地內化新知識。問題導向學習以問題為學習的起點,偏重小組學習,學習過程以對話為主,注重學生的主動性。
以知識為中心的教學模式通常由教師控制教學知識點講解,沒有充分發揮學生的學習主動性,從以“知識為中心”的教學模式轉變為“問題導向”的教學模式,將問題貫穿于整個教學過程,使學生運用所學知識和已有經驗尋找問題、分析問題、解決問題,能夠讓學生積極主動思考,建構知識體系,提高計算思維能力[9]。計算機課程具有很強的實踐性,更適合采用發現問題、分析問題、解決問題的思路進行教學,因此以問題為中心的教學模式能夠培養學生的問題意識,是培養學生形成計算思維的重要手段。
以問題為中心組織課程內容,應采用分治的思想,把每門課程需要講授的知識體系分解為多個知識單元和知識點,明確每一堂課的講解內容和授課方式,對于每一個知識點設計合理的問題,繼續細化將問題分解,將與問題相關的知識點,滲透進教學的每個環節,并明確講明針對一個具體問題計算思維的形成過程,根據增強抽象思維能力的需要,增設課程中沒有的教學內容,以計算思維能力培養為核心改進計算機課程體系和教學內容的研究。通過課堂講授發現問題、分析問題并逐步解決問題,循序漸進,構建一個基于計算思維的教學體系。
課堂中大量采用問題實例進行講解,講解過程中啟發學生基于分治的思想思考給出的問題。首先從一個實際問題如何被發現,進而分析問題,抽象出問題的模型,將一個大的問題分成多個小的問題,應用掌握的知識逐一解決每個小的問題,最終串聯小的問題形成對整個實例的解決方案。例如讓學生思考在一個具體實例中需要解決的問題是什么,對于一個問題能夠采用的多種解決方案進行比較,根據一個實例的應用場景選擇最優的一種或幾種方案。一題多解方法非常有利于培養學生的發散性思維,它能融匯其所學的多個知識點,提高其運用掌握的知識解決實際問題的能力。
(一)發現問題
傳統的知識傳授方式下,學生掌握了知識點,但是不會分析實際的應用場景,不能將所學知識關聯進具體的場景,即缺乏發現問題的能力。
而問題導向學習是在學生學習新知識之前提出問題,通過問題驅動學生學習。問題的提出便于學生在識別知識的應用場景后自由提取相關知識,并發現解決問題所需要的新知識,進而產生獲取新知識的積極主動性。分析知識的應用場景能使學生將已經掌握的知識與將要學習的知識在解決問題的過程中進行關聯,建立起自己的知識結構,有利于分析其他相關應用場景,發現并提出與知識相關的問題。發現問題能夠激發學生的學習主動性,增強發散性思維和創新能力,拓寬了解決問題的途徑,有助于形成計算思維。
(二)發現錯誤
在課堂講授重要的知識點之后,為了檢驗學生對相關知識的掌握程度,在后續授課時,講解或課件中故意制造一些知識點的錯誤引起學生思考。在多次發現錯誤訓練之后,學生通常會在下課后或者課堂上提出課件中的錯誤,然后師生共同討論解決方案。授課中錯誤的出現引發了學生的興趣,帶動學生進一步思考如何改正錯誤,他們能夠運用已經掌握的知識提出解決方案。學生給出的解決方案有時候甚至比我們事先準備好的標準解決方案更加簡單有效。
通過發現錯誤這種方式,在課堂上明顯能夠激發學生的批判性思維,他們有了老師講的內容不一定正確的思考,就會帶著問題聽課,主動挑出錯誤,即使在正確的講解中,學生仍然能夠提出問題,思考是否還有更合適的解決方案。一個學生提出問題,另外的學生興趣也大增,會馬上思考該問題的原因和解決方案,形成大家共同參與討論的局面,群體智慧的優勢很快顯現出來,在很短時間內就能夠給出問題的合理解決方案,并且知識掌握較好的學生能夠糾正其他同學的錯誤。發現錯誤這種機制明顯調動了學生的學習主動性,有助于培養其發散性思維,也有利于發現問題。在其后大家一起討論,調動全班同學掌握的知識來分析這個問題,一個人提出自己的看法,其他同學進行修正,吸引全體同學共同參與課堂知識的學習,在討論過程中求解思路逐漸清晰,這正是探索問題解決方法的過程,非常有利于計算思維的形成。
通過理論作業督促課外學習。為了復習和鞏固課堂講解的理論知識,在每一個獨立的課程教學內容講解完成后設置合適的作業練習題,根據知識點中的重點內容設置不同的題目類型。學生完成理論作業可以提高其對知識的掌握程度和推理分析能力,從抽象層面進行計算思維訓練。
通過實際應用作業加強學生自主學習。學習一個完整的知識塊(如一個章節)之前,布置幾個應用該章節基礎知識的實際問題,由4-6個學生形成一個學習小組,選取其中一題或者自主選題,學生邊學習邊嘗試解決這些問題。在學習過程中能夠了解自己需要學習什么內容,怎樣去獲取相關知識,同組的同學能夠分工合作,共同完成一個選題的任務。在教師講授完完整的知識塊之后,留出一節課時間,由每組學生講解其選題、分析問題、形成解決方案的整個過程,并突出自己的亮點和創新。其他組同學可以對這個問題及解決方案提出質疑,通過討論確定是否他們采用的方案是合理的。每組的報告將會影響其平時成績。這種方式能夠使得學生利用課外時間主動學習課程的知識點,參與小組討論,解決問題的過程使得學生自身獲得了成就感,增強了學生的學習主動性。在對話的過程中,每個同學獲得相關知識信息,改變其內在的知識結構。整個過程深化了學生對知識點和對該知識點應用場景的理解,能夠將知識融入到思維意識中。課外搜集信息形成問題的解答,課堂上同學們之間的討論有助于知識的吸收和計算思維的形成。
計算機課程具有很強的實踐操作性,課程學習除了課堂講授的內容和課外自主學習,相應的實驗訓練也是非常重要的。每門課程的實驗內容采用章節實驗作業加綜合大作業的方式,從發現問題、分析推理到實際動手實驗驗證,提高學生的實踐操作能力,在實踐中加深知識的理解與應用。
對于每一種相對獨立的知識結構,結合學生自身所學專業設置不同的實驗課題,或由學生自主選題,使得學生能夠自己發現問題、提出問題、分析問題,完成課程中應該掌握的知識點的相關實驗,深入理解其所應用的具體場景,培養學生自主學習的意識和獨立實踐的能力。
問題導向學習偏重小組學習,課程進行到后半段時,擬定多個綜合內容的大作業,每個學習小組可以任選一題或多題,或者由學生根據其自身所學專業的具體情況自己發現問題,自擬題目。學習小組的學生共同合作,將一個大問題應用分治的思想分解為多個小問題,即將一個問題分成多個模塊,每個同學完成其中一個模塊,然后將多個模塊組合形成具備多種功能的綜合系統。每個同學總結在大作業完成過程中獲得的經驗和知識,分析研發過程中出現的問題以及如何形成解決方案,這種模式使學生通過團隊合作提高分析問題、解決問題的能力,同時通過反思問題的解決過程訓練思維方式,在綜合大作業的解決過程中學生逐漸將計算思維內化。
總之,在計算機各門課程中貫穿以問題為中心的教學模式,能夠培養學生分析問題解決問題的能力,非常有助于學生計算思維的形成。通過在課堂以問題為中心的知識講授,采用發現問題和發現錯誤的方法促進學生將掌握的知識應用到實際問題;以小組為學習單位的課外自主學習和實驗訓練提高了學生學習的積極性、主動性,增強他們分析問題解決問題的能力。
[1]H.S.BARROWS.Ataxonomy of problem-based learning methods[J].Medical Education,1986(6).
[2]九校聯盟(C9)計算機基礎教學發展戰略聯合聲明[J].中國大學教學,2010,(9).
[3]Jeannette M Wing.Computational Thinking[J].Communicationsof the ACM,2006,49,(3).
[4]李廉.計算思維:概念與挑戰[J].中國大學教學,2012,(1).
[5]董榮勝.計算思維與計算機導論[J].計算機科學,2009,(4).
[6]陳國良,董榮勝.計算思維與大學計算機基礎教育[J].中國大學教學,2011,(1).
[7]朱鳴華,趙銘偉,趙晶等.計算機基礎教學中計算思維能力培養的探討[J].中國大學教學,2012,(3).
[8]劉昕,石樂義,亓雪冬.以計算思維為導向的數據結構課程教學改革[J].計算機教育,2013,(16).
[9]楊芳.多問題中心建構式案例教學探討[J].當代教育教學,2013,(1).
(責任編輯:何言)
劉昕/中國石油大學講師,博士,研究方向為網絡安全
山東省教學改革項目(編號:2012148)和中央高校基本科研業務費專項資金資助(編號:13CX02027A)。