艾明晶 李瑩


摘要:大學計算機課程是大學通識教育的重要組成部分,與大學數學和物理同等重要,其核心價值在于培養學生的計算思維,促進學生創造性思維的形成。文章分析大學計算機基礎教學目前面臨的危機與挑戰,闡述新形勢下大學計算機的課程定位,著重從課程體系構建、教學案例設計、教學方法改革等幾個方面探討圍繞培養學生計算思維能力的核心任務進行課程改革的基本思路和措施,
關鍵詞:計算思維;大學計算機;課程體系;教學案例;教學方法
0.引言
自20世紀90年代末教育部倡議在大學開展“計算機文化”教育至今,大學計算機基礎課程經歷了以流行軟件學習與掌握為主的“計算機文化基礎”教育階段,以素養和應用驅動的計算機共性知識講授為主的“計算機應用基礎”教育階段。課程名稱也從計算機文化基礎變成大學計算機基礎,直至現在的大學計算機。這是因為隨著國家人才戰略的實施以及國家對于人才培養質量的高度關注,計算機教育在大學整體教育中的重要性將會更加突出,計算機成為在通識教育中培養具有現代科學思維精神和能力的三大必修課程(數學、物理、計算機)之一。課程名稱的變化反映了信息技術的發展、計算機教育的普及、社會的需求變化以及學生計算機基礎的提高。
當各高校開始提倡素質教育、給學生更大的自學空間、不斷壓縮學時的時候,大學計算機基礎首當其沖受到極大的沖擊,學時被大大壓縮,少數學校甚至取消了該課程。這不禁讓從事計算機基礎教育的教師和專家學者感到矛盾和困惑:該課程到底該如何發展?究竟還有沒有存在的必要?我們的學生真的不需要學習計算機嗎?他們需要學什么?
2006年,美國卡內基·梅隆大學:(CMU)計算機科學系主任周以真教授(Jeannette M.Wing)首次明確提出了計算思維(Computational Thinking,CT)的概念,為計算機教育的改革指明了方向。2010年7月,在首屆“九校聯盟(C9)計算機基礎課程研討會”上,“985”首批9所高校就大學如何在新形勢下提高計算機基礎教學的質量、增強大學生計算思維能力的培養形成4點共識,提出要旗幟鮮明地把“計算思維能力的培養”作為計算機基礎教學的核心任務。國內一些著名學者和專家率先開始研究計算思維的概念與內涵,思考計算思維對計算機科學研究以及計算機教育的啟示,呼吁教育的轉型:一些先行者大膽嘗試在計算機基礎課程中引入計算思維,踐行新的教學理念和探索新的教學模式,陸續取得一些卓有成效的研究成果。
然而,思維畢竟是人類特有的一種精神活動,看不見摸不著。要想使學生接受計算思維行不是一件容易的事,問題的關鍵在于怎樣做才能將計算思維的培養落到實處。例如,怎樣構建一個包含計算思維典型特征的課程體系?怎樣組織教學內容?通過何種教學模式能夠更有效地培養學生的計算思維?筆者將就這些問題進行初步探討并提出建議。
1.機遇與挑戰
當今社會已步入數字化、信息化和網絡化的新時代,信息技術的發展水平、運用水平和教育水平已成為衡量社會進步程度的重要標志,學習和掌握計算機的基礎知識和技能是非計算機專業學生必須達到的基本要求,社會對各領域創新人才的需求對非計算機專業學生的計算能力提出了更高要求。如何針對社會需求重新定位大學計算機課程?怎樣才能讓學校和學生清晰準確地認識到該課程的重要性和價值?這是急需解決的一個關鍵問題。
在這種形勢下,計算思維概念的提出正好為課程改革提供了一個難得的契機。按照周以真教授的定義,計算思維是運用計算機科學的基礎概念進行問題求解、系統設計以及人類行為理解的涵蓋計算機科學之廣度的一系列思維活動;計算思維的本質是抽象(Abstraction)和自動化(Automation)。陳國良院士指出,理論、實驗和計算是推動人類文明進步和科技發展的三大支柱,計算思維是人類科學思維活動的三大組成部分(理論思維、實驗思維、計算思維)之一,是數學思維與工程思維的互補與融合,計算思維無處不在。
然而,計算思維的養成和訓練是一個長期、循序漸進、潛移默化的過程,不可能一蹴而就,與以往的教學有著不同的要求和目標,這些要求和目標對現有的教育觀念和方式提出了新的挑戰。對于如何在教學中實現計算思維的培養,還存在分歧和誤區。有的教師認為計算思維不過是一些理論和概念,講了也沒有多大用處,還不如教給學生一些必需的計算機知識和技能;有的教師認為以往的教學中已經蘊含了計算思維的思想,沒有必要專門講解這個概念,而且思維是無形的,根本無法在課程或實踐中傳授,只能通過學生自己感悟;還有些教師則把計算思維的培養等同于理論知識的講解,或者認為技能培養就是思維訓練。
這些對計算思維的錯誤認識,導致計算思維的概念并沒有與計算機基礎課程的知識有機融合,知識的傳授并沒有轉變為基于知識的思維傳授,因此究竟怎樣做才能避免只是簡單地給課程貼上計算思維的標簽,而是真正將計算思維的培養落到實處,讓學生通過課程教學和實踐體驗到計算思維的魅力和價值,這是必須解決的另一個關鍵問題。
2.改革思路與措施
針對上述兩個關鍵問題,我們以培養計算思維能力為主線,著重從以下幾個方面對大學計算機課程進行改革。
2.1分析社會需求,明確課程定位
在很長一段時期內,大學計算機基礎教學普遍注重計算機知識的傳授和計算機應用技能的培養,學生學到的是有關計算機的一些概念及通用計算手段的應用,但是當今社會處于急需各種創新人才的高科技時代,學生僅僅具備這些能力是不夠的。高速發展的經濟社會要求非計算機專業學生未來應具備的計算能力是掌握支持各學科研究創新的新型計算手段并應用計算手段進行各學科的研究與創新,因此,大學計算機應定位于以計算思維為核心,以計算機知識為背景,使學生理解典型的計算思維,掌握基于計算技術/計算機的問題求解思路與方法,提高學生的計算機應用能力,培養學生應用計算思維和計算工具分析和處理專業領域實際問題的能力,為今后的創新活動奠定堅實基礎。endprint
2.2構建計算機知識與計算思維有機融合的課程體系
以計算思維能力培養為核心的計算機基礎教學改革并不意味著一定要將現有的課程體系和教學內容“推倒重來”,而是在原有課程體系的基礎上,以計算思維為主線,重新組織教學內容,適當增加新的能體現計算思維的知識點,刪除一些陳舊的知識或技術細節,大幅度調整課程內容的結構,最終構建一個計算機知識與計算思維相融合的課程體系。
1)分析研究計算思維的內涵和特征。
在明確課程定位后,我們應首先仔細分析計算思維的內涵,研究計算思維包含哪些基本組成部分,這些基本組成部分的特征和表現是什么,確定在大學計算機知識體系中涉及計算思維的哪些概念;然后將知識體系分解為知識單元和知識點,研究這些知識點如何與計算思維的典型特征有機融合。
對計算思維內涵的解讀有很多。2010年,Peter J.Denning在ACM關于“什么是計算”的研討會上指出:計算思維是一種解決問題的思維方法,這種方法將問題表示為關于某個計算模型(該模型必須被發明或發現)的信息處理過程,并尋求一種算法上的解決方案。2012年,李廉教授指出:“計算思維是人類科學思維中,以抽象化和自動化,或者說以形式化、程序化和機械化為特征的思維形式。計算思維的標志是有限性、確定性和機械性。計算思維的結論應該是構造性的、可操作的、能行的”。
戰德臣教授提出的“計算之樹”很好地描繪出融入計算思維后的大學計算機所面對的知識空間,即“核心”的計算思維,主要有“計算之樹”的樹根——計算技術與計算系統的奠基性思維:0和1、程序、遞歸;“計算之樹”的樹干——通用計算環境的進化思維:馮·諾依曼機、個人計算機、并行與分布計算環境、云計算環境;“計算之樹”的樹枝——計算與(社會/自然)環境的融合思維;“計算之樹”的雙色枝杈——交替促進與共同進化的問題求解思維:算法與系統…。
2)選取典型的計算思維,構建新的課程體系。
從上述知識空間中選取非計算機專業學生需要掌握的典型計算思維,對現有的教學內容進行重新審視和定位,適當裁剪和增刪;圍繞問題的分析解決思路組織相關知識,設計課程教學內容,最終構建一個計算機知識與計算思維有機融合的課程體系。
北京航空航天大學于2012年開始參與教育部大學計算機課程改革項目“理工類高校計算思維與計算機課程研究及教材建設”,初步構建大學計算機課程體系,見表1。
由表1可見,課程分為7個教學單元,要求在每個教學單元的教學內容中,描述清楚計算機知識背后蘊含的計算思維是什么,指出哪些知識體現了計算學科的素養。例如,在計算原理教學單元中,計算思維主要涉及0和1的思維(基于電信號的硬件實現、邏輯真/假以及基于邏輯的理論與實現,任何信息都可以表示成0、1串,也就都能被計算,被計算機處理)、計算機語言發展進程蘊含的思維(語言與編譯器)、計算機系統的思維(系統由基本動作以及基本動作的各種組合構成,可以按照“程序”控制“基本動作”的執行以實現復雜的功能);在算法描述與程序設計教學單元中,既要培養學生的計算思維,如指令與程序、算法、遞歸的思維,又要培養學生的計算學科素養,即程序設計方法與典型算法的基本素養。
2.3設計能夠體現計算思維顯著特征的教學案例
教學案例是教學內容的重要載體,如果采用抽象枯燥的理論講解方式,學生將難以理解計算思維的抽象概念,更談不上通過學習培養計算思維能力,因此需要設計能夠體現計算思維顯著特征的教學案例。我們通過分析計算機解題的思路和方法,著重講解如何運用知識將實際問題轉化成機器語言的思考過程,如提煉問題、轉換問題、構建模型、設計算法、用合適的程序語言描述、用計算機解決問題,以促進學生對計算思維抽象和自動化本質特征的理解,掌握計算思維面向典型計算環境的問題求解方法。
此外,我們還創設教學情境,提出基于計算思維的探究性問題,以激發學生的學習興趣和探究問題的求知欲。在教學中啟發學生運用計算思維的方法解決問題,可以有兩個途徑:根據已有工具對問題進行分析、抽象和建模,最終建立現有工具能處理的模型;利用所學的基本算法、建模方法創造算法或系統。例如,在計算原理教學單元中,教師可以設計“在計算機中信息是如何被存儲的”教學案例。一方面,通過該案例闡述的“0和1的思維”,學生可以了解為什么在計算機中要使用二進制而不是十進制;體會一切信息皆可抽象為符號,而在計算機中一切信息都是由0、1串表示,0、1邏輯易于硬件實現、便于計算;進而掌握“語義符號化、符號0(和)1化、0(和)1計算化、計算自動化、分層構造化、構造集成化”這種最重要的計算思維。另一方面,通過該案例闡述的“計算機系統的思維”,學生從系統的角度了解計算機如何被構造以及信息如何被存儲和處理;通過中央處理器→Cache→內存→虛擬內存→磁盤存儲器的介紹,學生能夠體會到“在時間和空間之間、在處理能力和存儲容量之間進行折衷”的計算思維方法。
2.4改革教學方法,促進學生計算思維能力的養成
恰當的教學方法才能展現計算思維的魅力和基本思想方法。過去以講授知識點為主線的教學方法必須改變,應以講授認識和應用計算機的思維過程為主線,使知識隨著思維的展開而介紹,思維隨著知識的貫通而形成,能力隨著思維的理解而提高,這樣循序漸進地促進學生計算思維能力的養成。
一方面,在課堂教學中采取基于計算思維的探究教學模式。探究教學就是將科學問題作為探究過程來講授,讓學生像科學家進行科學探究一樣在探究過程中發現科學概念和規律,掌握科學方法,培養學生的探究能力和科學精神。在課堂教學中,教師提出基于計算思維的探究性問題,引導學生運用計算思維的一系列方法探索、發現問題的本質,通過簡化、轉換、遞歸、抽象、分解、建模等計算思維的基本方法,將一個復雜問題轉換成許多簡單的子問題并構建求解模型,進而充分利用計算機的運算能力實現問題求解。當學生掌握這種思維方法以后,教師再啟發學生運用所學方法自主探究并解決更深層次的問題,從而達到知識鞏固、遷移和內化為能力的目的。
另一方面,在實驗教學中采取任務驅動的實驗教學模式。教師只給出實驗任務,要求學生自主完成一個系統或一個解決方案從設計到實現的全過程。學生主動思考,自主梳理知識,構建學習模式,規劃解決方案,運用計算思維的方法自主設計和獨立完成實驗任務。基于計算思維的任務驅動實驗教學模式將有利于培養學生自我建構知識、計算思維和創新的能力。
3.結語
大學計算機基礎教學是大學通識教育的重要組成部分,更是培養大學生潛移默化地養成用計算思維方式解決專業問題、成為復合型創新人才的基礎性教育。當然,還有許多問題值得我們思考和研究,例如,如何針對不同的專業進行學科融合,引入跨學科元素?怎樣設計配套的實驗環節才能令計算思維真正落地?通過何種方式對學生掌握計算思維的程度進行考核?如何有效地評價融入計算思維后的教學效果?
教學改革是一個長期的過程,我們期望通過廣大計算機基礎教育工作者的研究、探索和改革實踐,真正實現普及計算機文化、訓練學生計算思維養成、培養學生運用計算思維方法解決專業領域問題的能力、提高學生創新能力的目標,從而為國家培養大量創新人才。endprint