|
1982年諾貝爾物理獎(jiǎng)得主肯尼斯·威爾遜在他的獲獎(jiǎng)演講中提到計(jì)算在他的工作中扮演的重要角色,他認(rèn)為計(jì)算是所有科學(xué)的研究范式之一,區(qū)別于理論和實(shí)驗(yàn),所有的學(xué)科都面臨算法化的“巨大挑戰(zhàn)”。所有涉及自然和社會(huì)現(xiàn)象的研究都需要借助計(jì)算,使用計(jì)算模型做出新發(fā)現(xiàn)和推進(jìn)學(xué)科發(fā)展。他的工作和對(duì)于計(jì)算方法的大力推薦,激發(fā)了人們對(duì)于計(jì)算科學(xué)的認(rèn)識(shí)和重視。 Alfred Aho(2011): 計(jì)算思維是一個(gè)思想過(guò)程,涉及描述問(wèn)題使得它們的解決能夠通過(guò)計(jì)算步驟和算法,能夠被信息處理裝置有效實(shí)現(xiàn),計(jì)算模型是核心概念。 2015年,美國(guó)國(guó)際教育技術(shù)協(xié)會(huì)(ISTE,2015)解讀計(jì)算思維是創(chuàng)造力、算法思維、批判性思維、問(wèn)題解決、合作思維和溝通技能的共同體現(xiàn)。 2017年,Peter J. Denning:計(jì)算思維是從不同的科學(xué)領(lǐng)域發(fā)育和成長(zhǎng)的,并不只是從計(jì)算機(jī)科學(xué)中輸入的,事實(shí)上,計(jì)算機(jī)科學(xué)是逐步地參加到這個(gè)思維的變革中來(lái)。一場(chǎng)安靜但是深刻的已經(jīng)在所有的科學(xué)領(lǐng)域發(fā)生,計(jì)算賦能的革命通過(guò)信息技術(shù)帶來(lái)了各種類(lèi)型的新的發(fā)現(xiàn)。 2. 計(jì)算思維過(guò)程要素及運(yùn)用計(jì)算思維求解步驟 2011年,美國(guó)國(guó)際教育技術(shù)協(xié)會(huì)(ISTE)與美國(guó)計(jì)算機(jī)科學(xué)教師協(xié)會(huì)(CSTA)聯(lián)合發(fā)布了計(jì)算思維是具有以下特征的問(wèn)題解決過(guò)程:以一種能夠使用計(jì)算機(jī)和其他工具幫助解決問(wèn)題的方式制定規(guī)劃;合理組織和分析數(shù)據(jù);通過(guò)模型和模擬等抽象的表示數(shù)據(jù);通過(guò)算法思維(一系列有序步驟)實(shí)現(xiàn)解決方案自動(dòng)化;確定、分析和實(shí)施可能的解決方案,以實(shí)現(xiàn)最有效的過(guò)程和資源組合;將問(wèn)題解決過(guò)程推廣轉(zhuǎn)化到其它各種各樣的問(wèn)題。規(guī)定了計(jì)算思維的六個(gè)過(guò)程要素( 提出問(wèn)題、組織和分析問(wèn)題、表征數(shù)據(jù)、自動(dòng)化解決方案、分析和實(shí)施解決方案、遷移) ,與九項(xiàng)核心概念和能力( 數(shù)據(jù)收集、數(shù)據(jù)分析、數(shù)據(jù)表征、問(wèn)題分解、抽象、算法和程序、自動(dòng)化、模擬、并行化)。 計(jì)算思維的兩大核心特征是抽象和自動(dòng)化。運(yùn)用計(jì)算思維進(jìn)行問(wèn)題求解一般要經(jīng)過(guò)以下4個(gè)步驟:①把實(shí)際問(wèn)題抽象為數(shù)學(xué)問(wèn)題并建模,也就是將人對(duì)問(wèn)題的理解用數(shù)學(xué)語(yǔ)言描述;②模型映射,將數(shù)學(xué)模型中的變量和規(guī)則用特定的符號(hào)表示;③用特定計(jì)算機(jī)語(yǔ)言把解決問(wèn)題的邏輯分析過(guò)程用算法描述,即把解題思路變成計(jì)算機(jī)指令形式;④計(jì)算機(jī)根據(jù)指令,按順序自動(dòng)執(zhí)行,進(jìn)行問(wèn)題實(shí)現(xiàn)[5]。 目前被廣泛認(rèn)可的計(jì)算思維的核心要素及促進(jìn)計(jì)算機(jī)類(lèi)學(xué)習(xí)和發(fā)展的課程基礎(chǔ)要素有:抽象和模式概括(包括模型和仿真模擬)、系統(tǒng)性信息處理、符號(hào)系統(tǒng)及其表示、控制流程的算法概念、結(jié)構(gòu)化問(wèn)題分解(模塊化)、迭代/遞歸/并行思維、條件邏輯、效率及性能限制、調(diào)試和系統(tǒng)錯(cuò)誤監(jiān)測(cè)[5]。 2012 年,教育部教高司函〔2012〕188號(hào)文件正式公布,批準(zhǔn)“以計(jì)算思維為導(dǎo)向的大學(xué)計(jì)算機(jī)基礎(chǔ)課程研究”等22個(gè)大學(xué)計(jì)算機(jī)課程改革項(xiàng)目,以培養(yǎng)計(jì)算思維為重點(diǎn),推動(dòng)大學(xué)計(jì)算機(jī)課程改革。 2015年英國(guó)開(kāi)放大學(xué)發(fā)布的《創(chuàng)新教學(xué)報(bào)告》將計(jì)算思維列為“十大創(chuàng)新教學(xué)法”之一,認(rèn)為計(jì)算思維將在“教育實(shí)踐中,尤其是在學(xué)校后繼續(xù)教育中引發(fā)重大變革”。計(jì)算思維將在人們今后的工作、學(xué)習(xí)和生活中扮演越來(lái)越重要的角色。 2016年,美國(guó)計(jì)算機(jī)科學(xué)教師協(xié)會(huì)在《K-12計(jì)算機(jī)科學(xué)標(biāo)準(zhǔn)》(K-12 Computer Science Standards)中更新了對(duì)計(jì)算思維界定:計(jì)算思維是一種解決問(wèn)題的方法論,這種方法可從計(jì)算機(jī)科學(xué)的領(lǐng)域擴(kuò)展到所有學(xué)科,為分析和開(kāi)發(fā)能夠通過(guò)計(jì)算方法解決的問(wèn)題,提供一種獨(dú)特的方法。計(jì)算思維專(zhuān)注于抽象、自動(dòng)化和分析,是計(jì)算機(jī)科學(xué)更廣泛學(xué)科的核心元素。 美國(guó)科羅拉多大學(xué)博爾德分校2019年春季學(xué)期CU-Boulder開(kāi)設(shè)的“computer science I -starting computing” (計(jì)算機(jī)科學(xué)I—計(jì)算初步,下面將課程簡(jiǎn)稱(chēng)CSIsc)課程是面向所有學(xué)生(包括非計(jì)算機(jī)專(zhuān)業(yè)學(xué)生)的計(jì)算機(jī)類(lèi)導(dǎo)引課程,學(xué)習(xí)內(nèi)容C++。CSIsc課程在開(kāi)學(xué)第一周布置第一次作業(yè),此時(shí),還沒(méi)有正式進(jìn)入C++的學(xué)習(xí),這次作業(yè)的目標(biāo)就是初步認(rèn)識(shí)計(jì)算思維。對(duì)此次作業(yè)案例進(jìn)行分析有助于我們學(xué)習(xí)如何選擇和設(shè)計(jì)作業(yè)案例,對(duì)學(xué)生進(jìn)行計(jì)算思維基本思想的灌輸,為學(xué)生構(gòu)建較為完備的計(jì)算思維概念體系。 該作業(yè)題目是探索機(jī)器人Picobot,任務(wù)是完全遍歷有邊界和障礙的房間,起始位置隨機(jī)。在作業(yè)中為學(xué)生提供了一個(gè)完成Picobot功能的模擬環(huán)境,網(wǎng)址是https://www.cs./picobot/,學(xué)生可以在這個(gè)編程環(huán)境中進(jìn)行Picobot的模擬演練、運(yùn)行程序和查找bug并修改,直到完成任務(wù)為止。這是一個(gè)完整的、綜合性強(qiáng)的計(jì)算思維培養(yǎng)作業(yè)案例,其中涉及多項(xiàng)計(jì)算思維核心要素的培養(yǎng)。 機(jī)器人Picobot在現(xiàn)實(shí)中類(lèi)比掃地機(jī)器人。作業(yè)描述首先將機(jī)器人Picobot和房間抽象表示,并可視化如圖1所示,其中(a)(b)(c)(d)表示4種不同類(lèi)型的房間。在每個(gè)房間中,小方塊代表Picobot的隨機(jī)起始位置,實(shí)體部分表示障礙物和邊界,空白部分表示要清掃的地面。 抽象思維是人類(lèi)認(rèn)識(shí)世界的最基本思維。作業(yè)示范了如何對(duì)實(shí)際系統(tǒng)原型進(jìn)行模型抽象的方法,即保留實(shí)際系統(tǒng)原型的本質(zhì)特征,同時(shí)通過(guò)抽象和約簡(jiǎn),對(duì)系統(tǒng)進(jìn)行準(zhǔn)確、簡(jiǎn)潔的理解和描述。這是計(jì)算思維進(jìn)行問(wèn)題求解的第一步,經(jīng)過(guò)這一步,原問(wèn)題演變成“點(diǎn)”在不規(guī)則圖形的遍歷問(wèn)題。現(xiàn)實(shí)中除了掃地機(jī)器人外,還有許多問(wèn)題可用此模型表達(dá),如機(jī)器繡花等。 (2) 符號(hào)系統(tǒng)和表示思維 為了使問(wèn)題最終能被計(jì)算機(jī)自動(dòng)化完成,需對(duì)模型中的相關(guān)信息采用計(jì)算機(jī)能處理的符號(hào)表達(dá),如在作業(yè)中對(duì)周?chē)h(huán)境有如下符號(hào)約定。 ①Picobot只能感知到它緊鄰的周?chē)h(huán)境。如果不碰到邊界或障礙,可由當(dāng)前位置向4個(gè)方向行走:北東西南(NEWS)。②周?chē)h(huán)境用相應(yīng)方向的大寫(xiě)字母表示墻,用“x”表示沒(méi)墻;如 NxWx表示在北面、西面各有一堵墻,可向東面和南面行走。③除此之外,通配符“*”可以用來(lái)表示“Picobot不關(guān)心那個(gè)位置是否有墻”,如,xE**的意思是“北面沒(méi)有墻,東面有墻,西面或南面可能有墻,也可能沒(méi)有墻”。 這一步將抽象模型中的變量/規(guī)則用虛擬的符號(hào)表示,這是計(jì)算思維問(wèn)題求解的第2個(gè)步驟:模型映射。通過(guò)作業(yè)范例,讓學(xué)生理解采用符號(hào)系統(tǒng)表示的簡(jiǎn)潔性、嚴(yán)謹(jǐn)性,以及方便計(jì)算機(jī)進(jìn)行處理的特性。這部分概念和思維對(duì)于初學(xué)者很難理解,采用這樣的方式引入,簡(jiǎn)單直觀。 (3) 控制流程的程序思維 作業(yè)中制定了Picobot行為規(guī)則,讓學(xué)生初步認(rèn)識(shí)程序設(shè)計(jì)語(yǔ)言,理解程序思維。Picobot行為規(guī)則描述如下: (1)Picobot擁有狀態(tài),用數(shù)字表示。 (2)狀態(tài)和周?chē)h(huán)境是Picobot做出決策所需要的所有信息。 (3)Picobot根據(jù)一組規(guī)則移動(dòng):當(dāng)前狀態(tài) 環(huán)境 -> 移動(dòng)方向 新的狀態(tài)。 其中移動(dòng)方向?yàn)镹、E、W、S,或X,分別表示向北、東、西、南、完全不動(dòng)。 如,0 x*** -> N 0 #當(dāng)前狀態(tài)0,如果北面沒(méi)墻,則向北走 m,,++ ,狀態(tài)不變 0 N*** -> X 1 #當(dāng)前狀態(tài)0,如果北面有墻保持不動(dòng),然后轉(zhuǎn)到狀態(tài)1 (4)Picobot總是從狀態(tài)0開(kāi)始,并且從上到下查詢(xún)規(guī)則,直到找到第一個(gè)適用的規(guī)則,運(yùn)行該規(guī)則。然后再?gòu)念^開(kāi)始,查看規(guī)則并從頂部找到第一個(gè)適用的規(guī)則。 Picobot行為規(guī)則構(gòu)成一種最簡(jiǎn)單的程序語(yǔ)言,規(guī)則描述了程序可分解成基本動(dòng)作及基本動(dòng)作的各種組合。如本例中基本動(dòng)作就是Picobot向某個(gè)方向行走一步或保持不動(dòng),而基本動(dòng)作的各種組合及其排序可以最終實(shí)現(xiàn)對(duì)整個(gè)房間的掃描,從而構(gòu)成完整程序。 通過(guò)學(xué)習(xí)Picobot行為規(guī)則,讓學(xué)生認(rèn)識(shí)到程序是對(duì)計(jì)算機(jī)下達(dá)的指令序列,計(jì)算機(jī)是能夠執(zhí)行各種程序的機(jī)器或系統(tǒng),計(jì)算機(jī)按照程序控制的基本動(dòng)作順序執(zhí)行,實(shí)現(xiàn)復(fù)雜的功能。這種基本的指令和程序的思維灌輸對(duì)學(xué)生非常重要。 遞歸是計(jì)算思維的重要特征,其本質(zhì)是用有限的步驟實(shí)現(xiàn)近于無(wú)限功能的方法,是問(wèn)題求解的一種重要思維,使程序簡(jiǎn)潔和清晰。 在上節(jié)Picobot語(yǔ)言規(guī)則中有這樣的舉例:0 x*** -> N 0,初始狀態(tài)和動(dòng)作后到達(dá)的狀態(tài)都是0。這條規(guī)則可以讓Picobot在北面沒(méi)墻的情況下一直向北走,直到北面碰到邊界或障礙為止。這條規(guī)則實(shí)例對(duì)計(jì)算思維中非常重要的遞歸思維進(jìn)行了非常好的詮釋?zhuān)寣W(xué)生初步學(xué)習(xí)并運(yùn)用這種典型的構(gòu)造程序的手段,為其今后進(jìn)一步學(xué)習(xí)打下良好的基礎(chǔ)。 完成數(shù)據(jù)建模、模型映射及定義好程序規(guī)則后,接下來(lái)的任務(wù)就交由學(xué)生實(shí)現(xiàn)Picobot對(duì)房間的遍歷。為了引導(dǎo)學(xué)生進(jìn)行實(shí)際問(wèn)題的求解,此次作業(yè)為其設(shè)定了作業(yè)目標(biāo)和程序?qū)嵺`方法,學(xué)生可依據(jù)目標(biāo)和實(shí)踐方法的提示很好地完成任務(wù)。 作業(yè)目標(biāo):①把大的問(wèn)題拆分成子問(wèn)題處理;②編寫(xiě)一個(gè)算法來(lái)解決特定的問(wèn)題,然后將該算法轉(zhuǎn)換成特定編程語(yǔ)言的程序(在本例中是Picobot行為規(guī)則);③為算法的每一步編寫(xiě)清晰、簡(jiǎn)潔的文檔;④運(yùn)行并查找程序中的bug,修復(fù)bug,然后再次測(cè)試。 程序?qū)嵺`方法:①?gòu)闹朴啿呗蚤_(kāi)始,用簡(jiǎn)明扼要的敘述總結(jié)采用的方法。例如,要遍歷房間(a)可采用的方法描述:“先將Picobot發(fā)送到北墻,然后發(fā)送到西北角,然后Picobot由西向東掃描……直到完成對(duì)房間的遍歷”。②為算法的每個(gè)步驟/規(guī)則寫(xiě)注釋。 其中,作業(yè)目標(biāo)的設(shè)定引導(dǎo)學(xué)生學(xué)習(xí)程序設(shè)計(jì)問(wèn)題求解的基本步驟和方法;程序?qū)嵺`方法教會(huì)學(xué)生怎樣對(duì)實(shí)際問(wèn)題進(jìn)行具體的分析和制定策略。這次作業(yè)還引導(dǎo)學(xué)生將一個(gè)大的、難解決的問(wèn)題重新闡釋成簡(jiǎn)單的、已有解決方案的小的問(wèn)題,這種問(wèn)題結(jié)構(gòu)化分解的方法是處理龐雜任務(wù)或設(shè)計(jì)巨大復(fù)雜系統(tǒng)時(shí)采用的核心方法和思維,對(duì)學(xué)生今后處理實(shí)際問(wèn)題至關(guān)重要。我們要求學(xué)生在編寫(xiě)算法的同時(shí),為算法撰寫(xiě)清晰、簡(jiǎn)潔的文檔和注釋?zhuān)瑸槿蘸箴B(yǎng)成良好的編程習(xí)慣打下基礎(chǔ)。 這次作業(yè)還讓學(xué)生初步理解算法效率的概念,為學(xué)生設(shè)定了算法效率要求。效率要求如下:從狀態(tài)數(shù)量和規(guī)則數(shù)量考慮解決方案的效率。認(rèn)可的解決方案是遍歷(a,b)房間,每個(gè)遍歷不能超過(guò)16條規(guī)則。如果超過(guò),找重疊代碼,將重疊代碼去除。 效率要求中引導(dǎo)學(xué)生從狀態(tài)數(shù)量和規(guī)則數(shù)量考慮算法效率,使學(xué)生初步學(xué)習(xí)如何進(jìn)行算法效率的衡量,并通過(guò)限定規(guī)則的數(shù)量指導(dǎo)學(xué)生對(duì)算法進(jìn)行簡(jiǎn)單優(yōu)化。 此次作業(yè)的完成須在模擬環(huán)境中運(yùn)行通過(guò),因此學(xué)生必須經(jīng)過(guò)編寫(xiě)Picobot程序、運(yùn)行、查找錯(cuò)誤、修改等一系列程序調(diào)試環(huán)節(jié)。這是一個(gè)不斷試錯(cuò)的過(guò)程,通過(guò)分析和查找問(wèn)題的根源,確定代碼錯(cuò)誤位置,不斷修改,直到成功為止。在這個(gè)過(guò)程中,學(xué)生分析問(wèn)題和解決問(wèn)題的能力得到極大訓(xùn)練。 作業(yè)要求遍歷房間(a,b)是必選題目,遍歷房間(c,d)可額外加分,供學(xué)有余力的學(xué)生完成。除此之外,作業(yè)還提供了更為復(fù)雜的房間,如圖2所示,為高水平同學(xué)提供拓展訓(xùn)練,目的是培養(yǎng)學(xué)生在解決復(fù)雜問(wèn)題時(shí)規(guī)律探尋的方法,激發(fā)學(xué)生的創(chuàng)造性思維。 |
|
|
來(lái)自: tldom > 《待分類(lèi)》