計算思維程序設計課程改革研究-教學改革論文-教育論文
發(fā)布時間:2020-11-02 來源: 入黨申請 點擊:
計算思維的程序設計課程改革研究- 教學改革論文- 教育論文 ——文章均為 WORD 文檔,下載后可直接編輯使用亦可打印——
摘要:通過分析程序設計課程教學現(xiàn)狀,提出了基于計算思維的程序設計課程教學改革方向。探討將計算思維引入程序設計課程教學,并進行強化訓練的教學方法與實踐。教師從計算思維的角度重新審視和組織程序設計基礎的課堂和實踐教學,可以讓學生樹立用計算機求解問題的意識,實現(xiàn)教學由傳授知識到培養(yǎng)能力的轉(zhuǎn)變。
關鍵詞:程序設計課程;計算思維;教學改革;教學方法與實踐
0 引言
程序設計課程屬于高校非計算機專業(yè)的必修公共課,主要基礎課程有“C 語言程序設計”、“VisualBasic 程序設計”、“VisualFoxPro 程序設計”、“VisualC++程序設計”等,對于培養(yǎng)大學生的邏輯思維、抽象思維、創(chuàng)新精神與創(chuàng)新能力,以及提高綜合素質(zhì)起著十分重要的作用。在我校,非計算機專業(yè)學生占全體學生比例約為 90%,其程序設計課程一般采取大班上課,學生剛開始對程序設計課程頗有興趣,但隨著知識點的增多,難以理解和記憶的新概念、新術語、新規(guī)則大量出現(xiàn)后,逐漸感覺課程難度加大,且認為與后續(xù)專業(yè)課程結合不夠緊密,未正確認識到計算科學在本專業(yè)領域中的重要作用,所以學習的主動性、自覺性不斷下降,學習效益低。最終導致學生實踐能力不足,綜合分析能力及創(chuàng)新能力欠缺,難以滿足當今社會對人才的要求。因此,程序設計課程的教學改革勢在必行。
1 計算思維
目前,計算思維的培養(yǎng)成為國際和國內(nèi)計算機教育界關注的熱點。計算思維概念的提出,國際上廣泛認同的是 2006 年美國卡內(nèi)基梅隆大 學 計 算 機 系 主 任 JeannetteM.Wing 教 授 在 ACM 上 發(fā) 表 的
《ComputationalThinking》(計算思維,簡稱 CT),她提出:“CT 是運用計算機科學的基礎概念進行問題求解、系統(tǒng)設計,以及人類行為理解的涵蓋計算機科學之廣度的一系列思維活動*1+”,她認為計算思維是除閱讀、寫作、算數(shù)外,每個人必須掌握的技能之一。在我國,2010年《九校聯(lián)盟(C9)計算機基礎教學發(fā)展戰(zhàn)略聯(lián)合聲明》的核心要點也強調(diào)“需要把培養(yǎng)學生的‘計算思維’能力作為計算機基礎教學的核心任務*2+”。從國家層面上講,大學計算機基礎教育這門課程的定位就是基礎課程,也就是與數(shù)學、物理同等地位。既然是基礎課程,其教學方法和教學理念就應該像數(shù)學與物理一樣,將學科的基本理論、基本思維教授給學生。計算和計算思維是計算機基礎課程的基本理論和基本思維,科學家已將計算思維和理論思維、實驗思維并列為人類三大科學思維。因此,在大學計算機基礎教育中強調(diào)和深化“計算思維”的培養(yǎng),既有助于計算機基礎教育學科的健康、持續(xù)發(fā)展,又有助于 型人才的培養(yǎng)。程序設計課程是大學計算機基礎課程的重要分支,也是許多高校非計算機專業(yè)進行計算機基礎教育的重要課程之一。程序設計課程的學習主要有二個內(nèi)容:第一,算法學習,即學習問題求解的方法;第二,編程實現(xiàn),即理解計算機是如何實現(xiàn)算法的,利用計算機編程實現(xiàn)算法。課程學習不只是編寫程序,而是算法思想與問題求解的思路?傊,要教會學生使用計算機編程,逐步形成計算思維。
2 程序設計教學與計算思維
程序設計課程是訓練學生思維能力的一個最直接最重要的平臺,而計算思維則提供了重新審視程序設計教學的視角,將計算思維融入到程序設計教學中是改革的必然趨勢。計算思維的本質(zhì)是抽象和自動化,計算思維的抽象是使用符號代替實際問題中的各種變量,每個程序包括各種標識符、常量、變量、數(shù)組、函數(shù)和結構體等符號語言,這些組合在一起就構成了程序設計語言。計算思維的自動化則體現(xiàn)在程序的機械式執(zhí)行,這也是馮諾伊曼計算機體系的本質(zhì)特征。要實現(xiàn)自動化,就必須要設計精確的算法和嚴格的程序語言體系。計算思維的主要特征有三點。⑴嚴謹規(guī)整。完備的算法是計算機程序解決問題的基本要求,它的實現(xiàn)必然要使用嚴格的數(shù)學符號描述。計算思維要求用確定、形式化并且無二義性的語言描述問題,這就要求在程序設計課程教學過程中強化計算思維訓練。例如學生在編寫程序時使用了錯誤的符號或者語法,都會在編譯或運行時提示錯誤,教師要引導學生糾正自己的錯誤,培養(yǎng)他們嚴謹?shù)目茖W實證精神和編程的良好習慣,這些都屬于強化計算思維嚴謹性的范疇[3]。⑵目標明確。計算思維是用來解答問題的,它將實際生活中的問題以抽象化和程序化的形式表示出來。通常解答問題的過程如下:發(fā)現(xiàn)問題—分析問題—思考問題
—解決問題—反思。程序設計課程要注意培養(yǎng)學生依據(jù)已有的知識體系,提出問題、解決問題的能力,著重強化利用計算思維的方式描述問題和使用機器語言解決問題的訓練。例如,成績 5 級計分制就是我們在日常生活中感受到的問題,學生可根據(jù)自己對成績等級計分的理解寫出數(shù)學式,然后用多分支結構算法進行描述,最后上機實現(xiàn)。⑶機械化。用來描述問題和解決問題的算法有三種形式[4]。①生活算法:完成某項任務的計劃,例如一個學期的學習計劃。②數(shù)學算法:對一類計算問題確定統(tǒng)一的求解方法,例如一元二次方程組的求解公式。③計算思維算法:精確描述問題和求解問題的自動化形式語言,比如高級程序設計語言。計算思維算法強調(diào)利用計算機的速度和存儲優(yōu)勢,通過嚴格機械化的操作時序解決實際問題。比如“雞兔同籠”問題可以使用兩個二元方程組進行數(shù)學求解,但是計算機算法則可以使用窮舉法進行簡單重復的操作求解,充分利用了計算機的計算速度優(yōu)勢。在程序設計課程中強化計算思維訓練,可以讓學生掌握使用機械化思維進行信息處理的能力[5]。
3 基于計算思維的程序設計課程教學實踐
對于非計算機專業(yè)的學生來說,學習程序設計的目的是學會用計算機去分析問題和解決問題的思維方法,因此計算思維可以貫穿于程序設計課程的整個教學過程。
3.1 計算思維視角下的課程引入
首先,在引入程序設計類課程之前告訴學生編程能力是計算思維的具體表現(xiàn)。學生不僅要掌握計算機語言的相關知識,而且要能夠應用程序設計的思想與方法分析和解決問題。例如,VisualBasic 程序設計基礎就是 VisualBasic 語言。正像自然語言的產(chǎn)生是人類社會活動發(fā)展的客觀要求和必然結果,同樣,計算機語言的產(chǎn)生和發(fā)展則是人類使用計算機的客觀要求和必然結果。從計算機語言的基本語法到其整體結構,都滲透著許多計算思維。因此,將“計算思維”引入“VisualBasic程序設計”教學就是:在講解相關知識點的同時,也要講授其中所反映的計算思維,通過思維強化知識,通過知識培養(yǎng)思維。人們利用計算機就是為了處理信息數(shù)據(jù),而不同類型的信息數(shù)據(jù),其表達方式不盡相同,其處理方式也會有所不同,那么,計算機是如何實現(xiàn)信息數(shù)據(jù)的表示、存儲和處理的,這其中蘊含的計算思維又是什么。首先,
根據(jù)馮諾依曼計算機體系結構:從軟件方面考慮,可通過聲明或定義不同類型數(shù)據(jù)以表示不同類型的信息;從硬件方面考慮,可通過存儲元件可實現(xiàn)信息數(shù)據(jù)的存儲,不同類型的數(shù)據(jù)占用不同長度的存儲單元。但僅僅完成信息數(shù)據(jù)的表示和存儲是遠遠不夠的,而要真正實現(xiàn)數(shù)據(jù)處理,由此便產(chǎn)生了計算機語言,即利用計算機語言編寫的數(shù)據(jù)處理程序指揮 CPU(中央處理器)完成相應的數(shù)據(jù)處理。這個通過人、機共同努力完成的“問題求解”過程,就是一個計算思維的實現(xiàn)過程。顯然,實現(xiàn)這樣一個信息處理的計算思維,是需要計算機語言的技術支持即:數(shù)據(jù)表示(數(shù)據(jù)類型)、數(shù)據(jù)存儲(變(常)量)和數(shù)據(jù)處理(表達式和控制結構),并由此引出 VisualBasic 語言基礎知識的學習。
3.2 梳理內(nèi)容,加強基于計算思維的關聯(lián)案例庫建設,創(chuàng)新教學方法
筆者在深入研究非計算機專業(yè)學生認知規(guī)律、思維模式和專業(yè)背景后,站在計算思維的層面上按照課程知識的內(nèi)在體系結構梳理教學內(nèi)容,突出“案例化、實用化”,強調(diào)基于計算思維的關聯(lián)案例庫的建
設。關聯(lián)案例,一方面是指案例中的知識點相互關聯(lián),另一方面是指案例和生活、專業(yè)領域中的應用相關聯(lián)。例如,在“VisualBasic 程序設計”課程中,可以根據(jù)課程知識點,按代表性、實用性、趣味性原則來設計關聯(lián)案例,如計算器、字幕、鬧鐘、文本編輯器、菜單、數(shù)據(jù)庫管理系統(tǒng)等,將設計全過程呈現(xiàn)在大屏幕上,讓學生親身感受并參與其中,激發(fā)了學生的求知 。筆者在“VisualBasic 程序設計”課程第一堂課中就展示經(jīng)典案例及上屆學生的優(yōu)秀作品,使學生對本課程產(chǎn)生濃厚的興趣,接著以一個簡單實用的例子展示了“VB”小程序的制作,介紹了 VB 編程環(huán)境和 VB 編程四部曲,說明 VB 編程上手的容易,克服學生的畏難情緒,幫助學生更快地入門。在課堂教學中,筆者貫穿“案例引導,精講多練,教學互動”的教學原則,探索和自創(chuàng)出一套適合程序設計課程的關聯(lián)案例式教學方法(“關聯(lián)案例展示—案例剖析—講解相關知識點-知識點在實踐中的應用”),即在傳統(tǒng)教學方法的基礎上,將關聯(lián)案例式教學法引入到課堂教學中來。例如,在VisualBasic 程序設計課程教學中,可以用案例“登陸界面的制作”講解基本控件(form、label、text、command 等),用案例“出租車計費問題”講解分支結構,用案例“計算器”講解控件數(shù)組,用案例“成績管理系統(tǒng)”講解菜單和多重窗體程序制作等。這些實例滲透了“知識來源于生活”的教學思想,能使學生意識到學習知識的目的是為了解決生活中的實際問題。此外,還可以嘗試從社會實際、學生實際出發(fā),采取多種直觀、具體、多樣化的教學方法,去激發(fā)、調(diào)動學生的學習熱情和興趣。比如講授 for 循環(huán)語句時,盡量采用啟發(fā)式教學,老師多提問,
引導學生積極思考答案,自己得出結論,最后再由老師補充完善。例如,我們可以從最簡單的計算 1+2+3+……+10 這個問題開始,然后讓學生計算 10!=1×2×3×……×10,再讓學生計算 1!+2!+……+10!,這樣不斷地制造問題,讓學生不斷地想辦法去解決問題,用改變循環(huán)體的方法,化特殊為一般;用比喻的方法降低學生對累加器的理解難度,化抽象為具體,不斷地感覺到學習程序設計的用途和樂趣,積極地思考、分析、歸納,從而使計算思維得到訓練。又如講到數(shù)組中對數(shù)據(jù)的排序問題時,可以采用啟發(fā)式、游戲法和課件演示教學法,游戲法是讓幾個同學上來,站成一排,然后按身高進行排序,課件演示教學法師則用 Flash 動畫把排序過程詳細展示,幫助學生更好地理解,促使學生利用自己已有的知識結構和邏輯思維對問題進行分析和歸納。通過這樣的思維訓練,讓學生在思考中學習,在學習中運用新的方法破解難題,培養(yǎng)學生分析問題、解決問題的能力,鍛煉學生數(shù)學建模能力,鞏固知識的同時拓展技能和技巧。
3.3 以上機實驗為重點,思維多樣化的計算思維強化訓練
⑴以上機實驗為重點筆者在講授程序設計課程的教學過程中,采
用以上機實驗為重點的計算思維訓練模式,讓學生在動手實踐中掌握知識、消化知識,強化計算思維。實驗內(nèi)容采用“驗證-調(diào)試-設計”的形式進行設計;上機實驗采用流程化管理的方式,對于任何實驗內(nèi)容,都要求學生按照“閱讀題目-分析總結-設計算法-編寫實現(xiàn)代碼-上機調(diào)試-優(yōu)化程序”的順序進行,引導他們養(yǎng)成良好的思維能力和編程習慣;在實驗過程中遇到困難和錯誤,不輕易 和批評學生,而是指導他們分析難點和錯誤,自己解決。同時,給學生提出新的解決方案或排除未知問題的滿足感,激發(fā)他們的學習積極性,大膽創(chuàng)新。強化計算思維,實驗內(nèi)容的設計非常重要。教師要不斷學習和創(chuàng)作適合學生知識和心理特點的實驗內(nèi)容。實驗內(nèi)容不應是課堂內(nèi)容的簡單復習,要給學生提供計算思維的創(chuàng)新空間。課堂內(nèi)容要符合實驗內(nèi)容,要給學生留問題,讓他們自己分析總結,在實驗上機時解決,提高自主思維能力。例如,實驗案例:公主出嫁。美麗的公主伊麗莎白長大成人,鄰國的六個王子來提親,公主有三位侍女,她們猜測哪位王子會得到公主的芳心。侍女一說:“我認為公主會嫁給科爾王子,或者是威廉王子。”侍女二說:“我想公主一定不會選擇亞瑟王子,因為他的身材實在太矮了。”侍女三說:“不管怎么說,公主肯定不會嫁給菲利普、查理、路易斯三位王子,因為他們的國家正準備和我們打仗。”事實上,三個侍女中只有一人猜對了。試編寫程序,找出哪位王子能與公主喜結良緣。為了找出伊麗莎白的白馬王子,從計算思維的角度進行邏輯推理。首先引入邏輯運算符和邏輯表達式,規(guī)定一些符號變換規(guī)則,將三個侍女的話分別轉(zhuǎn)換成邏輯表達式,給出綜合判斷條件,再
借助這些符號和規(guī)則將邏輯推理過程在形式上變得像代數(shù)演算一樣。比如定義 6 個整型變量——A、B、C、D、E、F 分別代表 6 位男嘉賓,變量取值為 0 表示不是伊麗莎白的白馬王子,為 1 表示是白馬王子。每位男嘉賓都有兩種可能:“是(1)”或者“不是(0)”,6 位男嘉賓按 A、B、C、D、E、F 順序,有 種取值:000000,000001,…,111111。對案例分析的目的是讓學生懂得:①掌握解題的重要一步是將人的想法寫成計算機能夠處理的表達式或操作步驟,要用到關系運算、邏輯運算和算術運算;②用計算機解題經(jīng)常需要從多種可能性中尋找其中的一種或幾種,因此,要用“枚舉法”,當遇到大量重復計算時,自然就引出了循環(huán)結構;③分支是計算思維的重要方式。筆者借助這個案例題把程序設計的基本概念和方法傳授給學生,當學生建立起這種認識之后,在潛移默化中也就培養(yǎng)了邏輯思維和計算思維。學生通過上機實踐可以體會到計算思維的精髓[6]。上機實踐要有目的地訓練五種能力:①分析題目,找到問題,并將其抽象為數(shù)學模型;②構思算法;③編寫程序;④調(diào)試程序;⑤分析運行結果,一旦出錯,應該仔細認真找出原因,提出改正的意見。大多數(shù)學生對許多問題的看法是在實驗課的討論中逐漸清晰和升華,對思想啟發(fā)、計算思維的培養(yǎng)起到推動作用。依據(jù)非計算機專業(yè)學生認知的規(guī)律,我們設計了生活化、趣味化的實驗內(nèi)容,如俄羅斯方塊游戲、計算器、打字游戲等。⑵以思維多樣化為核心點由于學生認知方式和心理特征存在個體差異,在程序設計課程的教學過程中必然會出現(xiàn)思維多樣化的現(xiàn)象。教師要尊重這種認知方式的差異,倡導多樣化的算法思維,即“一題多
解”,鼓勵學生根據(jù)自己的興趣,從不同角度發(fā)現(xiàn)問題和分析問題,用不同的算法解決問題,用不同的程序?qū)崿F(xiàn)算法,培養(yǎng)學生的探索精神和創(chuàng)新意識。強調(diào)多樣化的算法思維,可以有效地強化計算思維,讓學生明白“條條大路通羅馬”的道理。好的算法不一定適用于每個問題和每個學生,并且?guī)缀跛械乃惴ǘ加芯窒扌浴T谠O計上機實驗內(nèi)容時,教師要考慮給出一些可供學生重構的程序片段,培養(yǎng)他們的思維創(chuàng)新能力。所謂重構,就是在已有的程序基礎上衍生出的新的解決問題算法實現(xiàn)。這種通過分析已有程序的優(yōu)缺點,修改并把自己的思維融入新程序的過程,就是 的鍛煉計算思維的訓練手段。教師還應引導學生進行反思和創(chuàng)新聯(lián)系,達到簡化和優(yōu)化算法的目的。這個簡化和優(yōu)化算法的過程可以很好地強化計算思維訓練,幫助學生舉一反三地學好程序設計課程。比如“百雞百錢”問題,大多數(shù)學生都采用三重循環(huán)的算法實現(xiàn)。我們就可以提出改進方案,鼓勵學生積極思考如何采用二重循環(huán)的方式實現(xiàn),然后再比較兩種算法的性能,三重循環(huán)的次數(shù)達到了 100 萬次,而二次循環(huán)是 1 萬次,性能提升了 99%。一個簡單的循環(huán)就可以讓學生認識算法優(yōu)化的魅力,這就可以讓他們繼續(xù)思考如何簡化問題,公雞數(shù)量不可超過 32,就可以在循環(huán)中把公雞數(shù)量由 100 降到 32,同理,母雞也降到 98,這樣循環(huán)又降低了10000-32×98=68 次,比之前的二重循環(huán)又減少了 70%左右,這一系列的簡優(yōu)化處理,對于增強計算思維能力有極大的促進作用。
4 結束語
本文通過分析程序設計課程教學現(xiàn)狀和計算思維的特征,提出了基于計算思維的程序設計課程教學改革方向。并進行了基于計算思維的程序設計課程教學研究與實踐:如計算思維視角下的課程引入;重新梳理和組織教學內(nèi)容,加強基于計算思維的關聯(lián)案例庫建設,創(chuàng)新教學方法;以上機實驗為重點、思維多樣化為核心點的計算思維強化訓練等。將計算思維貫穿于程序設計課程的整個教學過程。實踐證明,這種教學模式對學生計算思維和創(chuàng)新能力的培養(yǎng)大有裨益。將計算思維引入程序設計課程教學的整個過程是必要的也是可行的,教師從計算思維的角度重新審視和組織程序設計基礎的課堂和實踐教學,提煉課程中含有的計算思維的基本概念、方法和思想,通過精心的課程教學設計和實驗指導,可以讓學生樹立用計算機求解問題的意識,認識到計算機對于人的優(yōu)勢和局限性,最終自覺地運用計算思維來看問題、思考問題和解決問題,從而實現(xiàn)教學由傳授知識到培養(yǎng)能力的轉(zhuǎn)變。我們不僅要在程序設計課程中強化計算思維,還應努力把它推廣到更多的計算機課程中去,真正地把強化計算思維做到實處。
參考文獻
[1]JeannetteMW.ComputationalThinking[J].Communica-tionsofACM,2006.49(3):33-35
[2]陳國良,董榮勝.計算思維與大學計算機基礎教育[J].中國大學教學,2011.1:9
[3]董榮勝,古天龍.計算思維與計算機方法論[J].計算機科學,2009.1:1-4
[4]陳杰華,戴麗娟.以培養(yǎng)計算思維為核心的程序設計實驗教學[J].實驗技術與管理,2011.1:125-127
[5]臧勁松.培養(yǎng)學生計算思維的程序設計課程教學[J].計算機教育,2012.2:78-80
[6]于寧,崔武子,蔡春,戴紅.突出計算思維訓練的 VB 程序設計實驗教學[J].實驗技術與管理,2016.9:182-185
熱點文章閱讀