吳明暉
(浙江大學城市學院計算機科學與工程學系,浙江杭州310015)
計算思維(Computational Thinking)被認為是一種反映計算機技術(shù)本質(zhì)特征和解決問題的核心方法,能提升學生的計算素養(yǎng),培養(yǎng)學生用計算機處理和解決領(lǐng)域問題的思維方法和表達形式,對學生有著深遠影響[1]。雖然計算思維并非近來才有,但在周以真(Jeannette M.Wing)把計算思維定義為“運用計算機科學的基本概念去求解問題、設(shè)計系統(tǒng)和理解人類的行為,包括了涵蓋計算機科學之廣度的一系列思維活動”[2]后,使計算思維清晰化和系統(tǒng)化,并得到了大力推廣。在國內(nèi),陳國良院士于2010年發(fā)出了將“計算思維能力培養(yǎng)”作為計算機基礎(chǔ)課程教學改革切入點的倡議[3],同年我國九校聯(lián)盟(C9)聯(lián)合發(fā)表了關(guān)于以計算思維改造大學計算機課程的聯(lián)合聲明,其核心要點就是強調(diào)“需要把培養(yǎng)學生的‘計算思維’能力作為計算機基礎(chǔ)教學的核心任務(wù)”[4]。計算思維能力培養(yǎng)已經(jīng)成為我國高校各專業(yè)學生能力培養(yǎng)的重要組成部分。
目前,增強大學計算思維培養(yǎng)主要體現(xiàn)在“大學計算機基礎(chǔ)”和“程序設(shè)計”相關(guān)課程改革上,有眾多院校進行了探索和實踐,并且也取得了一定的進展[5-6]。但由于面臨計算機等級考試的壓力,課程中所教授的內(nèi)容局限性較大,課程深度改革還需較長時間。因此,針對不具計算機專業(yè)基礎(chǔ)的學生,設(shè)計和開設(shè)全校性面向計算思維培養(yǎng)的公共選修課成為一種新的選擇。
App Inventor最初是由Google公司開發(fā)的一款在線開放的Android編程工具軟件,用戶可以拋棄復(fù)雜的傳統(tǒng)軟件開發(fā)的代碼編寫方法,通過圖形化積木式的拖放組件來完成Android軟件開發(fā)。App Inventor在2012年1月移交給麻省理工學院MIT的行動學習中心,并由MIT發(fā)布使用,目前App Inventor已經(jīng)發(fā)布了第2 版本[7]。
App Inventor具有如下特點,使得它特別適合學校用于培養(yǎng)缺乏計算機專業(yè)編程知識的初學者計算思維之用。
1)容易吸引學生興趣?,F(xiàn)在絕大多數(shù)學生對智能手機應(yīng)用都有濃厚的興趣,以手機App開發(fā)來代替?zhèn)鹘y(tǒng)的編程訓練,更容易激發(fā)他們的興趣。而App Inventor正是Android應(yīng)用的開發(fā)工具。
2)開發(fā)環(huán)境搭建簡單。由于采用瀏覽器+云服務(wù)模式,只需要一臺能上網(wǎng)的電腦就能通過瀏覽器完成所有開發(fā)和App下載工作,無需特殊復(fù)雜的開發(fā)環(huán)境安裝。
3)開發(fā)過程簡單。使用App Inventor,手機App的界面設(shè)計和行為開發(fā)都可以通過可視化的拖放拼接組件來完成,無需關(guān)注復(fù)雜的語法規(guī)則。
4)組件模塊豐富。App Inventor已經(jīng)預(yù)先設(shè)置好了不同類型的組件模塊,如多媒體類、傳感器類,甚者樂高機器人組件。這可以讓開發(fā)者不必關(guān)心底層的實現(xiàn)細節(jié),更容易滿足開發(fā)者的應(yīng)用設(shè)想。這更有利于培養(yǎng)計算思維和激發(fā)興趣。
5)方便多臺機器交叉開發(fā)。App Inventor的所有開發(fā)代碼都是通過Google賬戶儲存在云端服務(wù)器上,因此方便開發(fā)者在任何一臺機器上進行開發(fā),并且保證了源代碼的一致性和安全性。
6)支持及時調(diào)試。App Inventor提供了強大的調(diào)試功能。調(diào)試中代碼的變更會自動同步到進行調(diào)試的手機或者模擬器中,無需重裝應(yīng)用。具有單獨運行指定模塊或者使某些模塊不可用功能,在線調(diào)試讓開發(fā)者更具體地了解某些模塊的效用,從而及時做出反饋。
7)提供服務(wù)軟件安裝包。可以把云服務(wù)端功能安裝到本地服務(wù)器,為局域網(wǎng)中的計算機提供服務(wù)。這對學校教學特別有利,避免了因為機房互聯(lián)網(wǎng)訪問權(quán)限和帶寬可能帶來的問題。
在智能手機已經(jīng)普及、移動互聯(lián)網(wǎng)技術(shù)和Android平臺蓬勃發(fā)展的背景下,以Android的圖形化積木式編程軟件App Inventor為載體,面向不具備編程基礎(chǔ)的大一學生和非計算機專業(yè)大學生,探索和實踐教學方法和教學手段,通過案例引導和項目驅(qū)動的教學方式,使學生具備基本的Android應(yīng)用開發(fā)能力,并初步養(yǎng)成計算思維。
在教學內(nèi)容的選擇和組織上突出了Android平臺的特點和基于App Inventor開發(fā)移動互聯(lián)應(yīng)用的主要方法和技能,并融入計算思維培養(yǎng),教學內(nèi)容具有鮮明的趣味性和實用性特色。
本課程不以語法和組件的使用細節(jié)作為主要教學內(nèi)容,而是通過一個虛擬的主角“小機器人安安”來串起系列案例,包括“安安誕生”、“安安愛畫畫”等8個趣味案例,以此激發(fā)學生的興趣,增強主動學習。如表1所示,課程中每章均以一個精心設(shè)計的案例引入,一方面介紹App Inventor編程的方法和技能,另一方面體現(xiàn)相關(guān)計算思維和程序設(shè)計思想。具體設(shè)置如表1所示。
主要考核對計算思維、程序設(shè)計思想、移動應(yīng)用創(chuàng)意、App Inventor的掌握和應(yīng)用情況。
考核形式為平時考勤及課堂表現(xiàn)(占20%)+課后實驗(8次課后作業(yè),占40%)+期末大作業(yè)(占40%)。期末大作業(yè)可由學生分組完成,最多4個人1組。自由選題,完成一個移動應(yīng)用的設(shè)計與開發(fā)。最終提交實驗報告、源代碼、可執(zhí)行安裝包和演示答辯ppt,由組長代表進行演示和答辯。期末大作業(yè)根據(jù)以下3方面進行綜合評分:1)大作業(yè)設(shè)計與開發(fā)情況(占總評70%),根據(jù)以下5部分評價:創(chuàng)意(20%)+UI(20%)+功能(20%)+可玩性(20%)+技術(shù)(20%);2)實驗報告 +演示(占總評分30%);3)個人貢獻(根據(jù)小組成員貢獻適當調(diào)節(jié))。
在大作業(yè)考核時,引入學生組互評,當一個小組在臺上演示講解自己小組的作品時,其他小組會進行打分,這些分數(shù)和教師評分共同決定該小組的演示分。
表1 課程內(nèi)容設(shè)置
本課程作為單獨一門選修課程,在浙江大學城市學院安排了48學時(每周3學時),每次3小節(jié)課程連上,都安排在計算機機房教學。這樣將有利于學生在老師演示案例時邊學邊做。
App Inventor移動應(yīng)用開發(fā)教學不以語法和組件的使用細節(jié)作為主要教學內(nèi)容,而是通過案例來激發(fā)學生的興趣,增強主動學習。課程中每個章節(jié)均以一個精心設(shè)計的案例引入,通過對案例的演示和開發(fā)過程分析,由淺入深,逐步引出需要掌握的知識點,并討論其中涉及的相關(guān)計算思維。
設(shè)計了系列實驗項目,通過項目驅(qū)動,強調(diào)“做中學”。實驗項目主要包括兩大類型:一類是每章的實驗項目,和教師演示的案例比較類似,主要用于鞏固所學知識;另一類是開放選題項目,學生可以自己提出項目,經(jīng)和老師討論后確定,有利于激發(fā)學生的創(chuàng)意和主動性。在項目開發(fā)中,學生將分為3-4人的小組,鼓勵跨專業(yè)組隊。組內(nèi)合作和組間競爭的方式將更好地培養(yǎng)學生溝通、協(xié)作、管理等能力,加強工程化思維。
強調(diào)學生是課堂的主體,教師更多地扮演導師和技術(shù)支持的角色,課程不再以教師講、學生聽的模式開展。強化討論與指導,每章案例講授完畢均會和學生進行一場頭腦風暴,通過這個案例所學的知識,我們現(xiàn)在能干什么?是不是可以進一步完善以前的項目?是不是有別的應(yīng)用點子?通過討論能更好地總結(jié)已學知識和激活創(chuàng)新創(chuàng)意,學生的求知欲也會進一步加強。
浙江大學城市學院在2013-2014學年2學期首次開設(shè)《App Inventor-零基礎(chǔ)Android移動應(yīng)用開發(fā)》全校公選課程,同學們選修熱情強烈,有近200人初選此課。限于課容量,最終有來自12個專業(yè)的58名學生選修此課。2014-2015學年1學期有來自19個專業(yè)的60名學生選修此課。具體學生選課專業(yè)分布情況分析見圖1。
圖1 選課學生專業(yè)分布情況
通過選課情況可以看出,雖然信息類工科專業(yè)學生比例較高,但法學、英語、工商、旅游、會展等文經(jīng)管專業(yè)學生也同樣對該課程感興趣。在已經(jīng)完成的教學班中,各專業(yè)學生所表現(xiàn)出一定的創(chuàng)新創(chuàng)意和強參與性,并且始終保持強烈的興趣。
競賽是本課程設(shè)施的一個重要環(huán)節(jié)。在課程前期就開始宣傳推廣Android競賽項目,鼓勵學生跨專業(yè)組隊,將課程大作業(yè)朝參賽項目標準努力。此前我校已經(jīng)連續(xù)3年舉辦了Android應(yīng)用開發(fā)大賽,在2014年的第4屆比賽中特別新增了App Inventor組,鼓勵非計算機專業(yè)的學生參賽,最終本次競賽App Inventor組共有11組作品參賽。根據(jù)調(diào)查,學生們一致認為以參賽項目準備為目標來驅(qū)動團隊合作、整合實踐,更能讓他們專注完善,充滿激情。
本課程還可以作為計算類專業(yè)的新生程序設(shè)計課程部分內(nèi)容,對原有的程序設(shè)計課程進行改造。在程序設(shè)計課程前期先講App Inventor,提起學生興趣,讓他們擁有一定的成就感,再接著講C語言程序設(shè)計,通過對比式講解促進學生對程序設(shè)計的理解。該方案已經(jīng)在我校計算機專業(yè)的一個教學班中試點實施,效果良好。
以現(xiàn)代學生密切接觸的智能手機移動應(yīng)用開發(fā)為載體,通過圖形化積木式的開發(fā)工具App Inventor來實現(xiàn)創(chuàng)意設(shè)計,可以避免傳統(tǒng)編成語言復(fù)雜的語法問題所造成學生對編程的恐懼感,并促進學生計算思維的養(yǎng)成。
[1]詹濤,鄧磊,廖志剛.面向計算思維培養(yǎng)的大學計算機基礎(chǔ)教學[J].計算機教育,2014,(5):1-4.
[2]Wing J M.Computational Thinking[J].Communications of the ACM,2006,49(3):33 -35.
[3]陳國良,董榮勝.計算思維與大學計算機基礎(chǔ)教育[J].中國大學教學,2011,(1):7-11.
[4]何欽銘,陸漢權(quán),馮博琴.計算機基礎(chǔ)教學的核心任務(wù)是計算思維能力的培養(yǎng)[J].中國大學教學,2010,(9):5-9.
[5]陸漢權(quán),何欽銘,徐鏡春.基于計算思維的“大學計算機基礎(chǔ)”課程教學內(nèi)容設(shè)計[J].中國大學教學,2012,(9):55-58.
[6]李文生,吳舜歆.面向計算思維能力培養(yǎng)的程序設(shè)計課程[J].計算機教育,2014,(3):57-60.
[7]MIT.App Inventor 2[EB/OL].[2014 -08 -15].http://ai2.appinventor.mit.edu.