張亮++張文輝++鄧麗敏
摘 要 通過對認知發(fā)展理論的學習和總結(jié),認為在小學高年級進行學生計算思維培養(yǎng)是必要且可行的。并在此基礎上利用App Inventor為教學工具,設計一套實驗課程來探索學生的學習情況。反饋結(jié)果表明,學生較為喜愛這類實操類課程,學習收獲也比較大。
關鍵詞 App Inventor;計算思維;小學高年級學生
中圖分類號:G642.0 文獻標識碼:B
文章編號:1671-489X(2016)24-0054-05
Teaching Exploration of Developing High Level Primary School Students Computational Thinking by App Inventor//ZHANG Liang, ZHANG Wenhui, DENG Limin
Abstract Author consider that it is necessary and feasible to develop
the high level primary school students Computational Thinking by
learning Cognitive-developmental theory. On this basis author de-signs an experimental course by using App Inventor to gain their learning situation .The result reveals that they like such operator class and the advance is obvious.
Key words App Inventor; computational thinking; high level pri-mary school student
1 引言
從1946年第一臺計算機ENIAC誕生到現(xiàn)在的半個多世紀以來,計算機性能的發(fā)展速度非常之快,其應用領域也從最初的科學計算到后來的數(shù)據(jù)處理、過程控制,再到輔助工程乃至現(xiàn)在熱門的人工智能,每一個領域的拓展都會給社會帶來巨大的改變。但在計算機信息技術快速發(fā)展并改變?nèi)藗兩畹臅r候,許多人依然把它當作一種工具和職業(yè)技能來進行學習,而忽視了計算機科學帶給人們思維方式上的拓展和轉(zhuǎn)變。在他們眼里,計算機科學就是計算機編程,而諸多家長之所以讓孩子主修計算機學科,其目的也大多是讓其學會編程,能在以后找一份好工作。正是在這種情況下,卡內(nèi)基·梅隆大學的周以真教授提出計算思維的概念,以期改變?nèi)藗兊恼`識。
2 計算思維及其重要性
何為計算思維 2006年3月,曾擔任卡內(nèi)基·梅隆大學計算機科學系主任的周以真在計算機權威刊物Communi-cations of the ACM上發(fā)表了文章Computational Thinking,提出:計算思維代表著一種普遍的認識和一類普遍的技能,它涉及運用計算機科學的基礎概念去求解問題、設計系統(tǒng)和理解人類的行為,涵蓋了反應計算機科學廣泛性的一系列思維活動,應該是每一個人都應該學習和運用的一種思維方式,是每個人都應該掌握的基本技能,就如同閱讀、寫作和算數(shù)一樣[1]。
計算思維的特征 在Computational Thinking一文中提出計算思維的幾大特點[1]:1)它應該是概念化而非程序化的;2)它應該是基礎的而不是機械的技能;3)它應該是人的而非計算機的思維;4)它應該是數(shù)學和工程思維的融合;5)它是思想而不是人造品;6)它是面向所有人、所有地方的。
計算思維的重要性 隨著計算機科學的不斷發(fā)展,信息技術已經(jīng)極大地改變了人們的生活習慣和方式,并滲透到社會的各個方面。計算思維就如同現(xiàn)在的信息技術一樣,和人們的日常生活有著密切的聯(lián)系。例如:在銀行等待服務時,在諸多均排有顧客的窗口中選擇一個窗口排隊等待,這就涉及最優(yōu)化和運籌學中都有的“隨機服務系統(tǒng)”理論模型;當決定如何把學習時間分配到各門課程中去,進而取得最好總成績的時候,就涉及“線性規(guī)劃”模型。計算思維作為建立在計算機科學理論基礎上的一種認識問題、分析理解問題并解決問題的思維方式,也必將會在未來作為一種常見的思維模式影響人們的行為。
從國外來看,很多在計算機科學技術方面有所建樹的,無一不是從小就接觸了計算機乃至編程,在長時間的接觸里愛上了計算機,并把研究計算機當作生活中的一部分。而國內(nèi),很多學生在進入大學之后才開始學習諸如C之類的編程語言,開始正式學習計算機科學及其思想,這導致很多學生的學習動力不足,同時學習目的也太功利。因此,真正喜歡學習和研究計算機科學的學生并不多,這有礙于我國計算機科學領域的長期發(fā)展,也不利于其能力的提升。故有必要在進入大學之前對學生進行計算機科學知識特別是計算思維的培養(yǎng),既讓學生能探索自己的興趣所在,也為其以后的發(fā)展打下良好的基礎。
我國目前的教育體系下,要在學生的日常課程中培養(yǎng)計算思維并非易事。首先,要兼顧學生的學業(yè)負擔情況,特別是初中和高中學生面臨升學,學業(yè)負擔較重;其次,要注意學生的認知接受情況,作為一種比較系統(tǒng)的思維方式,對其的培養(yǎng)并不是越早越好;最后,要選擇優(yōu)秀的教學工具和教學方法,同樣一節(jié)課和相同的知識點,教學工具不同、師生交互情況不同、教學流程和方法不同,則學生的喜好和接受程度顯然也會有所不同。因此,筆者在綜合分析學生學業(yè)負擔、認知水平等方面的因素后,認為在小學高年級階段進行計算思維的初步培養(yǎng)是比較具有實際操作意義的。
3 小學高年級學生思維認知的特點
認知,也可以稱為認識,是指人認識外界事物的過程。小學階段是一個人的重要成長階段,小學生的感性和理性認識都處于快速發(fā)展時期,他們有著豐富的直觀形象思維能力,也具有一定的抽象概括能力,其觀察力、記憶力和注意力均處于快速發(fā)展時期。
皮亞杰的認知發(fā)展理論認為:十來歲的兒童處在具體運算階段末期和形式運算初期,這個階段正是脫離具體形象思維,培養(yǎng)邏輯思維能力的重要階段,他們已經(jīng)能夠進行基本的假設檢驗和推理論證。他同時認為兒童只有處于特定的時期,才能掌握某些特定的概念,即認為兒童的認知發(fā)展必須要先于教學的展開[2-3]。
而維果茨基認為,兒童的心理機能的發(fā)展來自于三點:一是社會文化的發(fā)展;二是兒童與成人交往的過程對語言、符號等高級心理機能工具的掌握;三是高級心理機能不斷內(nèi)化。他提出兩種發(fā)展水平:第一種是兒童現(xiàn)有心理機能的發(fā)展水平,也就是兒童發(fā)展的實際水平;第二種是在成人的指導和幫助下所能達到的解決問題的水平,也就是兒童發(fā)展的潛在水平,即教學所要達到的水平。因此,他認為發(fā)展和教學是相互影響的,甚至教學要先于發(fā)展,并且提出,在兒童要解決超過他們當前認知水平的問題時,教師應該提供必要的指導和幫助,即提供支架,輔助他們解決問題,并在此基礎上進一步提出就近發(fā)展區(qū)的概念[3]。
綜合以上兩個理論可以看出,在小學高年級階段開展計算思維的培養(yǎng)具有必要性以及現(xiàn)實可能性。必要性是指在這個從具體運算轉(zhuǎn)向形式運算的關鍵時期,有必要培養(yǎng)他們基本的計算思維方式,讓他們在面臨問題時有一定的主動性,運用計算思維的方式來分析和解決所面臨的問題;現(xiàn)實可能性是指即使他們現(xiàn)有的心理機能比較難以自然接受和理解某些概念,但是通過教師提供支架,給予必要的指導和幫助,他們也能夠掌握相應的概念,達到發(fā)展的目的。
故此,有必要在小學階段就逐步開展計算機科學的相關教學,讓學生慢慢接觸和學習知識與思想,并在長時間的接觸中逐漸內(nèi)化所學,形成一種有效的計算思考方式,為其后續(xù)的發(fā)展打下扎實的基礎。信息技術課作為中小學生接觸計算機知識的關鍵性課程,則顯得尤為重要,如何在課程教學中蘊含計算思維,培養(yǎng)和提高學生敏銳分析問題的能力以及動手解決實際問題的能力,則是當前中小學教學中需要思考和探索的問題。
4 教學工具的選擇和分析
針對目前的小學高年級信息技術課,筆者大致統(tǒng)計了其教材內(nèi)容,多為文字編輯、圖片設計、生活科普以及機器人的基本知識等,傾向于進行基本知識的普及教學,而針對具有工程性質(zhì)的計算思維培養(yǎng)卻有一定不足。于是,在很多中小學的信息技術教學中,國內(nèi)的很多學校參考國外的方式,引入Scratch教學,以此來培養(yǎng)學生的計算思維,并編制很多校本教材和課程,取得不錯的效果。
筆者通過試用以及調(diào)查后認為,作為一種教學工具,Scratch更適合在小學低年級中進行引入,讓學生發(fā)揮自己的想象力完成各種豐富多彩的作品,即“在玩耍中學習”,因此也就有一個弊端:學生知道并可以利用這款軟件設計很多有趣的作品,但為什么使用或者學習這個軟件卻不是很明白。而作為小學高年級的學生,其學習環(huán)境和過程正處于逐漸向正式化演變的過程中,因此,筆者認為學生應該明確地知道學習目標,并在達到目標過程中取得成就感,增強學習興趣和自信,以期達到“在學習中玩?!钡男Ч?。于是,筆者更傾向于選擇App Inventor作為教學工具,在小學高年級的教學中替代Scratch進行教學。
App Inventor是Google公司在2010年設計開發(fā)的用于開發(fā)移動手機端APP的一個在線Android編程環(huán)境,它用簡單堆積可視化代碼代替了復雜的程式化代碼,能設計出十分豐富的移動端APP,因此受到諸多初級用戶的喜愛。App Inventor于2012年1月1日移交給麻省理工學院行動學習中心,其版本經(jīng)過不斷地改變,各項功能已變得越來越完善。
總體來講,其特點包括:1)環(huán)境搭建簡單;支持在線和離線兩種編輯模式;2)開發(fā)簡單,上手容易;3)組件豐
富,可自動打包項目為apk文件;4)開發(fā)過程短,且可以及時調(diào)試。
5 針對計算思維的App Inventor課程教學實踐
教學流程模型的構(gòu)建 計算思維比較抽象,教師在教學過程中如何把計算思維融入教學過程中,讓學生可以在學習過程中較為容易地掌握相應知識并逐步構(gòu)建起計算思維模式,便是教學前首要思考的問題。
筆者通過對比多種教學方法后認為,通過教師提出比較豐富有趣的問題,然后逐步搭建支架引導學生用App Inventor完成的教學形式,比較適合中小學生的具體情況,其課堂教學模型如圖1所示。
在該模型下,教師應該采用任務驅(qū)動式教學和思維支架式策略教學。在具體創(chuàng)設情境之后,應該適當向?qū)W生拋出最終任務和問題,之后扮演流程的控制者、支架搭建者和引導者的角色,僅在學生解決問題的方式或觀點不現(xiàn)實或遇阻時,予以引導并搭建支架,讓學生逐步跨過障礙繼續(xù)探究,逐步解決每一子模塊并實現(xiàn)簡單的基本功能,之后逐漸迭代,完成初步作品。在此基礎上,教師引導學生思考如何對作品進行代碼模塊乃至流程優(yōu)化,直到最終以較高質(zhì)量完成作品為止。在整個教學過程中,教師應該起主導控制作用,學生應該是主體地位,教師所做的均是為學生的學習服務的。如此可以培養(yǎng)學生的計算思維和工程能力,讓他們在面臨實際問題時自覺運用計算思維的方式進行思考和解決。
教學主題和目標 本次系列課面向的是小學六年級的學生,因此,在課程主題的選擇上不宜太難,但也需要有一定的挑戰(zhàn)性,以便了解學生接受能力的上下限,好進一步制定具體課程。鑒于學生在之前已經(jīng)接觸過Scratch,并且在課程教學的時候有學生反饋父母已經(jīng)在課余時間讓他們學習過了,更有甚者甚至接觸了單片機,因此,在試驗課程的選擇上,筆者選擇有一定難度的九宮格拼圖游戲作為教學內(nèi)容。作為傳統(tǒng)經(jīng)典的益智類游戲,其本身具有一定的趣味性和挑戰(zhàn)性,而其背后的計算邏輯思維在程序設計領域更具有代表性,因此用它來了解學生的學習能力比較適合。
讓學生了解如何對作品功能進行初步分析、步驟分解,在整個實現(xiàn)過程中了解基本的面向?qū)ο缶幊趟枷?,加強基本編程語句的熟練使用,能夠初步進行簡單新作品的完整分析和創(chuàng)作,增強學習興趣,便是本次課程的主要教學目標。
情境創(chuàng)設和具體教學 教師首先讓學生試玩九宮格拼圖游戲成品APP,然后拋出問題:同學們能夠?qū)τ螒虻慕缑婧陀螒虻牧鞒踢M行簡單分析嗎?簡單討論之后進入正式教學。教師引導學生把作品拆分成界面布局分析和實現(xiàn)、游戲流程分析、隨機化碎片、碎片移動和拼圖成功與否的判定等5個模塊。
在界面布局分析和實現(xiàn)部分,學生會探索圖片、圖片精靈、畫布、表格組件以及水平和垂直布局組件的使用,逐步了解如何利用畫布和表格組件等進行整體布局,接著試著按照手機界面的大小進行各組件大小的基本設置,同時在教師的引導下,基本知道手機APP設計時會遇到界面各不一致的情況,即設計時的“碎片化”問題。
在游戲流程分析部分,游戲者觸碰空白格相鄰的碎片之后可與空白格對調(diào),如果和原圖一致,則提示拼圖成功,顯示得分情況。教師引導學生在邏輯上分析整個游戲的運行流程[5](如圖2所示),讓他們對整個作品框架有一個大致把握。
在如何把圖片碎片打亂的隨機化碎片部分,學生首先要試著定義原始正確的狀態(tài),然后教師提示隨機的概念并舉例介紹,學生需用隨機函數(shù)把順序隨機化,在此基礎上初步繪制出“圖片碎片化”的基本流程。而學生此時繪制出的流程圖基本上是比較模糊和概括的,教師就應該針對其中不盡合理的地方進行點評和補充,并針對模糊的部分搭建支架,引導他們對此部分進行細化,最后形成完整的流程圖。
在碎片移動部分,學生首先需要判斷出空格周圍的碎片有哪些并在程序中進行存儲,接著判斷玩家所點擊的碎片是否與空格相鄰,據(jù)此決定碎片和空格是否對換位置,接著判斷拼圖是否成功。玩家每點擊一次就判斷一次,直到拼圖成功[4]。在整個完成作品過程中,學生既可以向教師詢問,也可以和同學討論,交流觀點和方法,共同進步。在教師指導下,學生利用App Inventor拼接的部分代碼塊如圖3所示,游戲界面如圖4所示。
在學生實現(xiàn)基本的游戲功能之后,教師進一步提出下列問題。
1)如何對現(xiàn)有的但冗余度比較高的代碼塊進行簡化?這對學習面向?qū)ο缶幊痰乃枷耄煜な褂谩斑^程”這一編程模塊,加深對程序流程跳轉(zhuǎn)的理解有很大的促進作用。
2)如何優(yōu)化游戲得分的計算公式?如何使得計分公式能夠比較契合玩家的認識,獲得他們的認可?這對學生來講也是一個探索點,讓他們體會設計作品時如何讓作品符合多數(shù)人的現(xiàn)實經(jīng)驗,也是一項具有挑戰(zhàn)的任務。
3)已經(jīng)實現(xiàn)拼圖游戲的作品,但是在體驗作品的時候,是否有遇到無論怎么拼,都不能把其拼好的問題?這進一步涉及在進行作品設計抽象的時候,如何使得所抽象的模型與實際模型保持高度一致的問題。教師在課堂上提出這個問題之前,幾乎沒有學生意識到這個問題。
實際生活中的拼圖是玩家自己把拼好的作品一步一步隨機打亂順序之后再進行恢復的過程,而這個過程保證了最終能夠完成拼圖,也就是最終是有解的。但是在進行模型抽象和實現(xiàn)時,設計的打亂過程是隨機把一個圖片碎片和空格對換,如此隨機執(zhí)行若干次之后,就完成碎片的亂序過程。這里就有一個潛在的問題:并沒有保證和空格對換的圖片碎片是和空格原本相鄰的!于是導致作品可能最終無法拼圖成功,而這對于加深學生體會如何對現(xiàn)實模型進行高保真抽象具有很大的意義。
6 教學實踐效果
在課程教學開始部分,學生就對App Inventor表現(xiàn)出濃厚的興趣,都想知道傳說中的安卓APP開發(fā)真的會這么簡單么?進而有很大的學習欲望。在課堂上,大部分學生能夠在教師的指導下順利完成作品的基本功能,并表現(xiàn)出較大的成就滿足感。教師對課堂的效果設計了調(diào)查問卷,設計的問題涉及學習者對所學課程的感興趣程度、課程的難易程度以及上課后的收獲程度等幾個方面,全班上課人數(shù)為39人,部分反饋統(tǒng)計結(jié)果如下。
從學習收獲上來看(如圖5所示),幾乎所有的學生在課程學習過程中,在教師的指導下完成作品的絕大部分功能,獲得較大的滿足感,因此基本認為學習的收獲比較大。
在課程講授方式上(如圖6所示),學習者對任務驅(qū)動式教學和支架式教學相結(jié)合的教學方式比較滿意,認可度高達90%。這說明采用該種教學方式,對于App Inventor
以及Scratch這類圖形化編程軟件的教學比較實用。任務目標式驅(qū)動教學能引起學習者的探索欲望,而搭建相應的支架又能讓他們覺得任務雖難,且有一定的挑戰(zhàn)性,但跳一跳就能摘桃子,并獲得不錯的成就感。
就課程難度來看(如圖7所示),絕大部分學生認為課程較難,僅有10%左右的學生認為比較簡單易接受。而由于教學對象為小學六年級,因此,這一反饋結(jié)果在預料之內(nèi)。
本次為實驗性課程,主要為了獲取學習者學習水平的上下限,以便制定適合小學高年級學生的App Inventor課程。因此,在課程結(jié)束后,設計10門具有階梯性的課程,從入門的“App Inventor初體驗”“App Inventor開發(fā)環(huán)境介紹”,到比較簡單的“制作第一個APP”,到稍難的“音樂播放器”“健康指數(shù)測試APP”,以及具有一定挑戰(zhàn)性的“計算器”“鋼琴大師”和“拼圖游戲”等,以滿足學生階梯式學習的需求。
7 教學問題反饋及展望
在教師的指導下,學習者大部分實現(xiàn)作品的基本功能,可以用成品進行游戲。但是在教學過程中,有的學生在實現(xiàn)時把圖片作為元素直接存儲在列表中,并在后面移動碎片模塊實現(xiàn)時,所有的列表中元素均是圖片。他們實現(xiàn)了碎片的初始化以及移動,但是在判斷拼圖是否成功的時候出現(xiàn)問題,在試驗自己的作品時,發(fā)現(xiàn)即使拼圖完成了,也并不提示拼圖成功并顯示得分。而這一問題就引出如何比較列表中的圖片是否一致的問題。
而在進行圖片精靈坐標位置的存儲時,由于已經(jīng)聲明一個列表用于存儲圖片精靈的序號,而每一個序號的圖片精靈又有橫縱兩個坐標信息,因此,這就遇到如何提取列表中的列表的信息問題,在編程里就是多維數(shù)組這類的概念,在App Inventor中比較難實現(xiàn)這一概念。因此,教師在講解這類基本概念之后,采用分解的方式,用兩個列表來分別存儲橫、縱坐標的信息。在教學過程中還有很多細小的問題,不再列出。
通過本系列課的教學反饋表明,學生對于App Inventor
的學習熱情要高于Scratch,不少學生在課后自己進行了APP的設計,有向教師展示作品的,也有向教師詢問問題的。筆者認為,這一方面是因為App Inventor所能設計的作品更加貼近學生的實際生活,他們都有手機,很多也在玩手機APP游戲,而設計一款自己的APP,無疑是很具有現(xiàn)實吸引力的;另一方面就是App Inventor的學習對學生來講更加具有挑戰(zhàn)性,因此,他們也就有了更大的挑戰(zhàn)欲望??梢?,利用App Inventor并采用作品開發(fā)的方式來培養(yǎng)學生的計算思維,進而提高興趣,培養(yǎng)其抽象分析所遇到的實際問題并加以解決的能力,無疑是一種有效的方式。
參考文獻
[1]Wing J M. Computational Thinking[J].Communications of the ACM,2006(3):33-35.
[2]郭佳偉.皮亞杰發(fā)生認識論研究[D].河北:河北大學,
2011.
[3]林崇德.發(fā)展心理學[M].杭州:浙江教育出版社,2002:
94-106.
[4]老巫婆(金從軍).App Inventor開發(fā)集錦[EB/OL].http://yuedu.baidu.com/ebook/41925771f90f76c661371acf.