陳旭佳
一、正確理解信息技術(shù)課程中計(jì)算思維的本質(zhì)
計(jì)算思維是利用計(jì)算機(jī)科學(xué)的思想方式,在形成問(wèn)題解決方法的過(guò)程中產(chǎn)生的思維活動(dòng)。它強(qiáng)調(diào)的是具備利用計(jì)算機(jī)可解決、可界定問(wèn)題、可抽象建模、可組織數(shù)據(jù)、可合理形成有效方案等綜合性、項(xiàng)目性的能力。在課堂中教師對(duì)問(wèn)題的處理都是按照“問(wèn)題—編程—測(cè)試—結(jié)果”流程,基本上都把計(jì)算思維歸類于算法,更有甚者把數(shù)學(xué)中的“算術(shù)思維”當(dāng)成了計(jì)算思維。針對(duì)這類情況,筆者從三個(gè)方面探究信息技術(shù)課程中計(jì)算思維的內(nèi)在本質(zhì)。
1.正確深入剖析問(wèn)題是計(jì)算思維的前提
在課堂上,教師經(jīng)常用“提問(wèn)”作為教學(xué)手段。因此教學(xué)的重點(diǎn)落在問(wèn)題解決,而忽略引導(dǎo)學(xué)生把問(wèn)題進(jìn)行分解和剖析。例如,利用python設(shè)計(jì)出一個(gè)具備輸入內(nèi)容并把內(nèi)容輸出的功能界面。教師對(duì)這個(gè)問(wèn)題的處理是先列出相應(yīng)的程序語(yǔ)句(input和print),然后設(shè)計(jì)算法,最后是編程。這種處理方式抑制著學(xué)生對(duì)問(wèn)題作深入性剖析和思維探究的發(fā)展。筆者認(rèn)為,正確理解并剖析問(wèn)題比把問(wèn)題解決更加重要。
教師在課堂上引導(dǎo)學(xué)生對(duì)問(wèn)題的剖析,可依據(jù)以下表中的四個(gè)步驟依次進(jìn)行。
2.準(zhǔn)確建立問(wèn)題的“模型”是計(jì)算思維的基礎(chǔ)
模型是問(wèn)題的抽象化體現(xiàn)。問(wèn)題解決的條件、方法、手段都要根據(jù)這個(gè)模型去進(jìn)行。這個(gè)過(guò)程我們稱為“建?!?。在課堂中,學(xué)生經(jīng)常把“怎樣做”擺在首位,而忽略了“做什么”。計(jì)算思維中強(qiáng)調(diào)“建?!钡淖饔?,就是針對(duì)學(xué)生缺乏“做什么”的思維過(guò)程。筆者認(rèn)為,計(jì)算思維強(qiáng)調(diào)了“建模”過(guò)程的三個(gè)方面,即模型的組織結(jié)構(gòu)、模型元素的相互關(guān)系和模型的具體抽象化。本文以利用python 3制作一個(gè)簡(jiǎn)單的點(diǎn)菜系統(tǒng)為例子進(jìn)行闡述。
(1)模型的組織結(jié)構(gòu)(如圖1所示)
(2)模型元素的相互關(guān)系(如圖2所示)
(3)模型的具體抽象化(如圖3所示)
3.尋求問(wèn)題最佳“算法”是計(jì)算思維的靈魂
計(jì)算思維離不開(kāi)算法,但算法并不等同計(jì)算思維。利用計(jì)算思維處理問(wèn)題是一個(gè)綜合性的過(guò)程,它涵蓋了計(jì)算機(jī)科學(xué)理念、數(shù)學(xué)理念和工程理念,而算法或編程只是把整個(gè)過(guò)程進(jìn)行描述或具體化而已。在計(jì)算思維過(guò)程中,應(yīng)借助“算法”將問(wèn)題“化繁為簡(jiǎn)”,以清晰的思路、具有可操作性的方法、有效率的途徑將問(wèn)題解決。教師可從三個(gè)思維角度去引導(dǎo)學(xué)生尋求解決問(wèn)題的最佳算法:一是順序性的功能實(shí)現(xiàn)(多次代碼實(shí)現(xiàn));二是循環(huán)性的功能實(shí)現(xiàn)(代碼一次實(shí)現(xiàn));三是結(jié)構(gòu)性的功能實(shí)現(xiàn)(函數(shù)封裝)。通過(guò)這三個(gè)角度能讓學(xué)生在探索問(wèn)題過(guò)程中向項(xiàng)目化、系統(tǒng)化的計(jì)算思維角度去靠攏。
二、python教學(xué)中計(jì)算思維的合理體現(xiàn)
1.利用python中條件循環(huán)結(jié)構(gòu)體現(xiàn)邏輯思維
在計(jì)算思維中強(qiáng)調(diào)正確陳述、剖析問(wèn)題,將復(fù)雜的關(guān)系轉(zhuǎn)成清晰的邏輯結(jié)構(gòu)助力于問(wèn)題的解決。問(wèn)題的邏輯結(jié)構(gòu)不外乎就是條件判斷和循環(huán)兩者的有機(jī)結(jié)合。例如上文的點(diǎn)菜系統(tǒng),看似內(nèi)容復(fù)雜繁多,但基本上可分類于以下幾種邏輯結(jié)構(gòu):(1)整個(gè)系統(tǒng)是否有條件循環(huán)?(while語(yǔ)法結(jié)構(gòu))(2)點(diǎn)菜過(guò)程是否有條件選擇?用戶輸入格式是否有條件限制?(if語(yǔ)法結(jié)構(gòu))(3)用餐費(fèi)用結(jié)算是否有條件選擇?(if語(yǔ)法結(jié)構(gòu))
2.利用python中的函數(shù)結(jié)構(gòu)體現(xiàn)抽象思維
python函數(shù)中具備將功能操作進(jìn)行封裝的特點(diǎn)。在將問(wèn)題進(jìn)行剖析之后,應(yīng)對(duì)問(wèn)題解決的步驟進(jìn)行分塊,這個(gè)過(guò)程應(yīng)引導(dǎo)學(xué)生合理地進(jìn)行函數(shù)功能設(shè)計(jì),但不必要去思考函數(shù)的具體實(shí)現(xiàn)。進(jìn)行函數(shù)設(shè)計(jì)之后,再去思考這些函數(shù)之間的數(shù)據(jù)傳遞關(guān)系,從而將函數(shù)間的關(guān)系進(jìn)一步明確。
3.利用python中turtle模塊體現(xiàn)建模思維
Turtle模塊能讓學(xué)生感受到問(wèn)題解決的過(guò)程及結(jié)果的體現(xiàn)。教師可以借助Turtle引導(dǎo)學(xué)生對(duì)問(wèn)題進(jìn)行建模。例如,制作一個(gè)立體的動(dòng)態(tài)星空。這個(gè)問(wèn)題教師可以引導(dǎo)學(xué)生在Turtle中先畫(huà)出黑色背景和一個(gè)白色的小五角星。然后以此為基礎(chǔ),再依次變化呈現(xiàn)出星空的狀態(tài)。如圖4所示。
三、利用python教學(xué)對(duì)計(jì)算思維的初步形成
在計(jì)算思維解決問(wèn)題的過(guò)程中,教師在課堂上要引導(dǎo)學(xué)生從“輕算法、重方法”“輕結(jié)果、重分析”“輕過(guò)程、重系統(tǒng)”三個(gè)方面去向計(jì)算思維靠近,并逐步把計(jì)算思維融入問(wèn)題的處理過(guò)程中,讓學(xué)生慢慢養(yǎng)成一種思維習(xí)慣。
實(shí)例:python課程中的列表處理數(shù)據(jù)。(電子地圖上城市的經(jīng)緯度列表)
1.創(chuàng)建python列表
創(chuàng)建一個(gè)名為“map”,關(guān)于電子地圖城市的列表。
map=[“北京”,“石家莊”,“沈陽(yáng)”,“廣州”]
通過(guò)創(chuàng)建列表問(wèn)題,讓學(xué)生掌握將分散的元素(城市)轉(zhuǎn)化為集合形式(列表)。在這點(diǎn)上體現(xiàn)計(jì)算思維中的建模思想。教師還可以進(jìn)一步地把問(wèn)題加以擴(kuò)展,將數(shù)據(jù)添加到列表中對(duì)應(yīng)的元素中。
2.添加python列表數(shù)據(jù)
向列表中元素添加對(duì)應(yīng)的數(shù)據(jù),教師可從不同的角度去引導(dǎo)學(xué)生,通過(guò)對(duì)比指導(dǎo)學(xué)生在問(wèn)題解決過(guò)程中要尋找“最佳算法”。
算法一:使用“insert”和“append”,向“map”列表直接添加數(shù)據(jù)。
map.insert(1,“N:39E116”)
map.insert(2,“N:37E114”)
map.insert(3,“N:41E123”)
map.insert(4,“N:41E123”)
這個(gè)方法需要按照列表元素位置的逐一添加,是一一對(duì)應(yīng)的關(guān)系,位置序號(hào)不能搞混。
算法二:在創(chuàng)建列表時(shí)候加入數(shù)據(jù)
map=[“北京”,“N:39E116”,“石家莊”,“N:37E114”,“沈陽(yáng)”,“N:41E123”,“廣州”,“N:41E123”]
3.顯示python列表數(shù)據(jù)
教師可引導(dǎo)學(xué)生逐步的將列表中的數(shù)據(jù)顯示出來(lái),采用print語(yǔ)句,如:Print(map[1],map[2], map[3],map[4])。接著,教師可適當(dāng)?shù)靥岣邔W(xué)生的思維能力,比如采用循環(huán)思想解決具有規(guī)律性的問(wèn)題。例子如下。
num=1
While num<=len(map):
print(map[num])
num=num+1
經(jīng)過(guò)上面三個(gè)階段教師再讓學(xué)生多作深入探究問(wèn)題,多尋求解決問(wèn)題的方法。在此基礎(chǔ)上教師可再設(shè)計(jì)出一系列與列表相關(guān)的問(wèn)題,如運(yùn)用列表解決企業(yè)人員薪資問(wèn)題、商品價(jià)格查詢問(wèn)題、消費(fèi)種類及消費(fèi)金額問(wèn)題等。
計(jì)算思維教學(xué)過(guò)程應(yīng)該重點(diǎn)關(guān)注學(xué)生思考、探索、尋求問(wèn)題解決方法的過(guò)程,而不是問(wèn)題解決的結(jié)果。學(xué)生學(xué)習(xí)計(jì)算思維本身就是一個(gè)系統(tǒng)化的過(guò)程。教師不能“斷章取義”,將計(jì)算思維過(guò)程中某個(gè)環(huán)節(jié)作為課堂的教學(xué)和訓(xùn)練。教師需在理論上把計(jì)算思維理解透徹,在課程設(shè)計(jì)上逐漸滲透,把計(jì)算思維有機(jī)地融入教學(xué)過(guò)程中,從而將計(jì)算思維變成學(xué)生一種“慣性”的思考習(xí)慣。
參考文獻(xiàn):
[1]嵩天,黃天羽.Python語(yǔ)言程序設(shè)計(jì)教學(xué)案例新思維[J].計(jì)算機(jī)教育,2017(12).
[2]王亞萍.計(jì)算思維培養(yǎng)視域下《Python程序設(shè)計(jì)》課程的教學(xué)改革實(shí)踐[J].電腦知識(shí)與技術(shù),2018(2).
[3]賈瑞鳳,馬曾,侯春龍.以Python為工具培養(yǎng)學(xué)生計(jì)算思維[J].電腦知識(shí)與技術(shù),2018(2).
[4]柳青.Python系列課程的案例教學(xué)實(shí)踐[J].電腦知識(shí)與技術(shù),2018(15).
[5]馮艷紅,王楠,許冀偉.Python語(yǔ)言程序設(shè)計(jì)教學(xué)模式探索[J].福建電腦,2018(10).