韓杰 馮浩
摘要:計(jì)算思維的培養(yǎng)研究是當(dāng)前教育領(lǐng)域的一個(gè)重要熱點(diǎn)課題,它對(duì)信息時(shí)代的科技創(chuàng)新和人才創(chuàng)新有著至關(guān)重要的作用?,F(xiàn)階段,計(jì)算思維的培養(yǎng)主要落腳于高等教育領(lǐng)域中的計(jì)算機(jī)學(xué)科。因此,如何從計(jì)算機(jī)課程培養(yǎng)大學(xué)生的計(jì)算思維能力得到了廣泛的關(guān)注。文章以算法設(shè)計(jì)的角度出發(fā),結(jié)合在校大學(xué)生的實(shí)際情況,探討如何在算法設(shè)計(jì)教學(xué)中培養(yǎng)計(jì)算思維能力。對(duì)大學(xué)生特別是非計(jì)算機(jī)專業(yè)的學(xué)生有著非常重要的實(shí)踐意義。
關(guān)鍵詞:思維背景;算法設(shè)計(jì);思維視角
中圖分類號(hào):TP301.6 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-9129(2018)07-0019-02
Abstract: The study of the cultivation of computational thinking is an important hot topic in the field of education. It plays a crucial role in technological innovation and talent innovation in the information age. At this stage, the cultivation of computing thinking is mainly focused on computer science in the field of higher education. Therefore, how to train students' computing thinking ability from computer courses has received extensive attention. From the point of view of algorithm design, the article combines the actual situation of college students and discusses how to train computing thinking ability in algorithm design teaching. It is of great practical significance to college students, especially those who are not computer majors.
Keywords: thinking background algorithm design thinking perspective
1 計(jì)算思維背景
隨著時(shí)代的快速發(fā)展,信息數(shù)字化已成為當(dāng)今社會(huì)的基本形態(tài)特征,深刻影響著人們的日常生活方式和思維過程?;仡櫼幌拢畮啄甑膶W(xué)習(xí)生涯中,學(xué)生學(xué)到了很多的專業(yè)知識(shí),而在真正的生活和工作中,需要用到這些思維方式的場(chǎng)景卻少之又少,取而代之的是與計(jì)算機(jī)打交道。由于計(jì)算機(jī)強(qiáng)大的計(jì)算能力,人類應(yīng)該學(xué)會(huì)利用這種力量去解決更多的問題。舉個(gè)例子,老師布置了一個(gè)任務(wù),需要將各自紙質(zhì)版的作業(yè)登記到電腦中,有的學(xué)生會(huì)逐字逐句地將作業(yè)內(nèi)容敲到電腦里面;有的學(xué)生會(huì)通過對(duì)紙質(zhì)版的內(nèi)容拍照,使用小程序“傳圖識(shí)字”(算法設(shè)計(jì)衍生的產(chǎn)物)對(duì)照片進(jìn)行自動(dòng)識(shí)別,轉(zhuǎn)化為文字上傳到電腦上;更有甚者,部分學(xué)生會(huì)通過自己設(shè)計(jì)相應(yīng)的圖像處理算法,對(duì)紙質(zhì)版的內(nèi)容進(jìn)行批量處理,一勞永逸。當(dāng)今社會(huì)計(jì)算機(jī)無處不在,很明顯后面兩種自動(dòng)化的方法更加符合當(dāng)前大數(shù)據(jù)時(shí)代的特征。因此,計(jì)算思維能力的培養(yǎng)對(duì)人類生活和科技發(fā)展的關(guān)鍵意義不言而喻。為了讓學(xué)生緊跟時(shí)代的步伐,讓學(xué)生了解計(jì)算機(jī)是如何思維變得至關(guān)重要。計(jì)算思維的定義最初由美國(guó)卡內(nèi)基·梅隆大學(xué)主任Wing教授于2006年3月在美國(guó)計(jì)算機(jī)權(quán)威期刊上給出[1]。她指出在2l世紀(jì),計(jì)算思維將不僅僅是計(jì)算機(jī)專家才具備的能力,而是全民都應(yīng)該具有的必備技能。隨后,計(jì)算思維的培養(yǎng)研究逐漸引起了很多國(guó)內(nèi)外的專家學(xué)者的重視。國(guó)際學(xué)者Curzon等人認(rèn)為計(jì)算思維已經(jīng)成為K-12課程計(jì)劃、大學(xué)通識(shí)教育和交叉學(xué)科研究與技術(shù)轉(zhuǎn)讓的基礎(chǔ),可更加精確、深入和廣泛地解釋計(jì)算的本質(zhì)[2]。Astrachan等人概述了計(jì)算思維的概念及其相關(guān)的活動(dòng)和項(xiàng)目,展望了計(jì)算思維在教育界的未來發(fā)展[3]。國(guó)內(nèi)為了緊跟國(guó)際學(xué)術(shù)的研究步伐,加緊更新傳統(tǒng)的教學(xué)理念,開展了多次計(jì)算思維的專題研討會(huì),參會(huì)團(tuán)體包括全國(guó)各高等學(xué)校計(jì)算機(jī)教育研究組織等。2010年9月發(fā)表的九校聯(lián)盟計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明指出:把“計(jì)算思維能力的培養(yǎng)”作為計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)。為此,國(guó)內(nèi)學(xué)者郁等人提出基于可視化編程的計(jì)算思維培養(yǎng)模式,將項(xiàng)目問題的邏輯組織從拆解轉(zhuǎn)變?yōu)榀B加關(guān)注到每個(gè)學(xué)生的思維發(fā)展,并運(yùn)用可視化編程工具App Inventor開展該模式的教學(xué)實(shí)踐[4]。這些都表明了計(jì)算思維能力已成為當(dāng)今復(fù)合型創(chuàng)新人才不可或缺的基本素質(zhì)。培養(yǎng)計(jì)算思維能力是大學(xué)生綜合素質(zhì)教育的重要內(nèi)容,也是高等學(xué)校質(zhì)量工程建設(shè)的要求
2 算法設(shè)計(jì)
算法是為解決問題而采取的方法與步驟。隨著計(jì)算機(jī)的出現(xiàn),算法廣泛地應(yīng)用于計(jì)算機(jī)的問題求解中,是程序設(shè)計(jì)的精髓。很多基本的算法設(shè)計(jì)方法已經(jīng)廣泛適用于許多不同的領(lǐng)域。由于實(shí)際問題求解的需求以及算法的廣泛應(yīng)用,算法研究領(lǐng)域包括傳統(tǒng)的排序、查詢、圖算法、數(shù)值計(jì)算等和目前的信息處理、工程計(jì)算與模擬、金融分析、生物計(jì)算、量子計(jì)算,大數(shù)據(jù)分析等。當(dāng)然,對(duì)于特定的問題,大部分情況下算法不是唯一的。也就是說,同一個(gè)問題可以有多種解決問題的算法,但好的算法還是存在的。因此,在特定問題和條件下,設(shè)計(jì)合適的算法對(duì)解決問題有很大的幫助。由于算法設(shè)計(jì)在計(jì)算機(jī)學(xué)科中的重要地位,其基本內(nèi)容已經(jīng)成為計(jì)算機(jī)相關(guān)學(xué)科的一門專業(yè)必修課程。它的教學(xué)方式、內(nèi)容和質(zhì)量必須要能夠確保培養(yǎng)學(xué)生的學(xué)習(xí)興趣,以提高學(xué)生的專業(yè)能力和綜合能力為目的,為學(xué)生高水平、高層次的應(yīng)用和發(fā)展提供保障。
3 算法設(shè)計(jì)教學(xué)的計(jì)算思維視角
計(jì)算思維涵蓋了信息技術(shù)領(lǐng)域蓬勃發(fā)展過程中所形成的思維模式。這些思維模式具有一定的普適性。將計(jì)算思維的方法與算法設(shè)計(jì)的步驟相結(jié)合,圍繞計(jì)算思維對(duì)教學(xué)內(nèi)容進(jìn)行重構(gòu)。在算法設(shè)計(jì)的教學(xué)過程中,教師必須要將計(jì)算思維的培養(yǎng)融入到教學(xué)當(dāng)中,在教學(xué)中不能局限于知識(shí)的傳授,而應(yīng)該注重培養(yǎng)學(xué)生的計(jì)算思維,以提高學(xué)生的創(chuàng)新能力。通過對(duì)教與學(xué)的過程進(jìn)行系統(tǒng)化設(shè)計(jì),可以最終形成有效的基于算法設(shè)計(jì)的計(jì)算思維培養(yǎng)解決方案。具體在教學(xué)中應(yīng)該注意如下五點(diǎn)[5]:
3.1 算法復(fù)雜性理論應(yīng)作為教學(xué)重點(diǎn)內(nèi)容。
計(jì)算復(fù)雜性理論是理論計(jì)算機(jī)科學(xué)和數(shù)學(xué)的一個(gè)分支,它致力于將可計(jì)算問題根據(jù)它們本身的復(fù)雜性分類,以及將這些類別聯(lián)系起來。復(fù)雜性理論所研究的資源中最常見的是時(shí)間(要通過多少步演算才能解決問題)和空間(在解決問題時(shí)需要多少內(nèi)存)。使用數(shù)學(xué)方法對(duì)計(jì)算中所需的各種資源的耗費(fèi)作定量分析,并研究各類問題之間在計(jì)算復(fù)雜程度上的相互關(guān)系和基本性質(zhì),是算法分析的理論基礎(chǔ)。該理論回答了一個(gè)問題到底有多復(fù)雜,并指導(dǎo)選擇和設(shè)計(jì)解決問題的策略。而目前在教學(xué)過程中,由于教材通常將復(fù)雜性理論部分放在教材的最后章節(jié),由于學(xué)時(shí)等因素,對(duì)復(fù)雜性理論的教學(xué)不夠重視。而復(fù)雜性理論是培養(yǎng)計(jì)算思維及對(duì)各種算法深刻理解的必備基礎(chǔ)。所以復(fù)雜性理論在教學(xué)中應(yīng)該適當(dāng)提前,并作為教學(xué)的重點(diǎn)內(nèi)容。
3.2 算法思想應(yīng)滲透在整個(gè)教學(xué)課程中。
發(fā)展層次理論認(rèn)為思維是多層次的、逐步發(fā)展的過程。算法教學(xué)時(shí)應(yīng)有意識(shí)地朝著這一方向努力。很多算法的提出往往都基于某一個(gè)實(shí)際的、有趣的問題。在教學(xué)過程中可以為學(xué)生設(shè)置不同的問題情境,有意識(shí)的培養(yǎng)學(xué)生多角度思考問題的能力?,F(xiàn)實(shí)生活中通常問題的解決方式都不是唯一的,在教學(xué)過程中應(yīng)有意識(shí)的培養(yǎng)學(xué)生的算法思想,引導(dǎo)學(xué)生用不同的解決方法面對(duì)問題。從而加深學(xué)生對(duì)算法思想的理解,提高學(xué)生的邏輯思維能力,并將這樣的思維習(xí)慣遷移到日常生活中,體會(huì)到算法思想的意義和作用,真正意識(shí)到算法思想的重要性。
3.3 算法思維的教學(xué)應(yīng)從最簡(jiǎn)單的程序設(shè)計(jì)語言出發(fā)。
算法雖然獨(dú)立于具體的計(jì)算機(jī)和具體的程序設(shè)計(jì)語言,但算法思維是以程序設(shè)計(jì)為載體,讓學(xué)生能夠清楚認(rèn)識(shí)到問題的起點(diǎn)、邊界和限定范圍,按部就班地完成任務(wù)或解決問題。算法思維盡管涉及程序,但也關(guān)注算法的實(shí)現(xiàn)。在具體教學(xué)過程中,算法的實(shí)現(xiàn)應(yīng)盡量使用簡(jiǎn)單的語言,強(qiáng)調(diào)通過算法來理解計(jì)算機(jī)對(duì)預(yù)設(shè)問題的解決過程,并能清楚地分析問題解決的優(yōu)劣。在問題分析的描述中應(yīng)主要通過偽代碼或自然語言的形式。這樣的描述對(duì)學(xué)生更為直觀、清晰、易懂,并使得教師的教學(xué)和學(xué)生的學(xué)習(xí)更加專注于算法的概念和計(jì)算思維的培養(yǎng)。
3.4 教學(xué)過程中應(yīng)注重培養(yǎng)學(xué)生解決問題的思維能力。
在算法的具體教學(xué)過程中,教師應(yīng)該更加關(guān)注學(xué)生的思維發(fā)展,所提供的解決路徑只是作為引導(dǎo)和參考,并不限制學(xué)生的多元化解決思路。教師通過師生互動(dòng),指導(dǎo)學(xué)生掌握解決問題的思路與方法,而不是簡(jiǎn)單的工具講解。教師隨時(shí)引導(dǎo)學(xué)生對(duì)問題進(jìn)行深入思考和模式遷移,并鼓勵(lì)學(xué)生自己利用算法設(shè)計(jì)的方式加以實(shí)踐檢驗(yàn),從而促進(jìn)計(jì)算思維在解決問題過程中形式化、模型化到自動(dòng)化發(fā)展。例如人們往往首先通過猜想,然后經(jīng)過驗(yàn)證、證明、分析、完善等過程,最終解決一個(gè)問題。這也是我們探究真理的常見過程。在該過程中培養(yǎng)學(xué)生科學(xué)的分析問題、邏輯推理、抽象概括能力,往往要比單純地講解某一種算法有更大的意義。邏輯推理是依據(jù)一定的邏輯規(guī)則,從已知項(xiàng)得出未知項(xiàng),或用已知項(xiàng)來解釋未知項(xiàng)。這些都是解決問題、探討概念、發(fā)現(xiàn)事物規(guī)律的重要基本工具,任何一個(gè)算法思想的產(chǎn)生都離不開推理、抽象和概括。培養(yǎng)和訓(xùn)練這些思維能力是大學(xué)計(jì)算思維和通識(shí)教育的重要組成部分。
3.5 教學(xué)過程中應(yīng)該循序漸進(jìn),由淺入深。
教師應(yīng)當(dāng)主要將從基礎(chǔ)的問題單元出發(fā),一開始并不展現(xiàn)給定情境的完整問題域,在教學(xué)過程中,根據(jù)學(xué)生對(duì)問題的理解和加工情況逐步加以引導(dǎo)、疊加,拓展情境的問題域,提升任務(wù)的復(fù)雜度。由于整個(gè)問題解決的過程放權(quán)給學(xué)生自主探索,因此,最終的結(jié)果也將根據(jù)學(xué)生不同的能力和想法而呈現(xiàn)出不同的效果。這樣一來,項(xiàng)目問題邏輯的組織就從教師的拆解轉(zhuǎn)變?yōu)閷W(xué)生的疊加,需要學(xué)生更多的思維參與,而整個(gè)學(xué)習(xí)不再以預(yù)先擬定的結(jié)果為目標(biāo)后,教師也能夠更好地關(guān)注學(xué)生在問題解決過程中的思維培養(yǎng)。
4 結(jié)束語
計(jì)算思維已經(jīng)和人們的生活密不可分,甚至成為了一項(xiàng)重要的生存能力。作為一個(gè)解決問題的有效工具,人人都應(yīng)熟練掌握并學(xué)會(huì)運(yùn)用。那么如何培養(yǎng)具有計(jì)算思維的新型人才,變成了時(shí)代向教育事業(yè)提出的課題。國(guó)家要求高校必須重視并加強(qiáng)大學(xué)生創(chuàng)新能力的開發(fā)和培養(yǎng),讓學(xué)生能有意識(shí)地運(yùn)用計(jì)算思維思考和解決問題,為今后的學(xué)習(xí)研究打下良好的基礎(chǔ)。為此,本文從算法設(shè)計(jì)的角度出發(fā),提出將計(jì)算思維融入到課程教學(xué)之中,給出了一個(gè)基于算法設(shè)計(jì)教學(xué)的計(jì)算思維培養(yǎng)解決方案。學(xué)生的反饋信息表明這種計(jì)算思維培養(yǎng)模式取得了較好的效果,與之前相比,學(xué)生在碰到問題時(shí)表現(xiàn)出愿意思考、會(huì)思考的良好現(xiàn)象,具備了自我學(xué)習(xí)和獨(dú)立研究的初步能力。希望我們的工作,為全國(guó)算法設(shè)計(jì)的教學(xué)建設(shè)改革探路,為國(guó)家培養(yǎng)拔尖創(chuàng)新人才做出貢獻(xiàn)。
參考文獻(xiàn)
[1]J. M. Wing.Computational thinking [J]. Communications of the ACM, 2006, 49(3): 33-35.
[2]P. Curzon, J. Peckham, A. Settle,et a1.Computational thinking:on weaving it [C].In Proceeding of ITiCSE, Paris, France,2009:201-202.
[3]O. Astrachan,S. Hambrusch, J. Peckhanm,et a1.The present and future of computational thinking [C].In Proceeding of SIGGSE,Chattanooga, Tennessee, USA, 2009, 41(1):549-550.
[4]張遠(yuǎn)平, 邱麗娜. 在算法設(shè)計(jì)與分析課程教學(xué)中融入計(jì)算思維. 價(jià)值工程, 2016, 35(8):245-247.