摘要:計算思維能力是大學信息素養教育的需要,在程序設計課程的教學過程中,貫穿了計算思維能力的培養。結合教學經驗,分析了“Access程序設計”課程的特點,提出了如何在教學過程中培養大學生的計算思維能力,并給出了具體實施方案。
關鍵詞:計算思維;逆向教學;實例庫
作者簡介:楚艷萍(1971-),女,河南葉縣人,河南大學軟件學院,副教授;何欣(1974-),男,河南開封人,河南大學軟件學院,副教授。(河南 開封 475004)
基金項目:本文系河南省基礎前沿項目(項目編號:132300410149)、河南大學第12批校級教學改革項目(項目批準號:校發[2012]237號)的研究成果。
中圖分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2013)23-0078-02
一、計算思維的內涵
周以真教授于2006年提出了計算思維的概念,她認為計算思維是運用計算機科學的基礎概念去求解問題、設計系統和理解人類行為,涵蓋了計算機科學的一系列思維活動。[1]計算思維是一種本質的、所有人都必須具備的思維方式,就像閱讀、寫字、算術計算一樣,是人們最基礎、最普遍、最適用和不可缺少的基礎思維方式。在給出計算思維定義的同時,周教授還對計算思維進行了更為細致的闡述:計算思維是通過約簡、嵌入、轉化和仿真等方法,把一個困難的問題闡釋為如何求解它的思維方法。計算思維是一種遞歸思維,采用并行處理,把代碼譯成數據又能把數據譯成代碼,是一種多維分析推廣的類型檢查方法。計算思維是一種采用抽象和分解的方法來控制龐雜的任務或進行巨型復雜系統的設計,是基于關注點分離的方法。計算思維是一種選擇合適的方式陳述一個問題,或對一個問題的相關方面建模使其易于處理的思維方法。計算思維是按照預防、保護及通過冗余、容錯、糾錯的方式,并從最壞情況進行系統恢復的一種思維方法。計算思維是利用啟發式推理尋求解答,即在不確定情況下的規劃、學習和調度的思維方法。計算思維是利用海量數據來加快計算,在時間和空間之間、處理能力和存儲容量之間進行折中的思維方法。[2]
西安交通大學馮博琴教授在《九校聯盟計算機基礎教學發展戰略聯合聲明》一文中指出,[3]計算機基礎教學是培養大學生綜合素質和創新能力不可或缺的重要環節,是培養復合型創新人才的重要組成部分,應該徹底改變長期以來存在的“計算機只是工具”、“計算機就是程序設計”和“計算機基礎課程主要是講解軟件工具的應用”等片面認識,把“計算思維能力的培養”作為計算機基礎教育的核心任務,運用計算機科學的基礎概念對問題進行求解、系統設計和行為理解,即建立計算思維。無論哪個學科,具有突出的計算思維能力都將成為新時期拔尖創新人才不可或缺的素質。
二、程序設計與計算思維
程序設計是訓練大學生計算思維的最直接、最具操作性的平臺。[4]對非計算機專業的學生來說,學習程序設計的目的不是成為程序員,而是通過編寫程序,鍛煉他們運用計算機分析問題和解決問題的能力,以及如何將抽象的問題轉化為具體的、通過有限步驟在計算機上實現的能力,這是計算思維培養的重要內容。
反過來,計算思維能力的養成也會更進一步促進程序設計課程的學習。不僅如此,具備了運用計算思維進行思考的習慣,要比掌握一定的計算機技術強得多。學生在接受這種思維指導下的學習和訓練后,可以學習計算機科學知識,也可以學習其他專業知識。只有堅持以培養學生的計算思維為核心,學生才會具有創新意識,增強他們在社會中的競爭力。
“Access程序設計”是一門應用性極強的課程,傳統的教學體系以“知識點”為核心組織教學,采用“填鴨式”的教學模式,以集中授課為主,輔以實驗、課程設計、畢業設計、實習等實踐環節。學生上課無壓力、教師教學無動力。雖然灌輸給學生一大堆理論知識,但由于缺乏實踐知識的支撐,最后難以充分發揮所學知識的價值。這種過分注重理論教學,缺乏創新能力的培養模式,已經不能適應程序設計課程的教學。另外,也會使學生感覺這門課程和自己后續本專業的課程學習沒有關聯,從而缺乏學習興趣。
“Access程序設計”是非計算機專業的第一門程序設計課程,它包括七大模塊:數據庫、查詢、窗體、報表、頁、宏和模塊。這些內容自成體系,很容易讓學生覺得各部分內容聯系不大,使得學生對課程學習的目的不明確;尤其是在模塊部分,主要涉及的是程序,而程序設計中多包含以字母、符號、圖形等形式呈現出來的抽象概念,使得學生在短時間內難以適應由大量抽象概念建立起來的理論體系,往往會覺得無所適從。
如何將計算思維融入程序設計的機教學之中,是需要研究的一個課題。一方面,程序設計課程可以為培養學生的計算思維能力提供一個很好的平臺;另一方面,可以從計算思維層面梳理和組織程序設計的教學內容,從計算思維這個高度實施程序設計課程的教學。[5]
三、計算思維的教學模式
在“Access程序設計”課程中,可以采用計算思維的教學模式,具體實現方案如下。
1.逆向設計教材內容
以往的教學都是按部就班從第一章開始講起,最后一章講完才給學生布置要完成的綜合練習作業,即設計一個完整的應用系統。這種方法有很多弊端,如學生上課沒有主動性,對整個課程的實際應用沒有充分的認識,只是一味地跟著教師聽,完成教師布置的上機作業,沒有自己的創新思維。另外,等到課程講完,學期就快結束了,學生根本沒有更多時間去思考自己的題目,更不用說完成了,而是敷衍了事,匆匆開始,匆匆結束,達不到所要求的教學效果。
逆向教學就是將以往的教學順序反轉一下,即在課程開始,可以就先講兩個應用系統實例,如設計一個教學管理系統(如表1所示)。[6]
首先向學生演示介紹系統的功能,然后介紹該系統按照設計要求可以分為多個不同的模塊,即系統的組成,最后再簡單介紹該系統是如何完成的,即設計步驟等,讓學生站在課程的高度了解該課程的功能和實際應用,知道自己學這門課的目的是什么。然后再把要求學生設計的系統作業布置下去,這個大作業需要教師精心設計,可以按照不同的專業命題,也可以按照通常的應用出題,由學生自己挑選感興趣的題目,讓學生在學習的過程中思考并完成每一個模塊。
這種教學模式的優點有三個。一是學習有目的,學生不再是被動地聽,而是帶著問題去聽課,有了自己的思維,學生學習起來會更主動。二是通過系統開發,學生知道系統可以分為各級不同的模塊,編寫一個個功能單一的模塊,從而組成一個完整的系統。認識到這點,由此可以推及到其他問題。在實際生活中,對比較大的問題,也可以像程序設計一樣把大問題分成一個個細小的問題,然后再逐一解決,這正體現了計算思維的思想。通過這種方法不僅鍛煉了學生分析問題、解決問題的能力,更使其思維能力得到進一步提高。三是時間充分,學生有更多的時間去思考并完成自己的任務,進而在完成的基礎上還可以進一步美化,使其設計的系統功能更全、界面更加美觀。
2.創建教學實例庫
書中列出的實例是有限的,它只局限于一個方面。教師在上課過程中,如果可以根據不同專業從一個實例出發,舉一反三推舉出更多的實例,這將會對學生掌握該知識點有很大幫助,同時也拓展了學生的思路,使學生能在此基礎上更有所創新。由此就需要教師做好充分的課前準備,通過相互討論、查找資料、培訓、聽課等多種方式收集整理大量實例,創建為教學實例庫。同一知識點的實例應該涵蓋不同的專業領域,使學生認識到所學的知識還可以和自己的專業有聯系,從而激發學生的學習興趣,使得學習效果更佳。
3.提高實驗教學效果
可以從兩個方面提高實驗教學效果。一是教師可以精心選擇一些有趣味性的題目,[7]例如,學習了模塊,可以讓學生編程解決“百錢買百雞”的問題,學習了窗體,可以讓學生設計一個用于小學生進行數學加減法測試的題目。學生對題目感興趣,就有動手實踐的欲望,這樣就可以很好地達到教學目的。更重要的是,通過上機實踐,使學生掌握了如何將抽象的問題轉化為能被計算機自動執行的程序,這也正體現了計算思維的本質即抽象與自動化。二是學生也可以自己設計題目,題目的設計不受任何局限,只要能夠在計算機上實現都可以,對于比較典型的題目,教師可以在課堂上加以鼓勵和表揚。這種方式可以激發學生的學習熱情,從而更加主動、認真學習“Access程序設計”這門課。
4.完善考核機制
成績的考核由兩部分組成,一部分是平時成績,由教師根據學生的平時表現進行評判,主要考查的是學生學習過程中所表現出來的對程序的理解能力及實現能力,這實際上也是在考查學生解決問題的能力。另一部分是期末考核,考查學生對課本知識的掌握程度。這種考核方式改變了傳統的一卷定分數的現狀,將學生的每一個學習環節納入到最終的考核中去,使得最終的成績更科學、更合理。
四、結束語
計算思維能力是新時代的要求,把這種能力的培養融入“Access程序設計”教學中,使學生能夠在潛移默化中養成一種新的思維方式,為社會培養出復合型創新人才打下基礎。
參考文獻:
[1]Jeannette M Wing.Computational thinking[J].Communications of the ACM,2006,49(3).
[2]陳國良,董榮勝.計算思維與大學計算機基礎教育[J].中國大學教學,2011,(1).
[3]馮博琴.九校聯盟(C9)計算機基礎教學發展戰略聯合聲明[J].中國大學教學,2010,(9).
[4]臧勁松.培養學生計算思維的程序設計課程教學[J].計算機教育,2012,(2).
[5]常亮,徐周波,古天龍.離散數學教學中的計算思維培養[J].計算機教育,2011,(14).
[6]申石磊,季超,楚艷萍.Access程序設計[M].北京:中國科學技術出版社,2009.
[7]陳杰華.程序設計課程中強化計算思維訓練的實踐探索[J].計算機教育,2009,(20).
(責任編輯:劉輝)