王霞 陳艷艷
摘 要: 計算思維培養(yǎng)是高校計算機基礎教學的核心任務。為了增強基于計算思維的程序設計類課程的教學效果,作者首先分析了計算思維在計算機基礎教學及程序設計類教學中的重要性,進而分析了當前社會及高校教學中存在的制約大學生計算思維培養(yǎng)的問題,最后探討了在課堂教學和實踐教學方面培養(yǎng)計算思維的可行方法,并給出了具體的示例。
關鍵詞: 計算思維 程序設計 教學改革
目前,計算思維是國際計算機界廣為關注的一個概念,也是計算機教育需要重點研究的課題[1]。我國2010年發(fā)表了《九校聯(lián)盟(C9)計算機基礎教學發(fā)展戰(zhàn)略聯(lián)合聲明》,聲明的核心要點是:必須正確認識大學計算機基礎教學的重要地位,需要把培養(yǎng)學生的“計算思維”能力作為計算機基礎教學的核心任務,并由此建設更加完備的計算機基礎課程體系和教學內(nèi)容,進而為全國高校的計算機基礎教學改革樹立標桿[2]。2011年6月的“以計算思維為導向的計算機基礎課程建設”研討會中,中國科技大學陳國良院士作了題為《計算思維與計算機基礎教育》的報告,指出了計算機基礎課程作為與數(shù)學、英語同等地位的大學基礎課程,是培養(yǎng)計算思維能力最好的課程載體[3]。由此可見,基于計算思維的計算機基礎教學的重要性,而“程序設計”類課程的一個重要研究內(nèi)容是以系統(tǒng)化、邏輯化的計算思維方式思考問題和解決問題,著重培養(yǎng)學生的計算思維能力,強化學生工程化、系統(tǒng)化程序設計的觀念和能力[4]。因此,基于計算思維的程序設計類課程的教學研究具有極其重要的意義。
1.教學現(xiàn)狀
1.1社會對程序設計類課程的重視程度不夠
長期以來,計算機科學與技術這門學科被認為是輔助人們工作的,人們普遍認為這是一門專業(yè)性很強的“工具”學科。一些高校存在認識上的錯誤,認為非計算機專業(yè)的計算機課程的目的是教授學生怎樣使用計算機。程序設計類課程則僅僅作為一門課程,學生得到學分即可。然而,程序設計類課程的目標是使學生掌握基本的程序設計的知識、方法和算法,并培養(yǎng)學生具備利用計算機解決問題的意識、方法和能力[5]。上述目標中培養(yǎng)能力是重點,一些院校沒有強調(diào)該課程對培養(yǎng)能力及思維方法的重要性。對于高校學生而言程序設計不僅僅是一門課程,更是學習和建立計算思維最有效的渠道。
1.2學生主觀認識不準確
學生普遍對程序設計類課程的認識不準確,導致學生學習的興趣不濃厚,學習意識不強烈。多數(shù)計算機專業(yè)學生認為畢業(yè)后從事編程的機會很少,從而對代碼算法等缺少興趣;而非專業(yè)學生一部分認為工作以后幾乎不會和程序打交道,對大量的程序代碼提不起興趣,另一部分則只是為了獲取計算機等級考試證書而學習程序設計,因此學習過程中只是知其然而不知其所以然。事實上,很少有學生真正意識到程序設計類課程的重要性在于思維方法和解決問題的能力的培養(yǎng),而這種思維方式及解決問題的能力,無論在任何行業(yè)、任何領域都是不可或缺的。
1.3教師教學現(xiàn)狀不佳
程序設計課程的目標中培養(yǎng)能力是重點。然而,目前高校程序設計課程的教學中普遍存在以下問題:教師在講解程序設計課程時只講解課程本身,不注重計算思維的引入,使學生的學習停留在編程語言的語法、結(jié)構等表層知識上而缺乏對于程序設計思想的認識;在程序的講解過程中大多停留在只講解某個程序本身,忽略對該程序設計方法的引導;在實踐教學過程中出現(xiàn)“重結(jié)果、輕過程”的現(xiàn)象,只注重程序運行的結(jié)果,忽略問題求解過程的分析,從而忽略思維方式的鍛煉。
實際上計算思維即是程序設計的核心思想,是計算機類課程的普遍內(nèi)涵,從各種教學現(xiàn)狀看,基于計算思維的程序設計類課程的教學沒有引起足夠的重視,需要進行必要的改革。
2.課堂教學研究
基于計算思維的程序設計課程的教學主要著重點在于“方法”隨著“思維”的講解而展開,“思維”隨著方法的“貫穿”而形成,“能力”隨著“思維”的理解和訓練而提高[6]。按照這種思路,可以采取以下方式開展教學。
2.1探究式教學
基于探究式教學的基本環(huán)節(jié)是:提出問題、分析問題、解決問題、得出結(jié)果并總結(jié)。在教學過程中采取小組合作交流,能極大地提高學習者快速發(fā)現(xiàn)和解決問題的能力。
例如,講解信息處理的思維過程可以按照如圖1所示的方式設計,具體包括以下步驟:
提出問題:利用計算機是為了處理各種信息,如各種信息在計算機中如何存儲、處理?
分析問題:信息處理的對象一般包括文字、數(shù)值、圖像等信息,這些都需要轉(zhuǎn)換成計算機可以識別的信息才可以進行相應的處理,如何轉(zhuǎn)換?轉(zhuǎn)換成何種形式?轉(zhuǎn)換后如何處理?
解決問題:現(xiàn)實信息要根據(jù)信息類型表示成不同的類型的數(shù)據(jù)以變量或者常量的方式存儲在計算機中,然后再使用各種控制結(jié)構的程序進行相應的處理。
得出結(jié)果并總結(jié):當求解一個問題時,首先要問解決這個問題可以用什么方法?怎樣才是最佳的解決方法?有時還需要將問題分解為若干小問題來解決。在解決每個問題的過程中達到訓練計算思維的目的。
2.2任務驅(qū)動式教學
傳統(tǒng)教學中,教學者只對學習者完成的任務作評價,對完成任務的過程中采用的方法基本不作要求。而任務驅(qū)動教學則需要學習者在完成任務的過程中實施科學思維的方法解決問題。
例如,對于程序設計中常見的排序問題,其任務驅(qū)動式教學設計如圖2所示。教學中教師可以首先提出具體任務,例如對學生按學號升序排序;接著引導學生提出不同的解決方案,然后教師帶領學生對不同的方案進行分析,幫助學生了解方法的思路、執(zhí)行的效率等,并選擇一種方法講解編程實現(xiàn)的方法,同時要求學生對其他方法進行拓展實現(xiàn),最后共同進行總結(jié)和評價??偨Y(jié)部分主要是總結(jié)算法的選擇,對數(shù)據(jù)量較小的情形主要考慮編程工作量,對數(shù)據(jù)量大的情況首先考慮程序的執(zhí)行時間;評價部分重點在于評價任務的完成情況,不能只看結(jié)果,要注重任務的分析思路,以及任務的合作情況等。
2.3網(wǎng)絡自主學習
網(wǎng)絡自主學習主要是將教學者的教學指導行為和學習者的自主學習行為結(jié)合起來,達到合理利用網(wǎng)絡資源,學會自我思維,自我獲取有效信息,掌握解決問題的思維方式的目的。教師可以將教學資源發(fā)布在網(wǎng)上,供學生課后鞏固知識。同時教師也可以為學生布置學習任務,要求學生分組查閱資料,對知識體系進行整理,再選出代表講解完成任務的思路,最后由教師總結(jié)。
3.實踐教學研究
3.1上機實驗環(huán)節(jié)
在程序設計教學實踐過程中,必須使學生理解計算機解題的工作實質(zhì),逐漸培養(yǎng)其具有符合計算機工作的思維模式,以提高其解決問題的能力[7]。目前程序設計實驗教學中,從網(wǎng)站下載程序等照搬成果應付上機的情況普遍存在。所以上機實驗應要求寫出解決問題的思路、步驟等,大力提倡一題多解,特別是實驗前,要求學生先寫解決問題的步驟、流程圖等。在評價實驗結(jié)果時,應根據(jù)實驗前的準備工作和完成的程度給予客觀評價,對準備工作充分、方法獨到、一題多解的進行鼓勵。
3.2綜合設計環(huán)節(jié)
程序設計課程每次課的實驗都是針對一類知識點的鞏固,學生對所學的知識沒有一個整體的理解。通過合理設計的綜合實驗或綜合設計將所學的知識貫穿起來,任務的選擇要有實際性、趣味性,然后讓學生分組討論完成,一方面可以讓他們理解所學知識的作用,另一方面可以提高學習興趣和團隊合作能力。
4.結(jié)語
本文根據(jù)目前程序設計類課程的教學現(xiàn)狀,對基于計算思維的程序設計類課程教學進行初步研究,分別針對課堂教學和實踐教學提出可借鑒的教學方法。這些方法在一定程度上可以提高學生的學習興趣,鍛煉學生的計算思維,改變教學現(xiàn)狀。然而,雖然目前國內(nèi)外很重視計算思維在教學方面的研究,但由于研究時間較短,加上計算思維本身的抽象性,研究進展不是很快。因此,計算思維的培養(yǎng)方法論和創(chuàng)新方法論等還需要做更準確的研究,教學改革、教學模式的形成也還需要一個較長的時間進行實踐檢驗。
參考文獻:
[1]王榮良.計算思維:一種新的學科思維方式[J].中國信息技術教育,2012(06).
[2]何欽銘,陸漢權,馮博琴.計算機基礎教學的核心任務是計算思維能力的培養(yǎng)——《九校聯(lián)盟(C9)計算機基礎教學發(fā)展戰(zhàn)略聯(lián)合聲明》解讀[J].中國大學教學,2010(09).
[3]牟琴.基于計算思維的計算機基礎課程教學與學習的模式研究與實踐[D].四川師范大學,2012.
[4]陳國良,董榮勝.計算思維與大學計算機基礎教育[J].中國大學教學,2011(01).
[5]黃靜,高延英,楊宇姝.基于計算思維的程序設計課程教學模式研究[J].計算機教育,2013(05).
[6]董榮勝,古天龍.計算思維與計算機方法論[J].計算機科學,2009,1,VOL36(1).
[7]朱凌云,盧玲,劉恒洋,黃賢英.以“計算思維”驅(qū)動的《程序設計基礎》實踐教學模式研究[J].科技創(chuàng)新導報,2012.26.