張鋼 冉娟 朱鵬飛 張寧
摘要:為了避免程序設(shè)計(jì)入門課程教學(xué)容易忽略的“思想”和“方法”問題,提出引入基于流程圖可視化軟件Raptor作為程序設(shè)計(jì)工具,詳細(xì)闡述“Raptor流程圖+算法設(shè)計(jì)”教學(xué)模式的優(yōu)勢,最后總結(jié)教學(xué)實(shí)踐體會,說明教學(xué)效果。
關(guān)鍵詞:Raptor;程序設(shè)計(jì);計(jì)算思維
1 背景
數(shù)學(xué)思維強(qiáng)調(diào)的是數(shù)與形的邏輯關(guān)系、演算推理能力,計(jì)算思維則是強(qiáng)調(diào)問題求解的操作過程和機(jī)器實(shí)現(xiàn)。在信息技術(shù)快速發(fā)展和廣泛應(yīng)用的當(dāng)今社會,計(jì)算思維已不知不覺地體現(xiàn)在社會生活各個方面,成為了現(xiàn)代社會不可缺少的基本技能。在教育部高等學(xué)校大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會的推動下,通過各高校的教學(xué)改革實(shí)踐以及各種論壇的廣泛交流,目前已經(jīng)形成了基本共識,即:大學(xué)計(jì)算機(jī)基礎(chǔ)課程的核心價值就是培養(yǎng)學(xué)生的計(jì)算思維。要想以培養(yǎng)學(xué)生計(jì)算思維能力為核心,就要使計(jì)算思維如同邏輯思維一樣,學(xué)生在這種思維指導(dǎo)下學(xué)習(xí),不僅是掌握計(jì)算機(jī)科學(xué)知識,而且要讓計(jì)算思維成為每個學(xué)生應(yīng)具備的基本能力。既然是每個學(xué)生都必須掌握的思維能力,該如何培養(yǎng)學(xué)生具有這種思維方式?又該如何讓學(xué)生學(xué)會用計(jì)算思維的方式思考問題和解決問題?這顯然不是某門課程能獨(dú)立做到的,它需要滲透到每一門課程中,把這種抽象的思維方式融入到學(xué)生的生活和今后工作中。
長久以來,各高校都將“C語言程序設(shè)計(jì)”作為新生一入學(xué)后必須掌握的一門程序語言設(shè)計(jì),其目的是為了教會學(xué)生程序設(shè)計(jì)的“思想”和“方法”,能夠運(yùn)用其思想和方法來解決實(shí)際問題。但通過多年的教學(xué)實(shí)踐發(fā)現(xiàn):學(xué)生剛開始學(xué)習(xí)時,興趣十足,愿意花費(fèi)很多時間來研究與學(xué)習(xí),但隨著后續(xù)學(xué)習(xí)過程中語法的增多和算法設(shè)計(jì)的增大,學(xué)生不得不將課程學(xué)習(xí)的重心從程序設(shè)計(jì)方法轉(zhuǎn)移到語法規(guī)則上,忽略程序設(shè)計(jì)的思想和方法,久而久之,學(xué)生面對這些煩瑣的語法時就失去了對程序設(shè)計(jì)的學(xué)習(xí)興趣,無形中在他們的大腦中就形成了程序設(shè)計(jì)課程難、學(xué)不會等印象,導(dǎo)致了C語言程序設(shè)計(jì)課程教學(xué)效果的下降。
這就必須改革教學(xué)內(nèi)容和教學(xué)方法,試著探索在程序設(shè)計(jì)中拋開煩瑣的語法規(guī)則,真正體現(xiàn)程序設(shè)計(jì)的“思想”和“方法”,實(shí)現(xiàn)學(xué)習(xí)程序設(shè)計(jì)的目的就是讓學(xué)生學(xué)會解決問題,讓計(jì)算思維成為學(xué)生應(yīng)具備的基本能力。為此,我校率先在2014級開設(shè)了“Raptor可視化程序設(shè)計(jì)”課程,將Raptor作為程序設(shè)計(jì)工具,讓學(xué)生從簡單易懂的程序流程圖人手,學(xué)習(xí)程序設(shè)計(jì)的“思想”和“方法”,將學(xué)生學(xué)習(xí)重心放到程序設(shè)計(jì)的本身上,強(qiáng)調(diào)對問題的求解與實(shí)現(xiàn)方法,這樣不僅能激發(fā)學(xué)生的學(xué)習(xí)興趣,還有利于學(xué)生思維方式和思維能力的培養(yǎng)。在此基礎(chǔ)上,提出以“Raptor流程圖+算法設(shè)計(jì)”為教學(xué)改革思路,從基本問題到綜合問題不斷逐步深入,通過利用“發(fā)現(xiàn)問題一分析問題一尋求多種解決方案一多種方案比較優(yōu)化”的“任務(wù)驅(qū)動式問題求解”的訓(xùn)練方法,從而實(shí)現(xiàn)解決實(shí)際問題的教學(xué)模式。
根據(jù)以上思路,以“計(jì)算思維”為導(dǎo)向的程序設(shè)計(jì)課程教學(xué)目標(biāo)應(yīng)集中體現(xiàn)在以下方面:
(1)知識能力:沒有煩瑣語法的程序設(shè)計(jì),課程強(qiáng)調(diào)程序設(shè)計(jì)的“思想”和“方法”,在知識能力目標(biāo)上,要讓學(xué)生首先掌握程序設(shè)計(jì)基本概念,然后是程序設(shè)計(jì)的思想、設(shè)計(jì)方法、調(diào)試方法。
(2)技術(shù)能力:學(xué)習(xí)程序設(shè)計(jì)的目的就是為了解決各種實(shí)際問題,能夠?qū)?shí)際問題以抽象化和程序化的形式表示出來,在教學(xué)過程中不僅要注重對學(xué)生分析問題、抽象問題能力的培養(yǎng),更要注重對問題求解與數(shù)學(xué)建模、算法優(yōu)化等能力的培養(yǎng)。
(3)創(chuàng)新能力:突出計(jì)算思維能力的培養(yǎng)是程序設(shè)計(jì)教學(xué)的教育價值,因此應(yīng)倡導(dǎo)算法思維的多樣化,不僅能培養(yǎng)學(xué)生的實(shí)踐能力,還能培養(yǎng)學(xué)生的創(chuàng)新能力。
2 基于流程圖的可視化軟件Raptor
Raptor是一種基于流程圖的可視化編程工具,它具有以下特點(diǎn):
(1)由各種相互連接的圖形符號構(gòu)成可執(zhí)行的流程圖,最大限度地減少了程序語言的語法理解。
(2)操作簡單,學(xué)生只需要通過拖拽操作就可將不同圖形符號放置到所需要的位置上,工具軟件就可以自動將這些不同圖形符號連接在一起,形成一個完整的流程圖。
(3)簡單易懂,由于流程圖與自然的思維過程相近,能夠比較簡單地讓學(xué)生掌握和理解程序的設(shè)計(jì)與算法。
Raptor除了具有流程圖特色外,還具有其他諸多重要特點(diǎn),例如,計(jì)算操作的原子化和算法的執(zhí)行步驟統(tǒng)計(jì)等,為算法設(shè)計(jì)、算法優(yōu)化、算法復(fù)雜性分析提供了有力的實(shí)驗(yàn)或驗(yàn)證手段。
3 “Raptor流程圖+算法設(shè)計(jì)”教學(xué)模式
融入計(jì)算思維的程序設(shè)計(jì)課程的教學(xué)內(nèi)容要以“程序設(shè)計(jì)”為中心,從基本問題到綜合問題逐步深入,通過利用“發(fā)現(xiàn)問題一分析問題一尋求多種解決方案一多種方案比較優(yōu)化”的“任務(wù)驅(qū)動式問題求解”的訓(xùn)練方法,來實(shí)現(xiàn)實(shí)際問題的解決,從而達(dá)到提升學(xué)生計(jì)算思維能力的目的。具體實(shí)施包括以下幾個方面。
3.1 課程教學(xué)內(nèi)容循序漸進(jìn),便于思維訓(xùn)練連貫性
課堂教學(xué)內(nèi)容的選擇應(yīng)從新生對程序認(rèn)知能力實(shí)際出發(fā),選取更多趣味性和貼近生活的案例,由基本問題到綜合問題逐步深入,讓學(xué)生能夠循序漸進(jìn)掌握程序設(shè)計(jì)方法,也便于思維訓(xùn)練的連貫性。表1為“猜數(shù)游戲”任務(wù)案例。
3.2 強(qiáng)化課程實(shí)踐環(huán)節(jié),提升學(xué)習(xí)興趣
根據(jù)《大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求》所提出要加強(qiáng)實(shí)踐教學(xué),注重能力培養(yǎng),提升學(xué)生的計(jì)算思維能力。在教學(xué)過程中,根據(jù)學(xué)生對編程不同的認(rèn)知能力和層次水平,將該課程的實(shí)踐內(nèi)容分為基礎(chǔ)題、中級題和高級選作題三類,讓學(xué)生根據(jù)自己層次能力來完成題目?;A(chǔ)題目一般包括雞兔同籠問題、判斷明年是否是閏年、20以內(nèi)累加和、創(chuàng)建數(shù)組等;中等題目一般包括水仙花數(shù)、100以內(nèi)的奇偶數(shù)之和、百萬富翁換錢、出售金魚等;高級選作題目一般包括打印等腰三角形、抓交通肇事犯、字母出現(xiàn)頻率的統(tǒng)計(jì)等。除此之外,恰當(dāng)?shù)娜の冻绦蛟O(shè)計(jì)內(nèi)容也提升了學(xué)生對程序設(shè)計(jì)學(xué)習(xí)興趣和對知識點(diǎn)的掌握。
3.3 思維多樣化。提升計(jì)算思維能力
算法設(shè)計(jì)實(shí)踐旨在訓(xùn)練學(xué)生抽象思維能力,在程序設(shè)計(jì)課程的教學(xué)活動中,教師應(yīng)尊重每位學(xué)生在思維能力和心理特征上存在的個體差異,倡導(dǎo)多樣化的算法思維,鼓勵學(xué)生對問題能夠“一題多解”,通過分析找出不同解法的優(yōu)缺點(diǎn),并根據(jù)其優(yōu)缺點(diǎn)完善自我的程序,從而激發(fā)學(xué)生的思維活動,提升學(xué)生的計(jì)算思維能力。
3.4 課程教學(xué)方法的創(chuàng)新
程序設(shè)計(jì)強(qiáng)調(diào)理論聯(lián)系實(shí)際,如何從培養(yǎng)計(jì)算思維能力的角度,把課堂講授、上機(jī)實(shí)踐、課后輔導(dǎo)3個環(huán)節(jié)有機(jī)地結(jié)合起來,需要對教學(xué)方法不斷總結(jié)和創(chuàng)新,主要包括:
(1)引入討論教學(xué)法。將學(xué)生作為教學(xué)主體,師生共享。鼓勵學(xué)生發(fā)散思維,引導(dǎo)學(xué)生思考和分析不同算法的優(yōu)缺點(diǎn),進(jìn)而對程序算法進(jìn)行簡化和優(yōu)化。如:在數(shù)組中查找數(shù)據(jù)(見圖1和圖2),大多數(shù)學(xué)生采用二重循環(huán)的算法實(shí)現(xiàn),引導(dǎo)學(xué)生思考如何改為一重循環(huán),然后對兩種算法為何執(zhí)行的算法效率不同進(jìn)行比較與分析。這樣不僅能調(diào)動學(xué)生對程序設(shè)計(jì)課程的學(xué)習(xí)興趣,并且可以啟發(fā)學(xué)生自主思考,從而為培養(yǎng)學(xué)生計(jì)算思維能力打下基礎(chǔ)。
(2)案例分析教學(xué)法。以教師為主,學(xué)生分享為輔。教學(xué)過程中通過多種案例分析對一個知識點(diǎn)舉一反三,讓學(xué)生不僅掌握知識點(diǎn),也學(xué)會靈活應(yīng)用。
(3)興趣分組教學(xué)法。通過學(xué)生自愿組合的方式,將學(xué)生分成若干小組,每次布置作業(yè)后,隨機(jī)抽出小組成員對程序作業(yè)進(jìn)行講解,小組間互為評分、提問,不僅能夠充分調(diào)動學(xué)生動手實(shí)踐能力,并且也能鍛煉團(tuán)隊(duì)內(nèi)的協(xié)作精神。
4 教學(xué)實(shí)踐體會
在2014級和2015級開設(shè)的“Raptor可視化程序設(shè)計(jì)”課程實(shí)踐,不但取得了良好的教學(xué)效果,而且也得到了學(xué)生的認(rèn)可。據(jù)學(xué)生問卷調(diào)查顯示:90%的學(xué)生認(rèn)為Raptor這種簡單明了的程序設(shè)計(jì)方式不僅容易讓學(xué)生理解和接受,而且通過對學(xué)生學(xué)習(xí)思考能力的培養(yǎng)和對程序設(shè)計(jì)學(xué)習(xí)熱情的引導(dǎo),能夠讓學(xué)生對學(xué)習(xí)程序設(shè)計(jì)產(chǎn)生強(qiáng)烈的學(xué)習(xí)動力和學(xué)習(xí)興趣。在克服對程序設(shè)計(jì)的恐懼感的同時,培養(yǎng)了學(xué)生嚴(yán)謹(jǐn)認(rèn)真的思維邏輯能力,增強(qiáng)了學(xué)生之間的交流與溝通、共同探討解題思路和方法、團(tuán)結(jié)協(xié)作的精神。
在當(dāng)今信息技術(shù)快速發(fā)展的時代,Raptor作為一種簡單易懂的可視化編程軟件,可以使用流程圖的方式來模擬程序的設(shè)計(jì),體現(xiàn)利用計(jì)算機(jī)來求解問題的過程和方法,它不僅增強(qiáng)學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣,而且通過對問題的思考、討論、交流,出示解決問題的流程圖并運(yùn)行結(jié)果,使程序設(shè)計(jì)中原本抽象的教學(xué)過程變得更加清晰,讓學(xué)生親歷知識的產(chǎn)生和形成的過程。應(yīng)當(dāng)在教授計(jì)算機(jī)技術(shù)的同時,加強(qiáng)思維教育意識,讓學(xué)生增強(qiáng)運(yùn)用計(jì)算思維的能力,使計(jì)算思維成為當(dāng)代大學(xué)生的基本技能。