摘要:為了培養(yǎng)未來(lái)領(lǐng)導(dǎo)社會(huì)的人才,強(qiáng)調(diào)各學(xué)科的趨同現(xiàn)象,我們需要找到一種有效實(shí)施編程教育的方法,并通過(guò)Python編程的興趣激發(fā)學(xué)生興趣并改善計(jì)算思維的教育模式。本文首先討論了Python編程教育和計(jì)算思維的四種分類,然后分析了計(jì)算思維與信息和通信技術(shù)的關(guān)系和計(jì)算思維教學(xué)方法,最后進(jìn)行了總結(jié)和展望。
關(guān)鍵詞:計(jì)算思維;Python;編程教育
中圖分類號(hào):TB文獻(xiàn)標(biāo)識(shí)碼:Adoi:10.19311/j.cnki.1672-3198.2022.23.104
0引言
每天,人類都面臨著現(xiàn)實(shí)世界的問(wèn)題,需要一些思考和邏輯來(lái)解決這些問(wèn)題。人們有意識(shí)或無(wú)意識(shí)地應(yīng)用計(jì)算思維(Computational Thinking,CT)的概念。計(jì)算思維的概念可能并不復(fù)雜,但它試圖通過(guò)定義一些簡(jiǎn)單的計(jì)算步驟來(lái)解決每個(gè)問(wèn)題。然而,這些步驟可能涉及問(wèn)題的抽象、創(chuàng)建模型、設(shè)計(jì)算法和驗(yàn)證結(jié)果,以及確定解決方案的可行性。
計(jì)算思維的概念在2006年被提出來(lái)后,隨即在大學(xué)的計(jì)算機(jī)教育中掀起了一番改革。后來(lái)計(jì)算思維又給出一個(gè)更容易理解的定義:計(jì)算思維是指在解決問(wèn)題和設(shè)計(jì)其解決方案時(shí)所涉及的思維過(guò)程,基于計(jì)算機(jī)科學(xué)的基本概念和原理對(duì)問(wèn)題解決、系統(tǒng)設(shè)計(jì)和人類行為的理解。目的是為了使人或機(jī)器可以有效地去執(zhí)行。由此定義可以看出,計(jì)算思維是為了在處理問(wèn)題時(shí)提供一個(gè)可以通過(guò)計(jì)算來(lái)解決的方法,這個(gè)方法的執(zhí)行人可以是人,也可以是機(jī)器,計(jì)算思維不僅用于解決問(wèn)題,還可以用它來(lái)定義問(wèn)題。
計(jì)算思維是未來(lái)人才必須具備的基本知識(shí)。特別是,對(duì)于計(jì)算算法的開發(fā),與IT無(wú)關(guān)的專業(yè)學(xué)生有必要在其研究領(lǐng)域找到創(chuàng)新項(xiàng)目,克服對(duì)技術(shù)的恐懼,并發(fā)展與IT專業(yè)人士交流的能力。計(jì)算思維被認(rèn)為是與理論思維、實(shí)驗(yàn)思維并列的第3種思維模式,是“互聯(lián)網(wǎng)+”、大數(shù)據(jù)和人工智能時(shí)代所有人都應(yīng)具備的一種思維模式。大學(xué)生創(chuàng)造性思維的培養(yǎng)離不開計(jì)算思維的培養(yǎng),互聯(lián)網(wǎng)公司的成功應(yīng)歸屬于計(jì)算思維運(yùn)用的成功。信息時(shí)代運(yùn)用計(jì)算思維的能力已成為大學(xué)生在學(xué)習(xí)和掌握專業(yè)課程和專業(yè)技能的基礎(chǔ)上,與各學(xué)科的專業(yè)知識(shí)融合進(jìn)行研究和創(chuàng)新的必備條件,這種計(jì)算思維可以通過(guò)計(jì)算機(jī)編程語(yǔ)言教育來(lái)發(fā)展和改進(jìn)。
1Python編程教育
編程語(yǔ)言的類型非常多樣,但我們希望找到一種對(duì)初學(xué)者來(lái)說(shuō)有趣、易于學(xué)習(xí)并且能夠編寫各種應(yīng)用程序的編程語(yǔ)言。而Python就是合適的編程語(yǔ)言之一。Python不僅用作純編程語(yǔ)言,還用作連接其他語(yǔ)言編寫的模塊的中間語(yǔ)言。Python基礎(chǔ)代碼易于學(xué)習(xí),使用簡(jiǎn)單的圖形處理,具有完整的語(yǔ)言功能,對(duì)初學(xué)者開發(fā)應(yīng)用程序非常有用,所以Python可以用于融合教育,它已成為云計(jì)算、大數(shù)據(jù)、人工智能的首選語(yǔ)言。現(xiàn)階段,高校普遍將它作為計(jì)算機(jī)相關(guān)專業(yè)的一門主干課程。
編程教育從理解程序開始,學(xué)生通過(guò)理解和調(diào)試程序編寫過(guò)程,最后達(dá)到獨(dú)立開發(fā)應(yīng)用軟件的水平。具體的學(xué)習(xí)步驟如下:
(1)理解編程基礎(chǔ)。
·能夠識(shí)別編程的概念。
·能夠識(shí)別編程語(yǔ)言和基本用法。
·可以編寫和執(zhí)行一個(gè)簡(jiǎn)單的程序。
(2)熟悉輸入/輸出編程。
·可以創(chuàng)建和執(zhí)行基于文本的輸入/輸出程序。
·可以識(shí)別圖形輸入/輸出組件及其特性。
·可以使用圖形輸入/輸出組件創(chuàng)建和執(zhí)行簡(jiǎn)單的程序。
(3)掌握程序編寫流程。
·能夠熟悉程序編寫過(guò)程。
·可以描述程序輸出中的內(nèi)容。
·可以提出幾種低成本開發(fā)好軟件的方法。
(4)達(dá)到軟件開發(fā)應(yīng)用程度。
·可以識(shí)別各種編程工具的特征,并選擇適合于編寫應(yīng)用軟件的編程工具。
·使用包括數(shù)據(jù)管理系統(tǒng)在內(nèi)的各種編程工具,可以根據(jù)程序生產(chǎn)過(guò)程創(chuàng)建和執(zhí)行簡(jiǎn)單的應(yīng)用軟件。
2計(jì)算思維分類
計(jì)算思維的核心是解決問(wèn)題的過(guò)程,每個(gè)人都可以在各種內(nèi)容領(lǐng)域和日常環(huán)境中使用。計(jì)算思維是一種將問(wèn)題分解為不同部分、尋找相似之處、識(shí)別相關(guān)信息和簡(jiǎn)化機(jī)會(huì)并制定解決方案的方法。這種廣泛的問(wèn)題解決技術(shù)包括四個(gè)要素:分解、模式識(shí)別、抽象和算法。
(1)分解:將問(wèn)題分解為更小的部分。
·將問(wèn)題分解為更小的部分可以使復(fù)雜的挑戰(zhàn)更易于管理。這使得其他計(jì)算思維元素能夠更有效地應(yīng)用于復(fù)雜挑戰(zhàn)。然后將較小問(wèn)題的解決方案組合起來(lái),以解決原始的較大問(wèn)題。
·現(xiàn)實(shí)世界的例子:例如,當(dāng)你打掃房間時(shí),你可能會(huì)列出一份待辦事項(xiàng)清單。確定個(gè)人任務(wù)(整理床鋪、掛衣服等)可以讓你在開始清潔前熟悉較小的步驟。
(2)模式識(shí)別:識(shí)別是否存在相似之處。
·檢查問(wèn)題的模式或與以前解決的問(wèn)題的相似性,可以簡(jiǎn)化解決方案。模式識(shí)別可以對(duì)問(wèn)題進(jìn)行分組、組織或簡(jiǎn)化,以獲得更有效的結(jié)果。
·現(xiàn)實(shí)世界的例子:在知道一只狗的特征之后,可以按照這種特征模式類比地描述其他品種的狗,例如狗都有兩只眼睛、一條尾巴與四只腳,不一樣的地方再進(jìn)行單獨(dú)分析處理。
(3)抽象:?jiǎn)栴}的概括-關(guān)注全局和重要內(nèi)容。
·從給定問(wèn)題的特定細(xì)節(jié)后退一步,可以創(chuàng)建更通用的解決方案。這需要分析問(wèn)題,去除額外的細(xì)節(jié),突出基本部分。完成后,開始頭腦風(fēng)暴,尋找問(wèn)題的解決方案。
·現(xiàn)實(shí)世界示例:公共交通地圖是經(jīng)常遇到的抽象示例,地圖只顯示了重要信息(站點(diǎn)、路線、行駛的大致方向),而忽略了更精細(xì)的細(xì)節(jié)。
(4)算法:解決問(wèn)題的逐步說(shuō)明。
·解決問(wèn)題時(shí),為解決方案制定計(jì)劃非常重要。算法是一種策略,可用于確定如何解決問(wèn)題的分步指令。算法可以用普通語(yǔ)言、流程圖或偽代碼編寫。
·現(xiàn)實(shí)世界的例子:我們每天都使用算法,通常以分步指令的形式。食譜、制作家具或積木集的說(shuō)明、運(yùn)動(dòng)中的游戲和在線地圖方向都是算法的示例。
其中,抽象思維(Abstract thinking)是計(jì)算思維中最重要、最高級(jí)的思維過(guò)程,是程序員必備的能力。抽象是計(jì)算的關(guān)鍵技能,是數(shù)學(xué)和工程的基礎(chǔ),它涉及減少不必要的細(xì)節(jié),消除復(fù)雜性,選擇正確的細(xì)節(jié)隱藏,因此問(wèn)題更容易理解,不會(huì)遺漏任何重要內(nèi)容。因此,它允許通過(guò)消除問(wèn)題的細(xì)節(jié)來(lái)開發(fā)潛在的解決方案。抽象思維是抽象與研究相關(guān)的對(duì)象屬性的能力。此外,抽象允許定義模式,通過(guò)從實(shí)例中獲取公共基本屬性進(jìn)行概括,以及參數(shù)化。如果沒有抽象,學(xué)生往往會(huì)被細(xì)節(jié)淹沒,并對(duì)編程過(guò)程感到沮喪,因此這項(xiàng)技能的發(fā)展是必要的,適用于編程、數(shù)學(xué)和不同學(xué)科。
此外,算法思維可以幫助我們以“公式化的方式”高效工作,編程是從一開始就講授算法思維基本原理的一種方式,在高等教育中,在現(xiàn)代信息社會(huì)的未來(lái)職業(yè)和日常生活背景下開發(fā)算法非常重要。算法思維也被認(rèn)為是未來(lái)工程師認(rèn)知能力的重要組成部分,因?yàn)樗惴ɑ顒?dòng)允許形成足夠的算法技能,通過(guò)這些技能,學(xué)生可以發(fā)展思維活動(dòng)的技術(shù),如概括、分類、類比、建立模式和邏輯推理,這些是算法思維的主要組成部分。因此,除了與計(jì)算相關(guān)的職業(yè)之外,建議通過(guò)在不同學(xué)科和職業(yè)中編程來(lái)促進(jìn)算法思維技能的發(fā)展。算法思維包括明確定義達(dá)成解決方案的步驟,根據(jù)指令序列和規(guī)則進(jìn)行思維,從而解決問(wèn)題或理解情況。高等教育學(xué)生算法思維的形成和發(fā)展也是信息社會(huì)的要求,因?yàn)樗鼮閷W(xué)生提供了解決日常生活問(wèn)題的工具,并通過(guò)一系列步驟獲得解決方案。這是學(xué)生在學(xué)習(xí)編程時(shí)發(fā)展的一項(xiàng)基本技能。此外,計(jì)算機(jī)編程還涉及其他技能,如邏輯推理和解決問(wèn)題的創(chuàng)造力。算法思維是人性的一部分,盡管多任務(wù)思維對(duì)于人類團(tuán)隊(duì)來(lái)說(shuō)似乎很自然,用編程語(yǔ)言編寫算法并不簡(jiǎn)單,主要是為了解決語(yǔ)法問(wèn)題。對(duì)于主要學(xué)習(xí)語(yǔ)法問(wèn)題的編程語(yǔ)言的人和學(xué)生來(lái)說(shuō),實(shí)現(xiàn)多任務(wù)解決方案可能是一項(xiàng)復(fù)雜的任務(wù)。Python是簡(jiǎn)化編程學(xué)習(xí)的真正解決方案。
綜上所述,計(jì)算思維是所有學(xué)生的基本技能,計(jì)算思維涉及抽象、算法思維、自動(dòng)化、分解、調(diào)試等能力。
3計(jì)算思維培養(yǎng)
3.1計(jì)算思維與信息和通信技術(shù)
計(jì)算思維與信息和通信技術(shù)(Information and Communications Technology,ICT)不同,它們之間的差異可以比作計(jì)算機(jī)編程和計(jì)算機(jī)使用之間的差異。更具體地說(shuō),關(guān)于ICT的傳統(tǒng)課程往往側(cè)重于技術(shù)和標(biāo)準(zhǔn)軟件(如電子表格、文字處理器、數(shù)據(jù)庫(kù)等)的使用,即所謂的ICT素養(yǎng)或計(jì)算機(jī)素養(yǎng)。然而,大多數(shù)學(xué)生發(fā)現(xiàn)ICT技術(shù)沒有挑戰(zhàn)性,因?yàn)樵谶@個(gè)無(wú)所不在的數(shù)字世界里,學(xué)生們自己可以輕松掌握信息和通信技術(shù)或技能的基本知識(shí)。相反,計(jì)算思維是基于計(jì)算機(jī)科學(xué)的基本概念和原理的問(wèn)題解決技能,強(qiáng)調(diào)計(jì)算和技術(shù)創(chuàng)新的基本原理。因此,旨在講授計(jì)算思維的課程應(yīng)該超越信通技術(shù)素養(yǎng),這自然需要不同的教學(xué)方法。簡(jiǎn)言之,為了講授計(jì)算思維,我們需要轉(zhuǎn)向解決ICT以外的問(wèn)題,并基于計(jì)算機(jī)科學(xué)的基本概念和原則促進(jìn)各種類型的思維(例如,算法、邏輯、抽象、創(chuàng)造性等)。計(jì)算思維是每個(gè)受過(guò)教育的人都需要學(xué)習(xí)的數(shù)字世界中一種新的、基本的思考和解決問(wèn)題的方式。計(jì)算思維培養(yǎng)創(chuàng)造性問(wèn)題解決者,使他們有能力利用數(shù)字技術(shù)創(chuàng)建計(jì)算解決方案。強(qiáng)調(diào)學(xué)生創(chuàng)造力發(fā)展的重要性,鼓勵(lì)創(chuàng)新和科技發(fā)展,將計(jì)算思維納入我們的課程被視為通識(shí)教育的重要目標(biāo),使學(xué)生具備創(chuàng)造性和批判性思維、邏輯和推理以及設(shè)計(jì)思維等能力。
3.2計(jì)算思維教學(xué)方法
不同的人類時(shí)代需要不同的思維方式。計(jì)算思維是從計(jì)算機(jī)科學(xué)中抽象出來(lái)的一套解決問(wèn)題的技能,在其他環(huán)境中也很有用,它是這個(gè)無(wú)所不在計(jì)算的數(shù)字時(shí)代所需要的思維模式。計(jì)算思維教學(xué)需要比ICT教學(xué)更深入的層次。由于計(jì)算思維可以培養(yǎng)具有數(shù)字創(chuàng)造力的問(wèn)題解決者,這是創(chuàng)新和技術(shù)發(fā)展所需要的,因此計(jì)算思維應(yīng)該在高校普通教育課程中占據(jù)突出位置。到目前為止,計(jì)算思維的教學(xué)方法可以分為三大類,這取決于編程在其中扮演的角色。在第一類中,編程在引入計(jì)算思維方面起著重要作用,所采用的編程語(yǔ)言通常是成熟的基于文本的語(yǔ)言,如C/C++、Java和Python,這些要求相對(duì)較高的課程通常是理工科學(xué)生要面對(duì)的。在第二類講授計(jì)算思維的方法中,編程(甚至計(jì)算機(jī)本身)在其中不起作用。計(jì)算思維是通過(guò)智力游戲、游戲和魔術(shù)等活動(dòng)來(lái)講授的。計(jì)算思維可以在沒有編程甚至計(jì)算機(jī)的情況下講授,雖然計(jì)算思維是從計(jì)算機(jī)科學(xué)中抽象出來(lái)的,但它并非固有的計(jì)算機(jī)科學(xué),因此也可以應(yīng)用于其他環(huán)境。第三類計(jì)算思維教學(xué)方法則介于第一類和第二類之間——它涉及編程,但不是實(shí)質(zhì)性的。這種方法中采用的編程語(yǔ)言通常是可視化編程語(yǔ)言,與那些基于文本的編程語(yǔ)言不同,這些可視化編程語(yǔ)言由于其最小語(yǔ)法而具有較低的學(xué)習(xí)門檻,這使學(xué)生能夠?qū)W⒂谟?jì)算的基本概念和原理。這些課程通常涉及基于設(shè)計(jì)的學(xué)習(xí)活動(dòng),如機(jī)器人和電腦游戲,第三類方法是迄今為止向非理工科學(xué)生講授計(jì)算思維的最有效方法。
研究表明,學(xué)生對(duì)編程語(yǔ)言的熟練程度會(huì)影響最合適的教學(xué)方法,根據(jù)學(xué)生的熟練程度調(diào)整教學(xué)方法在編程教育中具有積極的學(xué)習(xí)效果。因此,在講授計(jì)算思維時(shí),將教學(xué)方法與學(xué)生的熟練程度相匹配可能也很重要?!耙虿氖┙獭睆?qiáng)調(diào)了在講授和評(píng)估計(jì)算思維技能時(shí)區(qū)分不同熟練程度的重要性,Pollock等人還基于高等教育創(chuàng)建了一個(gè)區(qū)分編程熟練程度的標(biāo)準(zhǔn)。目前的文獻(xiàn)對(duì)學(xué)生當(dāng)前的水平總是以相同的方式進(jìn)行評(píng)估,即通過(guò)學(xué)生的自我評(píng)估。問(wèn)題在于這種方法是否可靠。研究評(píng)估學(xué)生當(dāng)前熟練程度的其他方法,或者找到一種更為動(dòng)態(tài)的方式,為學(xué)生量身定制干預(yù)措施,可能會(huì)很有趣。
4結(jié)論
隨著技術(shù)的進(jìn)步,計(jì)算機(jī)和計(jì)算解決方案越來(lái)越多地融入我們的日常生活中,各級(jí)教育必須在某個(gè)時(shí)候開始培養(yǎng)年輕人的思維,為日益數(shù)字化的世界做好準(zhǔn)備。許多計(jì)算機(jī)科學(xué)和教育權(quán)威將計(jì)算思維稱為21世紀(jì)的文化素養(yǎng),計(jì)算思維目前是高等院校計(jì)算機(jī)相關(guān)專業(yè)均開設(shè)的一門通識(shí)必修課,它是一門技術(shù)型通識(shí)類思維教育課程,在高等教育中得到了高度的重視。計(jì)算思維涉及教育學(xué)和實(shí)踐的重大變革,需要從研究人員到教育工作者的各方合作。雖然關(guān)于計(jì)算思維作為一個(gè)術(shù)語(yǔ)的確切界限仍有討論,但計(jì)算思維作為我們社會(huì)各個(gè)方面的一項(xiàng)關(guān)鍵技能,從醫(yī)生到工程師、管理者到研究人員等受過(guò)計(jì)算思維教育的勞動(dòng)力隊(duì)伍意味著效率和經(jīng)濟(jì)效益,甚至技術(shù)的進(jìn)步。本文通過(guò)Python計(jì)算機(jī)編程培養(yǎng)計(jì)算思維能力,并討論這種教育如何影響學(xué)生計(jì)算思維的提高,這些可以作為對(duì)編程教學(xué)中面向計(jì)算思維實(shí)踐的方法感興趣的教育工作者提供粗淺的參考。
參考文獻(xiàn)
[1]Wing,J. M. Computational thinking[J].Communications of the ACM,2006,49(3):33-35.
[2]Wing J. Computational Thinkings Influence on Research and Education for All[J].International Journal of Educational Technology,2017,25(2):7-14.
[3]Lori Pollock,Chrystalla Mouza,Kevin R. Guidry,and Kathleen Pusecker. Infusing Computational Thinking Across Disciplines: Reflections & Lessons Learned[C]//In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (Minneapolis,MN,USA) (SIGCSE 19). Association for Computing Machinery,New York,NY,USA,2019:435-441.
基金項(xiàng)目:宿遷學(xué)院人才引進(jìn)科研啟動(dòng)基金資助(106-CK00042/020)。
作者簡(jiǎn)介:賈銀潔(1981-),女,漢族,計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),工學(xué)博士,江蘇省科技副總。