摘要:近年來(lái),由于計(jì)算機(jī)科學(xué)與其他學(xué)科交叉研究的廣度和深度都不斷增加,社會(huì)對(duì)計(jì)算機(jī)應(yīng)用型人才的需求量越來(lái)越大,要求也越來(lái)越高。本文首先對(duì)該類型人才應(yīng)具備的素質(zhì)進(jìn)行了分析,指出計(jì)算思維的重要性;并對(duì)計(jì)算思維的定義、特點(diǎn)和發(fā)展現(xiàn)狀進(jìn)行了介紹;最后結(jié)合計(jì)算機(jī)基礎(chǔ)課程的教學(xué)實(shí)踐,總結(jié)出分治和并行處理等5項(xiàng)計(jì)算思維培養(yǎng)的策略。
關(guān)鍵詞:計(jì)算機(jī)教育;應(yīng)用型人才;計(jì)算思維
1研究背景
隨著計(jì)算機(jī)科學(xué)領(lǐng)域研究成果的不斷豐富和完善,計(jì)算機(jī)技術(shù)已經(jīng)應(yīng)用于非常廣泛的領(lǐng)域,如普適計(jì)算、商業(yè)智能、計(jì)算金融學(xué)、計(jì)算生物學(xué)、計(jì)算物理、計(jì)算醫(yī)學(xué)等,并且與這些學(xué)科之間的交叉越來(lái)越深入。鑒于很多交叉研究具有較強(qiáng)的工程性質(zhì),單單依靠學(xué)術(shù)教育背景的傳統(tǒng)研究型計(jì)算機(jī)人才是不可行的,所以培養(yǎng)能夠快速地將計(jì)算機(jī)技術(shù)應(yīng)用于某一領(lǐng)域,解決該領(lǐng)域具體計(jì)算問(wèn)題的計(jì)算機(jī)應(yīng)用型人才就變得非常重要。
以往,在計(jì)算機(jī)與其他學(xué)科人員共同開(kāi)展研究時(shí),計(jì)算機(jī)專業(yè)背景的研究人員往往被視為“編程者”,他們往往專注于在計(jì)算機(jī)上編程,實(shí)現(xiàn)某個(gè)具體功能、設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)、在屏幕上展現(xiàn)查詢結(jié)果或是以代碼復(fù)用為目的搭建整個(gè)程序的框架。但隨著計(jì)算機(jī)變得無(wú)處不在,使用計(jì)算機(jī)的難度越來(lái)越低,設(shè)計(jì)數(shù)據(jù)庫(kù)、編寫計(jì)算機(jī)程序和復(fù)用他們的難度也不斷降低。這是不是意味著計(jì)算機(jī)專業(yè)背景的研究人員的重要性降低了呢?
當(dāng)然并非如此。事實(shí)上,這恰恰是計(jì)算機(jī)領(lǐng)域和其他領(lǐng)域的交叉研究從松散耦合型合作逐漸轉(zhuǎn)向緊密耦合型合作的一個(gè)標(biāo)志。計(jì)算機(jī)技術(shù)人員正在從單純的編程實(shí)現(xiàn)脫離出來(lái),從配角轉(zhuǎn)為主角,逐步地改變各學(xué)科研究人員對(duì)各自領(lǐng)域的認(rèn)識(shí)和思考方式。例如,機(jī)器學(xué)習(xí)已經(jīng)改變了統(tǒng)計(jì)學(xué),現(xiàn)在各個(gè)組織的統(tǒng)計(jì)部門都已經(jīng)和計(jì)算機(jī)領(lǐng)域密切合作,以完成更具創(chuàng)造性的工作。
這種現(xiàn)狀要求計(jì)算機(jī)應(yīng)用型人才不僅應(yīng)該具有扎實(shí)的編程能力和計(jì)算機(jī)學(xué)科基礎(chǔ),同時(shí)應(yīng)該擅長(zhǎng)抽象和分解問(wèn)題的計(jì)算思維(Computational Thinking)。
對(duì)于計(jì)算機(jī)應(yīng)用型人才的培養(yǎng)來(lái)說(shuō),如何在教學(xué)和實(shí)踐中融入這種計(jì)算思維,使學(xué)生能夠?qū)⑵渥鳛樗麄兟殬I(yè)技能的一部分,解決未來(lái)工作中來(lái)自交叉學(xué)科的問(wèn)題,是本文探討的主題。
2計(jì)算思維
計(jì)算思維一詞由Jeannette M. Wing于2006年提出[1],其定義是:運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問(wèn)題、設(shè)計(jì)系統(tǒng)和理解人類行為。它包括了涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。
典型地,通過(guò)對(duì)計(jì)算思維“是什么,不是什么”的分析,可得到以下特征描述[2]:
是概念化,不是程序化
計(jì)算思維遠(yuǎn)不止意味著能為計(jì)算機(jī)編程,還要求能夠在抽象的多個(gè)層次上思維。
是根本的,不是刻板的技能
根本技能是每一個(gè)人為了在現(xiàn)代社會(huì)中發(fā)揮職能所必須掌握的,而不是意味著機(jī)械重復(fù)的刻板技能。
授,博士生導(dǎo)師,研究方向?yàn)榉植际接?jì)算與計(jì)算機(jī)教育。
是人的,不是計(jì)算機(jī)的思維方式
計(jì)算思維是人類求解問(wèn)題的一條途徑,但絕非要使人類像計(jì)算機(jī)那樣思考。與枯燥且沉悶的計(jì)算機(jī)相比,人類聰穎且富有想象力。使用計(jì)算思維控制計(jì)算設(shè)備,就能用自己的智慧解決在計(jì)算時(shí)代之前不敢解決的問(wèn)題,實(shí)現(xiàn)“只有想不到,沒(méi)有做不到”的境界。
是數(shù)學(xué)和工程思維的互補(bǔ)與融合
計(jì)算機(jī)科學(xué)在本質(zhì)上源于數(shù)學(xué)思維,像所有的科學(xué)一樣,其形式化基礎(chǔ)建筑于數(shù)學(xué)之上。計(jì)算機(jī)科學(xué)又從本質(zhì)上源自工程思維,因?yàn)橐呀?jīng)建造的是現(xiàn)實(shí)存在的硬件和軟件,這些基本計(jì)算工具的限制又迫使人必須計(jì)算性地思考,不能只是數(shù)學(xué)性地思考。
是思想,不是人造物
不只是軟件硬件等人造物以物理形式到處呈現(xiàn)并時(shí)時(shí)刻刻觸及我們的生活,更重要的是接近和求解問(wèn)題、管理日常生活、與他人交流和互動(dòng),計(jì)算的概念無(wú)處不在。
是面向所有的人,所有地方
當(dāng)計(jì)算思維真正融入人類活動(dòng)的整體,以致不再表現(xiàn)為一種顯式哲學(xué)時(shí),它就將成為一種現(xiàn)實(shí)。
計(jì)算思維的概念一經(jīng)提出就產(chǎn)生了廣泛的共鳴。2007年,微軟研究院資助美國(guó)卡內(nèi)基—梅隆大學(xué)建立了計(jì)算思維中心,以尋找計(jì)算機(jī)科學(xué)與其他領(lǐng)域交叉研究的新方法。Pat Phillips對(duì)計(jì)算思維用于計(jì)算機(jī)、物理、數(shù)學(xué)、社會(huì)學(xué)、語(yǔ)文、美術(shù)、生命科學(xué)等學(xué)科教學(xué)的一些基本策略進(jìn)行了綜述[3]。2008年,ACM公布的《CC2001計(jì)算機(jī)科學(xué)教學(xué)指導(dǎo)草案》也明確提出應(yīng)該將計(jì)算思維作為計(jì)算機(jī)科學(xué)教學(xué)的重要組成部分。Peter B. Henderson還將計(jì)算思維與數(shù)學(xué)思維(Mathematical Thinking)[4]進(jìn)行了類比,認(rèn)為二者同等重要,應(yīng)該在人生所有的受教育階段培養(yǎng)計(jì)算思維的能力[5]。
3計(jì)算思維的教學(xué)實(shí)踐
如何明確地將計(jì)算思維融入到課堂教學(xué),以提高學(xué)生運(yùn)用計(jì)算機(jī)知識(shí)抽象和分解問(wèn)題的能力,是一個(gè)挑戰(zhàn)。
在計(jì)算機(jī)基礎(chǔ)課程的教學(xué)實(shí)踐階段,我們對(duì)學(xué)生計(jì)算思維的培養(yǎng)進(jìn)行了一些嘗試。涉及了5項(xiàng)計(jì)算機(jī)科學(xué)基礎(chǔ)概念,包括:
分治算法
將一個(gè)大規(guī)模的問(wèn)題分解為數(shù)個(gè)規(guī)模較小的子問(wèn)題,這些子問(wèn)題相互獨(dú)立且與原問(wèn)題性質(zhì)相同。求出子問(wèn)題的解,就可得到原問(wèn)題的解。
數(shù)據(jù)級(jí)并行處理
將要處理的大數(shù)據(jù)集分割為數(shù)個(gè)完全獨(dú)立的小數(shù)據(jù)集,再均勻地分配到物理獨(dú)立的多個(gè)計(jì)算單元(處理器核)中去完成處理,最后將處理結(jié)果合并。
任務(wù)級(jí)并行處理
將一個(gè)耗時(shí)的大任務(wù)分解為數(shù)個(gè)規(guī)模較小、性質(zhì)相同或不同的子任務(wù),這些子任務(wù)可以獨(dú)立處理,互不影響。將每個(gè)小任務(wù)分配給一個(gè)線程執(zhí)行,這些線程則被操作系統(tǒng)調(diào)度器分配到物理獨(dú)立的多個(gè)計(jì)算單元(處理器核)中去。
迭代和收斂
對(duì)一組指令進(jìn)行重復(fù)執(zhí)行,每次執(zhí)行這組指令時(shí),都從結(jié)果數(shù)據(jù)的一組原值推出它的一組新值,如果這組新值不斷接近于期望結(jié)果,稱其為收斂。
分支結(jié)構(gòu)
依據(jù)一定的邏輯判斷條件選擇執(zhí)行路徑的策略,關(guān)鍵在于構(gòu)造合適的分支條件和分析路徑和流程,根據(jù)不同的目標(biāo)流程選擇適當(dāng)?shù)姆种дZ(yǔ)句。
計(jì)算機(jī)基礎(chǔ)課程的最后一個(gè)環(huán)節(jié)是完成一個(gè)Access數(shù)據(jù)庫(kù)開(kāi)發(fā)系統(tǒng),在教學(xué)中分三種方式開(kāi)展。一是學(xué)生個(gè)人獨(dú)立完成,二是學(xué)生分組完成,這兩種方式均是由學(xué)生確定目標(biāo)、自由發(fā)揮的。第三種方式是教師講解上述計(jì)算機(jī)科學(xué)基礎(chǔ)概念的理念,并指導(dǎo)學(xué)生將這些計(jì)算思維融入實(shí)際開(kāi)發(fā)過(guò)程。
結(jié)果顯示,采用第一種方式開(kāi)發(fā)的系統(tǒng)功能比較簡(jiǎn)單,包含的錯(cuò)誤較多。采用第二種方式開(kāi)發(fā)的系統(tǒng)比第一組有明顯的改觀,能看出是在多名學(xué)生的共同合作下完成的,系統(tǒng)中引入了更加豐富的功能,但是也包含了更多的錯(cuò)誤。究其原因,是加入豐富功能的同時(shí)使開(kāi)發(fā)變得復(fù)雜,時(shí)間也變得相對(duì)緊迫,導(dǎo)致不能有質(zhì)量地完成系統(tǒng)。
本文主要關(guān)注第三種開(kāi)發(fā)方式。按照融合計(jì)算思維的課程設(shè)計(jì),首先由教師列出系統(tǒng)的幾項(xiàng)主要功能,引導(dǎo)組長(zhǎng)(由組員輪流擔(dān)任)運(yùn)用分治算法的計(jì)算思維指導(dǎo)組內(nèi)的分工,將大的功能分為較小的功能模塊,根據(jù)模塊的復(fù)雜程度和組內(nèi)的人員數(shù)進(jìn)行分工,把一個(gè)復(fù)雜的系統(tǒng)的開(kāi)發(fā)變成一系列子模塊的開(kāi)發(fā)。
功能模塊劃分后,開(kāi)始具體的開(kāi)發(fā),這會(huì)涉及到很多細(xì)節(jié)的問(wèn)題,比如建立數(shù)據(jù)庫(kù)的表、建立表之間的關(guān)系、錄入數(shù)據(jù)及基于數(shù)據(jù)庫(kù)的VBA操作等。建立數(shù)據(jù)庫(kù)時(shí),運(yùn)用數(shù)據(jù)級(jí)并行處理的計(jì)算思維,讓每個(gè)組員分別建庫(kù),再將庫(kù)合并,以提高建庫(kù)的速度。教師引導(dǎo)學(xué)生分析并行效率,即如果庫(kù)表很少,導(dǎo)致分解庫(kù)表、建立庫(kù)表、傳輸庫(kù)表和合并庫(kù)表全過(guò)程的時(shí)間高于一個(gè)人建庫(kù)的時(shí)間,那么這種并行處理就不值得開(kāi)發(fā)實(shí)踐。同時(shí)引導(dǎo)學(xué)生分析建立多大的庫(kù)時(shí)才有必要使用并行處理方法,得到量化的結(jié)果。同時(shí),運(yùn)用任務(wù)級(jí)并行處理的計(jì)算思維,使建庫(kù)與VBA編程同步進(jìn)行,這里要特別關(guān)注分工的任務(wù)量均衡性,盡量在同一時(shí)間段完成任務(wù)。
當(dāng)各子功能模塊均實(shí)現(xiàn)后,整個(gè)系統(tǒng)的原型就建立了,這個(gè)原型并不完善,需要教師指導(dǎo)學(xué)生理解迭代和收斂的計(jì)算思維,不斷迭代地優(yōu)化系統(tǒng)模型,直到功能性錯(cuò)誤完全消除,性能方面的錯(cuò)誤足夠少,視為收斂,得到完成的系統(tǒng)。
對(duì)于完成的系統(tǒng),可以再采用分支結(jié)構(gòu)的計(jì)算思維,對(duì)已完成的項(xiàng)目進(jìn)行測(cè)試和排錯(cuò),即按照輸入數(shù)據(jù)得到輸出結(jié)果,根據(jù)結(jié)果確定處理方式。
結(jié)果表明,在同等時(shí)間周期和同樣分組開(kāi)發(fā)的情況下,第三種方式開(kāi)發(fā)的系統(tǒng)不僅功能豐富,錯(cuò)誤數(shù)量也大幅減少。這是由于第三種方式有意識(shí)地引入了計(jì)算思維,指導(dǎo)學(xué)生分解和處理問(wèn)題的關(guān)鍵環(huán)節(jié),得到了更好的教學(xué)效果。在接觸和實(shí)踐了計(jì)算思維后,學(xué)生可以將其思維運(yùn)用于后續(xù)的課程,并逐步提高這種能力。
4結(jié)語(yǔ)
必須指出的是,與培養(yǎng)計(jì)算思維吻合的教學(xué)方法多年以來(lái)一直被朦朦朧朧地使用,只不過(guò)在計(jì)算思維概念被提出后,這些方法才上升到另一個(gè)高度。
實(shí)踐表明,將計(jì)算思維融合于教學(xué)實(shí)踐提高了教學(xué)質(zhì)量,提高了學(xué)生解決問(wèn)題的能力,對(duì)計(jì)算機(jī)應(yīng)用型人才的培養(yǎng)大有裨益。
參考文獻(xiàn):
[1] Wing J M. Computational Thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.
[2] 周以真. 計(jì)算思維[J]. 中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊, 2007, 3(11): 83-85.
[3] Phillips P. Computational Thinking, a problem-solving tool for every classroom[EB/OL]. [2008-10-15].http://www. cs.cmu.edu/~CompThink/resources/ct_pat_phillips.pdf.
[4] Henderson P B, Baldwin D, Dasigi V, et al. Striving for mathematical thinking[C]//In Working Group Reports From ITiCSE on innovation and Technology in Computer Science Education (Canterbury, UK). ITiCSE-WGR '01,ACM, New York, 2001: 114-124.
[5] Henderson P B. Ubiquitous Computational Thinking[J]. Computer, 2009, 42(10): 100-102.
Research on Cultivating Applied Talents with Computational Thinking
REN Hua-min1, CHEN Ming2
(1. Information Center, Beijing University of Chinese Medicine, Beijing 100022, China ; 2. Information Engineering College,
Capital Normal University, Beijing 100048, China)
Abstract: As multidisciplinary studies between computer science and other professional fields keep increasing in recent years, the requirement of applied talents in computer science and engineering becomes larger and larger. First, the qualification that the applied talents should possess is analyzed and the importance of computational thinking is proposed. Then, the definition, characteristics and development of computational thinking is introduced. Besides that, a series of cultivation strategies for computational thinking are proposed under teaching practice of fundamentals of computer course.
Key words: computer education; applied talents; computer mind
(編輯:張玥)