吳玲,李旭亮,徐輝
(黑龍江大學計算機科學技術學院,黑龍江哈爾濱150080)
程序設計類課程中計算思維能力培養(yǎng)的途徑及實驗教學模式研究
吳玲,李旭亮,徐輝
(黑龍江大學計算機科學技術學院,黑龍江哈爾濱150080)
本文深入分析了目前普通高等本科院校程序設計類實驗課程中出現(xiàn)的問題,研究了計算思維的提出背景和內(nèi)涵特征,就任務抽象和分解、啟發(fā)式推理、知識體系重構(gòu)、思維能力訓練、實驗教學模式等方面對程序設計類課程進行改革。課題組以實際行動推動了程序設計類課程的教學改革,指導學生提煉出知識和技能背后所包含的具有普適性的本質(zhì)思想——“計算思維”,對學員的人才培養(yǎng)工作具有重要意義。
計算思維;教學改革;實驗流程;考核指標
推動人類社會文明進步和科學發(fā)展的科學思維,主要有理論思維、實驗思維,以及獲得人們廣泛認可的“計算思維”[1]。2006年,周以真教授對“計算思維”進行了正式定義,據(jù)周教授解釋,計算思維的本質(zhì)是自動化和抽象,強調(diào)的是求解的操作過程和問題的機器實現(xiàn),可見,計算機編程語言的靈魂即是計算思維,而程序設計類課程則是對學生計算思維最具可操作性、最直接的訓練平臺。
程序設計類課程在計算機及其相關專業(yè)中占據(jù)至關重要的地位,它是計算機入門的基礎課程,為計算機及其相關專業(yè)后續(xù)課程的學習提供了知識基礎[2]。程序設計類課程實驗教學的主要任務有二:其一是以一種或多種程序設計語言為依托,通過上機實際操作,掌握程序設計語言的基本運用技能和技巧;其二是通過設計算法、編寫程序和調(diào)試測試,加深對編程語言的理解和運用,并鍛煉學生用計算思維解決實際問題的能力。
但通過課題組多年來教育教學的實際經(jīng)驗顯示,大部分學生對程序設計類課程實踐環(huán)節(jié)存在如下認識誤區(qū):第一,普遍認為程序設計語言語法規(guī)則復雜煩瑣、易忘難記,學習難度較大;第二,普遍認為課程內(nèi)容枯燥乏味,與實際聯(lián)系不多,學習熱情不高;第三,很多學生只是進行單純的理論學習,一旦要編寫實際程序往往不知如何下手,久而久之就產(chǎn)生了畏難情緒。所以說,怎么養(yǎng)成學生正確的計算思維習慣、提高學生高強的計算思維能力,探索有效的實踐教學模式是從事程序設計類課程實踐教學的老師亟待解決的問題。
在傳統(tǒng)的程序設計類課程的教學和實驗過程中,基本使用原始的實證分析驗證的教學方法,往往因為對編程語言的語法規(guī)則太過重視,而忽視了對學生實踐能力的培養(yǎng);或是在實驗教學環(huán)節(jié)過于程式化、考核隨意性強、監(jiān)督環(huán)節(jié)薄弱,無法鍛煉和提高學生程序設計能力和計算思維能力,很難激發(fā)學生的學習興趣,更談不上培養(yǎng)其思維能力。
計算機科學體系龐雜,本身并非僅僅是編程那么簡單,其能力分為計算機使用能力、計算機系統(tǒng)認知能力和計算思維能力。怎么在程序設計類課程中培養(yǎng)學生的計算思維能力,需要我們解決的基本問題即:任務抽象和分解、啟發(fā)式推理、重構(gòu)知識體系、思維能力訓練。主要從以下兩方面入手:
(一)引入“觀察—聯(lián)想—變換”的計算思維方式或過程
在ACM大賽指定參考書《程序設計中常用的計算思維方式》中,將程序設計的一般思維過程概括為“先觀察,再聯(lián)想,后變換”,即經(jīng)過觀察問題而了解、了解問題而認識、認識問題而解決,繼而經(jīng)過編程者自己的聯(lián)想,與現(xiàn)有的知識和經(jīng)驗相結(jié)合,尋找之間的關聯(lián),最終經(jīng)過改造和變換,將初始問題轉(zhuǎn)化成一個或多個已知解決方法的小問題,達到解決初始問題的目的?;诖?,課題組嘗試對目前程序設計類課程所采用的問題驅(qū)動、項目分解、啟發(fā)式教學等方法進行完善,通過對學生程序設計的一般思維方法或過程的引導,使學生感受到程序設計之美、獨立解決問題之美、計算之美,耳濡目染培養(yǎng)他們的計算思維能力。
通過培養(yǎng)和引導學生利用“先觀察,再聯(lián)想,后變換”的思維過程解決問題,讓學生感受到程序設計之美、獨立解決問題之美、計算之美。
以《C語言程序設計》課程為例,其中的許多知識點都為此提供了生動案例。第一堂實驗課上,實驗教師主要以展示經(jīng)典案例為主,例如實驗教師可以從“猜數(shù)游戲”入手,在課堂上用游戲的方式激發(fā)學生對語法、語義、算法、設計的學習興趣,從游戲引入知識點,用知識點帶動學生對語法的掌握、對算法的理解、對設計的熟悉,是學生加深對計算思維的理解。這種傳授知識、技能和計算思維的一體化教學模式,摒棄了原有的“重語法、輕方法、不談思維”的錯誤教學方法,使教學目標從“知識和技能”的傳授上升到“思維”的教學,即指導學生提煉出知識和技能背后所包含的具有普適性的本質(zhì)思想——計算思維。
(二)融合“輕游戲”進程序設計類課程的教學實踐中
課題組還嘗試著將“輕游戲”,也就是教育游戲引入到程序設計類課程中,將枯燥乏味的語法規(guī)則,利用電腦游戲的形式展現(xiàn)在學生面前,將游戲娛樂融合進程序設計類課程的教學實踐中,在激發(fā)學生學習興趣和學習動機的同時,使其形成自主學習的心理,主動進入到知識學習的情境當中,提高學習者的對程序設計語言語法規(guī)則的熟練度,幫助學習者內(nèi)化計算思維方法,從而達到培養(yǎng)學習者計算思維能力的目的。
程序設計類課程的實驗教學環(huán)節(jié)可以直觀地讓學生感知程序設計語言的內(nèi)在規(guī)律,使學生在程序設計這一領域從感性認知上升到理性認知,在問題分析、算法設計、程序編碼、程序調(diào)試的過程中,鞏固已學的理論知識,進一步培養(yǎng)創(chuàng)造性思維方式及實踐能力。在程序設計類課程學習的過程中,學生通過上機操作了解算法、掌握程序設計方法、掌握程序設計語言及其運行環(huán)境,最終掌握編寫程序和調(diào)試程序的初步能力,可以說,程序設計類課程的實驗教學是鍛煉學生動手能力、編程能力、計算思維能力的重要途徑。
為了能夠?qū)⒂嬎闼季S能力的培養(yǎng)貫穿在整個教學過程中,課題組嘗試對目前程序設計類課程的實驗教學模式進行相應的改革:
(一)實驗流程規(guī)范化
要求學生嚴格按照“分析題目—用數(shù)學方法解決問題—繪制流程圖—編寫源程序—上機調(diào)試—歸納總結(jié)”的順序依次進行,使學生能夠養(yǎng)成正確的學習規(guī)律和思維習慣,提高他們創(chuàng)造性的思維方式及實踐能力。
(二)倡導算法多樣性
鼓勵學生在實現(xiàn)同一個計算任務的時候編寫不同的算法程序,引導學生對算法進一步探索并對自己出現(xiàn)的問題進行反思,在培養(yǎng)學生解決問題能力的同時,培養(yǎng)其創(chuàng)新意識和探索精神,還可以培養(yǎng)學生計算思維的多樣化、靈活性。
(三)上機指導啟發(fā)式
在學生上機實驗遇到問題的時候,不直接指出其問題所在,而是用啟發(fā)的方式引導學生自己找到問題所在并修改,養(yǎng)成其獨立分析、判斷問題的能力。
(四)考核評價客觀化
加強過程化考核的力度,將設計是否合理完整、程序結(jié)構(gòu)是否清晰、知識應用是否得當、代碼是否有抄襲雷同現(xiàn)象、運行結(jié)果是否正確、具體答辯過程等對程序設計類實驗項目的考核環(huán)節(jié)指標化,弱化實驗教師的主觀判斷,指引學生以正確的方式學習課程內(nèi)容,督促學生積極主動地學習,從而達到培養(yǎng)學生計算思維能力的目的。
計算思維的形成是一個長期的過程,僅通過目前兩門課程的教學實驗改革是無法構(gòu)建起成熟的計算思維方式。課題組以2013級新生為實驗對象,課題組成員根據(jù)不同學期內(nèi)容對這些課程進行教育理念、教學方法、實驗教學模式等方面的響應的改革;目前網(wǎng)上流行的“輕游戲”主要針對中小學或?qū)W前教育,很少有專注于開發(fā)大學生的教育游戲,下一步,課題組的一部分重心將放在程序設計類課程的“輕游戲”的開發(fā)上,以達到為學生今后的“計算思維”成長打下堅實的基礎、提供必要的條件。
[1]牟琴,譚良.計算思維的研究及其進展[J].計算機科學,2011(3):10-15.
[2]朱立平,林志英.基于思維教學理論的程序設計課程教學模式的構(gòu)建[J].計算機教育,2008(8):58-60.
編輯∕高偉
吳玲(1982-),女,黑龍江大學計算機科學技術學院、軟件學院實驗師,研究方向:軟件工程。
本文得到了“2013年黑龍江大學新世紀教育教學改革工程項目”資助,項目編號:2013B44