我對中小學(xué)創(chuàng)客教育、STEAM教育和人工智能教育的一些思考及編程課的若干困惑
大家好,今天想跟大伙兒聊聊自己對中小學(xué)創(chuàng)客教育、STEAM教育以及人工智能教育的一些思考和關(guān)于編程課的一些困惑。
創(chuàng)客教育、STEAM教育和人工智能教育這幾個(gè)概念在最近幾年挺火的,很多名詞層出不窮,概念的更迭速度越來越快,相關(guān)內(nèi)容也越來越雜。我作為一名普通的信息技術(shù)老師,從一開始的一無所知到逐漸了解再到實(shí)際開課,也有三年多時(shí)間,最近也陸續(xù)參加了一些相關(guān)的會議,一時(shí)興起就想跟大伙兒聊一下這個(gè)話題。不知道有沒有感興趣的朋友們愿意一起探討一下?
按百度百科的說法,創(chuàng)客教育是一種融合科學(xué)、技術(shù)、工程、藝術(shù)、數(shù)學(xué)等知識與技能,遵循自由開放、創(chuàng)新創(chuàng)意、探究體驗(yàn)的教育理念,是一種以實(shí)踐創(chuàng)造學(xué)習(xí)為主,培養(yǎng)創(chuàng)新型人才的新型教育模式。STEAM教育是集科學(xué),技術(shù),工程,藝術(shù),數(shù)學(xué)多領(lǐng)域融合的綜合教育,也是一種教育理念,有別于傳統(tǒng)的單學(xué)科、重書本知識的教育方式,STEAM是一種重實(shí)踐的超學(xué)科教育概念。至于人工智能教育目前還沒有一個(gè)特別明確的概念界定,百度上說人工智能教育是指人工智能多層次教育體系的全民智能教育,涵蓋在中小學(xué)階段設(shè)置人工智能相關(guān)課程,這個(gè)表述其實(shí)挺模糊的。
其實(shí)上面的三種說法我都認(rèn)為比較抽象,從我個(gè)人的理解來看,創(chuàng)客教育的相關(guān)課程就是讓學(xué)生學(xué)習(xí)造物——會利用各種材料設(shè)計(jì)和制作實(shí)物,讓學(xué)生動手制作各種物件,從而鍛煉他們的動手能力,培養(yǎng)他們的創(chuàng)新意識。具體內(nèi)容包括但不限于傳統(tǒng)的手工、科技制作、木藝、陶藝等,但現(xiàn)在更側(cè)重于讓學(xué)生學(xué)習(xí)使用Arduino、掌控板等開源硬件以及3D打印機(jī)、激光雕刻機(jī)等信息化工具,再加上程序的編寫去完成一些更富有科技含量的作品。由于創(chuàng)客教育的內(nèi)容廣泛且相對比較獨(dú)立,因此一些內(nèi)容能夠拆分成一個(gè)個(gè)單獨(dú)的教學(xué)版塊去開課,如科技制作課、航模課、編程課、機(jī)器人課等等。當(dāng)然,也可以把有關(guān)聯(lián)性的內(nèi)容整合成一個(gè)綜合性課程。
STEAM教育在概念上和創(chuàng)客教育很像,也是一種新型的教育理念,但它更強(qiáng)調(diào)跨學(xué)科融合,注重采用項(xiàng)目式學(xué)習(xí)的方式,用完成某一項(xiàng)目作為驅(qū)動力,調(diào)動學(xué)生的積極性和參與度,培養(yǎng)學(xué)生主動學(xué)習(xí)意識。因此但凡在課程設(shè)計(jì)時(shí)就考慮了多學(xué)科融合的課都可以稱為STEAM教育課程,其具體內(nèi)容也很廣泛,如不需要使用信息技術(shù)的橋梁設(shè)計(jì)與制作和需要借助智能硬件與編程才能完成的自動售貨機(jī)等項(xiàng)目都可以作為STEAM課程的內(nèi)容。
那么STEAM教育與創(chuàng)客教育的區(qū)別又在哪里呢?我認(rèn)為主要還是課程理念上的差異,創(chuàng)客教育的具體內(nèi)容主要是“做”,雖然要做肯定也要學(xué),但做是其教學(xué)內(nèi)容的主體,也是目的,而STEAM教育的內(nèi)容是強(qiáng)調(diào)在做中學(xué),做只是過程和手段,多學(xué)科知識的學(xué)習(xí)和應(yīng)用才是教學(xué)目的。
所以,STEAM教育可以算是創(chuàng)客教育的升級版,不過這并不意味著STEAM教育就可以完全取代創(chuàng)客教育。畢竟針對低年級的學(xué)生,一些動手制作的內(nèi)容還是有一定難度的,所以要真正讓STEAM教育落地,需要創(chuàng)客教育先去做一些鋪墊。當(dāng)然,如果條件允許、時(shí)間充裕,創(chuàng)客教育和STEAM教育的課程在設(shè)計(jì)時(shí)前后銜接,在教學(xué)中融會貫通,最終打造成一個(gè)完整的教育體系將會有更進(jìn)一步的發(fā)展。
人工智能教育是個(gè)全新的事物,這兩年其熱度越來越高,但稍微對人工智能的概念和技術(shù)有所了解的人都知道,真正的人工智能教育所包含的課程內(nèi)容較之創(chuàng)客教育和STEAM教育的內(nèi)容要深得多,也復(fù)雜得多,現(xiàn)在想要開這方面課程的學(xué)校不少,但真正能開進(jìn)來的似乎不多,有些機(jī)構(gòu)甚至直接把原來的創(chuàng)客教育或者STEAM教育的一些課程包括機(jī)器人的一些課程重新包裝后就叫做人工智能課程了,這是大錯特錯的。
當(dāng)然,也有一些人說現(xiàn)在中小學(xué)開展所謂的人工智能教育更多就是一種噱頭,畢竟這里面涉及的知識別說一般的中小學(xué)生無法理解和掌握,就是很多信息技術(shù)老師可能一時(shí)半會兒都搞不明白。但不管怎樣,隨著越來越人和企業(yè)、機(jī)構(gòu)參與其中,相關(guān)技術(shù)進(jìn)一步完善,人工智能教育的產(chǎn)品越來越豐富,相信不久的將來,人工智能教育也會慢慢落地,開花結(jié)果。
早在2017年,我所在的學(xué)校就開始探索創(chuàng)客教育,具體開設(shè)了創(chuàng)意編程課、機(jī)器人課、無人機(jī)課、科技制作課等課程,在19年又開始嘗試STEAM教育,選取的飼蟲盒、喂鳥器、造紙術(shù)、航空器、過山車等項(xiàng)目也很受學(xué)生歡迎。這些課程的研發(fā)和開設(shè),我都有幸參與其中,因此也有一些自己的體會。
首先,無論哪種教育理念或模式,要想落地,必須落在課程上,而課程要體現(xiàn)出理念的先進(jìn)性,那么從研發(fā)到開設(shè)又是一個(gè)系統(tǒng)性的工作。簡單來說,領(lǐng)導(dǎo)是前提、課時(shí)是保證、老師是依托、內(nèi)容是關(guān)鍵。
沒有學(xué)校領(lǐng)導(dǎo)的重視和支持,一沒場地、二沒設(shè)備、三沒課時(shí),課根本開不起來。有了領(lǐng)導(dǎo)的支持,課開起來了,課時(shí)要有保證,不能像一些“副課”一樣總是被占。課能正常上了,內(nèi)容如何設(shè)置,進(jìn)度怎么安排,學(xué)生如何調(diào)動,當(dāng)然全看老師。而真正能讓課程體現(xiàn)出特有的意義和價(jià)值的關(guān)鍵就是課程內(nèi)容本身。
以我具體負(fù)責(zé)的編程課為例,這教學(xué)過程中,我就深刻感受到面對中學(xué)生的編程課和社會培訓(xùn)機(jī)構(gòu)針對社會人員的編程課是迥然不同的,我們不是在培養(yǎng)未來的職業(yè)程序員,而是教學(xué)生能夠借助編程這種天然具有創(chuàng)造性特點(diǎn)的工具去實(shí)現(xiàn)自己的各種創(chuàng)意想法。所以在課程內(nèi)容設(shè)置上,一定要以激發(fā)學(xué)生的興趣和培養(yǎng)學(xué)生創(chuàng)造性思維為主要指導(dǎo)思想,絕不能只是單一的編程知識的灌輸或技能訓(xùn)練。另外,還要有層次性、系統(tǒng)性和契合性。
所謂層次性就是內(nèi)容要符合學(xué)生的認(rèn)識水平,不同年齡段的學(xué)生學(xué)習(xí)的深度不一樣;所謂系統(tǒng)性則是從小學(xué)到高中,學(xué)生的學(xué)習(xí)內(nèi)容要前后關(guān)聯(lián),不能割裂開來;所謂契合性就是不同的學(xué)生的興趣點(diǎn)不一樣,喜歡硬件制作和喜歡軟件開發(fā)的學(xué)生的學(xué)習(xí)內(nèi)容也要分開。
一般來講,面對零基礎(chǔ)的學(xué)生,采用Scratch入門,學(xué)習(xí)一段時(shí)間以后,喜歡硬件的學(xué)生可以學(xué)習(xí)Arduino、掌控板等開源硬件,編程方面既有圖形化的Mixly、Linkboy等工具,也有C、Python等語言,而喜歡軟件開發(fā)或者游戲開發(fā)的同學(xué)可以學(xué)Python、C#等語言,或者Unity等工具,不要搞一刀切。
不過,設(shè)想雖然美好,但實(shí)施過程困難重重。既有時(shí)間上的問題,也有個(gè)人原因,因此在課堂的組織形式上,我嘗試采用項(xiàng)目式教學(xué)的方法,鼓勵學(xué)生自學(xué)或合作學(xué)習(xí)。
至于項(xiàng)目式教學(xué)又是另外一個(gè)話題,以后有機(jī)會再聊。
?
上面就是我對于創(chuàng)客教育、STEAM教育和人工智能教育的一些粗淺的思考,不知大家怎么看?
下面就是編程課的一些困惑,主要是在編程語言的選擇和內(nèi)容安排上。前面說過,采用Scratch語言入門幾乎沒有爭議,但Scratch本身要學(xué)多深?在Scratch之后又學(xué)習(xí)什么語言?可能不同的老師會有不同的想法。
先說Scratch的學(xué)習(xí),結(jié)合我這幾年的實(shí)際教學(xué)經(jīng)驗(yàn)來看,學(xué)生們零基礎(chǔ)入門時(shí)學(xué)Scratch是挺好的,但是否要在Scratch這個(gè)語言身上花很長時(shí)間去研究?這是個(gè)值得探討的問題。另外,學(xué)完Scratch之后,就否要馬上開始學(xué)習(xí)Python?也要好好思考一下。
對于Scratch的學(xué)習(xí),我個(gè)人認(rèn)為,絕大多數(shù)學(xué)生而言是不必過于深入研究的。原因有二點(diǎn),一是這種圖形化編程語言天生不適合開發(fā)復(fù)雜的大型程序或游戲。雖然在一些論壇有很多大神開發(fā)了“大作”,但當(dāng)我們打開代碼界面時(shí),那眼花繚亂的圖形化代碼還是挺嚇人的,而且我們不知道按什么順序去讀,那么多角色和變量列表,它們的內(nèi)在邏輯關(guān)系究竟是怎樣的。二是即使你通過一番努力研究Scratch很深入了,但你最終要用Scratch做什么呢?真的用它去開發(fā)游戲和程序嗎?我想稍微對Scratch有所了解的人都知道這種想法不說不現(xiàn)實(shí),至少不明智。
然后就是Scratch之后的語言選擇上,目前絕大多數(shù)學(xué)校和機(jī)構(gòu)都選擇Python,也有學(xué)校開設(shè)了C++等內(nèi)容——主要是為了參加信息奧賽。其實(shí)選擇Python,當(dāng)然與它的各種優(yōu)點(diǎn)是分不開的,但如果所有學(xué)校都只選這一門語言,就有一些問題了。
我曾經(jīng)也讓學(xué)生們在學(xué)完Scratch就馬上開始學(xué)Python,但漸漸地,我感覺問題很多。初高中生可能還好,但小學(xué)生學(xué)Python,難度還是比較大。且不說Python的全英文的代碼編寫模式會讓相當(dāng)一部分學(xué)生不太好適應(yīng),僅僅只是前期相對枯燥的語法學(xué)習(xí)就會讓很多學(xué)生打退堂鼓,至少在我的教學(xué)嘗試中,在教完Scratch后開始教Python,很多學(xué)生在硬著頭皮聽了幾節(jié)課后,普遍表示不太容易接受。
所以,我們是不是應(yīng)該把眼界再放寬些?要知道除了Python,還有很多編程語言我們也可以試一試。比如被很多專業(yè)程序員看不起的易語言,它曾經(jīng)也有過走進(jìn)學(xué)校課堂的歷史,當(dāng)前的使用它的人數(shù)也相當(dāng)龐大,這個(gè)語言可能在一些專業(yè)人士眼里有些落后,但從教學(xué)的角度來看,這門語言還是有它的閃光點(diǎn)的。又比如能比較容易開發(fā)窗口程序和寫游戲的C#,有VS的加持以及它和Unity3D的關(guān)系,很多業(yè)余程序員和獨(dú)立游戲開發(fā)者都非常樂于學(xué)習(xí)它。這些語言在我個(gè)人看來,它們教學(xué)上的優(yōu)點(diǎn)也很突出。只要我們在內(nèi)容上進(jìn)行一些整理,也許能夠很好地使用它們幫助中小學(xué)生學(xué)習(xí)代碼式編程。關(guān)鍵就在于學(xué)生們能夠?qū)W有所用,在學(xué)習(xí)了一段時(shí)間后便可以開發(fā)出自己的小軟件或者小游戲,這種成就感是滿滿的。
當(dāng)然,就算一定要學(xué)Python,我們就要在內(nèi)容上進(jìn)行深度挖掘。這門語言很容易學(xué),功能也很強(qiáng)大,更是人工智能領(lǐng)域的首選語言,但面對中小學(xué)生,我們應(yīng)該教什么?可能很多老師一開始會使用內(nèi)置的turtle庫去教學(xué)生畫圖形,熟悉Python的語法,后期再用Pygame或者Pygame Zero做做小游戲,可再后呢?可能就沒有然后了。上述內(nèi)容固然有趣,但同樣是做游戲,可能更多的學(xué)生還是愿意選擇Scratch。那么教學(xué)生寫爬蟲怎么樣呢?實(shí)用雖然實(shí)用,可那涉及的知識點(diǎn)一下子就多了起來,不僅有相關(guān)庫的知識,網(wǎng)絡(luò)協(xié)議等知識點(diǎn)的學(xué)習(xí)也會讓很多學(xué)生感到頭痛。
所以到底應(yīng)該如何安排Python課程內(nèi)容?希望有想法的大神們給我一些指點(diǎn)。
今天雜七雜八地說了那么多,都是想到哪兒就說到哪,其實(shí)我真正的目的是在和大家交流的同時(shí)更是希望得到大家的指點(diǎn)和幫助。中小學(xué)的創(chuàng)客教育、STEAM教育、人工智能教育還有編程課,希望有更多的一線老師來說說自己的觀點(diǎn),也許在交流的過程中碰撞出的思維火花能夠幫助我們更好開展教學(xué)。