鎮(zhèn)江船艇學(xué)院信息技術(shù)教研室 杜曉靜 何秋燕 楊 珍
以計(jì)算思維為導(dǎo)向的程序設(shè)計(jì)基礎(chǔ)教育探索
鎮(zhèn)江船艇學(xué)院信息技術(shù)教研室 杜曉靜 何秋燕 楊 珍
本文簡要介紹了計(jì)算思維的概念和特征,從程序設(shè)計(jì)理論和實(shí)踐教學(xué)入手, 探討對(duì)學(xué)生計(jì)算思維能力的培養(yǎng)。
教學(xué);程序設(shè)計(jì);計(jì)算思維
2010年“第六屆大學(xué)計(jì)算機(jī)課程報(bào)告論壇”中,陳國良院士指出,計(jì)算思維能力是大學(xué)計(jì)算機(jī)基礎(chǔ)課程教育過程中一個(gè)重要的培養(yǎng)目標(biāo)。人類科學(xué)發(fā)展的三大支柱是理論科學(xué)、實(shí)驗(yàn)科學(xué)和計(jì)算科學(xué),與之相對(duì)應(yīng)的是人們認(rèn)識(shí)世界、改造世界的三種思維方式,即理論思維、實(shí)驗(yàn)思維和計(jì)算思維[1]。
程序設(shè)計(jì)基礎(chǔ)課程是高校非計(jì)算機(jī)專業(yè)必修的公共課,教學(xué)目標(biāo)是培訓(xùn)學(xué)員的基本編程能力、邏輯思維能力和抽象思維能力。當(dāng)前程序設(shè)計(jì)基礎(chǔ)的教學(xué)中存在如下兩個(gè)主要問題:第一,學(xué)員的計(jì)算機(jī)理論知識(shí)儲(chǔ)備不夠,沒有成體系的專業(yè)知識(shí)結(jié)構(gòu),因此,學(xué)員對(duì)計(jì)算機(jī)的“思維方式”與傳統(tǒng)解題方式的區(qū)別難以理解,接受較慢。第二,在實(shí)踐中出現(xiàn)“重結(jié)果、輕過程”,“重編碼,輕算法”的現(xiàn)象。學(xué)員往往把學(xué)習(xí)重心放到基礎(chǔ)語法的學(xué)習(xí)上,全神貫注于看到程序“運(yùn)行結(jié)果”,不注重從宏觀的角度總結(jié)問題,也不注重求解的構(gòu)建過程,忽略了思維方式的鍛煉。因此,在教學(xué)中的首要問題應(yīng)該是培養(yǎng)學(xué)員的程序設(shè)計(jì)和計(jì)算思維能力。
目前國際上廣泛認(rèn)同的計(jì)算思維定義來自美國卡內(nèi)基·梅隆大學(xué)的周以真(J.M.Wing)教授,周教授于2006年提出:計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)和人類行為理解,它是涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)[2]。計(jì)算思維的本質(zhì)是抽象(abstraction)和自動(dòng)化(automation)[3]。抽象是通過簡化、轉(zhuǎn)換、遞歸、嵌入等方法,將一個(gè)復(fù)雜問題轉(zhuǎn)換成許多簡單的子問題并進(jìn)行求解的過程,這是所有科學(xué)發(fā)現(xiàn)的必然過程;自動(dòng)化是充分利用計(jì)算機(jī)運(yùn)算能力來實(shí)現(xiàn)問題求解,以彌補(bǔ)人的計(jì)算缺陷,這將豐富計(jì)算機(jī)的應(yīng)用范圍。因此計(jì)算思維是一種形式規(guī)整、問題求解和人機(jī)共存的思維。
需要指出的是:計(jì)算思維不是俠義的計(jì)算,而是運(yùn)用計(jì)算機(jī)基本概念去求解問題、設(shè)計(jì)系統(tǒng)和理解人類的行為[2]。
思維方法比知識(shí)本身更重要,作為從事計(jì)算機(jī)基礎(chǔ)教學(xué)的一線教師,應(yīng)該在日常教學(xué)中潛移默化地訓(xùn)練和培養(yǎng)學(xué)員的計(jì)算思維能力,提高他們的計(jì)算思維素養(yǎng),從而進(jìn)一步培養(yǎng)和鍛煉學(xué)員的創(chuàng)新能力。
教師對(duì)學(xué)員進(jìn)行直接教學(xué)指導(dǎo)產(chǎn)生應(yīng)該保證基于計(jì)算思維,然后再運(yùn)用其它教學(xué)手段和方法來輔助和引導(dǎo)學(xué)員進(jìn)行知識(shí)點(diǎn)的構(gòu)建和學(xué)習(xí)問題的思考與解決。通過計(jì)算思維的一系列方法——遞歸,關(guān)注點(diǎn)分析,抽象和分解,保護(hù)、冗余、容錯(cuò)、糾錯(cuò)和恢復(fù),利用啟發(fā)式推理來尋求解答,在不確定情況下的規(guī)劃、學(xué)習(xí)和調(diào)度等,達(dá)到引出問題,深入探究、找尋答案,討論交流、得出結(jié)論,反思自評(píng)、內(nèi)化知識(shí)的目的。當(dāng)學(xué)員掌握了知識(shí)點(diǎn)的同時(shí)也掌握計(jì)算思維方法之后,再通過已獲得的知識(shí)和方法自主建構(gòu)學(xué)習(xí)的知識(shí)和學(xué)習(xí)的框架,相互間交流協(xié)作,同時(shí)運(yùn)用計(jì)算思維方法達(dá)到遷移拓展科學(xué)知識(shí)的目的。在這整個(gè)學(xué)習(xí)過程中,所有的學(xué)習(xí)過程都通過一系列基于計(jì)算思維的學(xué)習(xí)方法展開。
程序設(shè)計(jì)基礎(chǔ)課程是理論與實(shí)踐并重的課程,在實(shí)際教學(xué)過程中兩部分的教學(xué)都必須以面向計(jì)算機(jī)思維為導(dǎo)向,否則該課程的教育就是不完善不成功的。
將計(jì)算思維與程序設(shè)計(jì)課程教學(xué)的結(jié)合主要體現(xiàn)在兩個(gè)方面:首先要保證在整個(gè)教學(xué)過程中要貫穿抽象和自動(dòng)化這兩個(gè)核心思想,其次要根據(jù)講授的具體知識(shí)點(diǎn)恰當(dāng)?shù)匾胗?jì)算思維中所有的其他基本概念和思維方法。
傳統(tǒng)教學(xué)一般是先講解本次課所學(xué)語法的基本結(jié)構(gòu),接著講解具體的例子,最后總結(jié)、布置作業(yè)的過程。從計(jì)算思維的角度出發(fā),教學(xué)內(nèi)容采用“問題導(dǎo)入語法、語法引入應(yīng)用、應(yīng)用面向?qū)嵺`”的方式,突出知識(shí)點(diǎn)與技術(shù)點(diǎn)的關(guān)聯(lián)性,注重內(nèi)容在應(yīng)用上的層次性。
以循環(huán)結(jié)構(gòu)為例,該結(jié)構(gòu)要求程序根據(jù)對(duì)某個(gè)特定條件的判斷來決定是否重復(fù)多次進(jìn)行某一特定的相同操作。教學(xué)可分以下幾步進(jìn)行:
①初始時(shí)結(jié)合學(xué)員日常生活舉例:列隊(duì)報(bào)數(shù),沒有報(bào)到隊(duì)尾時(shí)每名學(xué)員要在前一名學(xué)員數(shù)字上加1后大聲報(bào)出,使整個(gè)教學(xué)顯得過渡自然,給同學(xué)們展示了現(xiàn)在所學(xué)的知識(shí)已經(jīng)實(shí)實(shí)在在存在于我們的日常生活中,不僅可以拉近與他們的距離,更重要是讓他們覺得所講授的內(nèi)容比較簡單,為后續(xù)教學(xué)活動(dòng)的開展埋下了伏筆。
②采用抽象的方法,提煉出循環(huán)結(jié)構(gòu)的基本結(jié)構(gòu),然后再引入學(xué)員中學(xué)就已熟悉的等比數(shù)列;接著把等比數(shù)列前n項(xiàng)求和的算術(shù)問題轉(zhuǎn)換成對(duì)應(yīng)的循環(huán)結(jié)構(gòu),這樣不露聲色把數(shù)學(xué)的思想灌輸給學(xué)員。
③在學(xué)員已經(jīng)基本掌握的基礎(chǔ)上,再增加一次實(shí)踐的機(jī)會(huì),給出現(xiàn)實(shí)生活中一個(gè)例子:如求班級(jí)平均分問題;鼓勵(lì)學(xué)員積極思考,同時(shí)引入計(jì)算思維的約簡、嵌入、轉(zhuǎn)化等方法,把復(fù)雜的問題轉(zhuǎn)分解易于解決的問題并加以實(shí)現(xiàn)。
④再進(jìn)一步拓展,從問題入手,例如:九九乘法口訣表,引入多層循環(huán)嵌套結(jié)構(gòu),著重分析基本結(jié)構(gòu)與多層循環(huán)嵌套結(jié)構(gòu)的異同和適用的范圍,使整個(gè)知識(shí)點(diǎn)鏈自然形成。
在整個(gè)教學(xué)過程中,運(yùn)用問題誘發(fā)學(xué)員使用抽象的思想和方法,學(xué)習(xí)用抽象方法去表達(dá)自己的想法并建模,能夠透過現(xiàn)象看本質(zhì),通過持續(xù)的訓(xùn)練達(dá)到完全掌握抽象這個(gè)工具。
計(jì)算思維目前是程序設(shè)計(jì)類課程教學(xué)關(guān)注的熱點(diǎn)。最終目的是提高學(xué)生的程序設(shè)計(jì)能力和分析解決問題的能力。因此,我們要充分認(rèn)識(shí)到計(jì)算思維的重要性。在教學(xué)的實(shí)施過程中要突出運(yùn)用計(jì)算機(jī)知識(shí)解決問題的思想,培養(yǎng)并訓(xùn)練學(xué)生運(yùn)用計(jì)算思維去思考并解決問題。
[1]陳國良.計(jì)算思維與大學(xué)計(jì)算機(jī)基礎(chǔ)教育[R].濟(jì)南:第六屆大學(xué)計(jì)算機(jī)課程報(bào)告論壇,2010.
[2]Jeannette M W.Computational Thinking[J].Communications of ACM,2006,49(3):33-35.
[3]董榮勝,古天龍.計(jì)算思維與計(jì)算機(jī)方法論[J].計(jì)算機(jī)科學(xué),2009(1):1-4.
[4]賈茹,郝長勝,裴衣非.VB程序設(shè)計(jì)課程的計(jì)算思維教學(xué)實(shí)踐[J].電腦知識(shí)與技術(shù),2011(25):6266-6268.
[5]吳紹兵.計(jì)算思維和程序設(shè)計(jì)能力的培養(yǎng)[J].計(jì)算機(jī)教育,2011(16):11-4.
[6]周顯春,劉東山.基于計(jì)算思維能力培養(yǎng)的程序設(shè)計(jì)課程教學(xué)研究[J].電腦知識(shí)與技術(shù),2012(35):8475-8477.
杜曉靜(1975—),女,鎮(zhèn)江船艇學(xué)院講師,研究方向:網(wǎng)絡(luò)安全。
何秋燕(1981—),女,鎮(zhèn)江船艇學(xué)院講師,研究方向:網(wǎng)絡(luò)安全。
楊珍(1977—),女,鎮(zhèn)江船艇學(xué)院講師,研究方向:分布式數(shù)據(jù)庫。