国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于計算思維的AppInventor遞歸算法教學

2017-05-30 08:46:05李霞
高教學刊 2017年1期
關鍵詞:大學計算機基礎計算思維

李霞

摘 要:教育部高教司已高度重視與支持,通過大學計算機基礎教學,增強計算思維能力的培養(yǎng)。文章介紹了面向大一新生,用App Inventor進行遞歸算法的教學。教學過程中引導學生積極思考、培養(yǎng)學生發(fā)現(xiàn)問題、解決問題以及程序分析與調試的能力,從而達到逐步培養(yǎng)學生計算思維能力的目的。

關鍵詞:計算思維;App Inventor;遞歸算法;大學計算機基礎

中圖分類號:G642 文獻標志碼:A 文章編號:2096-000X(2017)01-0077-02

Abstract: The Higher Education Department in the Ministry of Education has attached great importance to and provided support for the cultivation of computational thinking ability, through the teaching of basic computer courses in universities. This paper introduces the teaching of recursive algorithm to freshmen with App Inventor. In the teaching process, we should guide students to think actively and cultivate students' ability on discovering and solving problems as well as analyzing and debugging programs, in order to achieve the goal of gradually developing students' computational thinking ability.

Keywords: computational thinking; App Inventor; recursive algorithm; basic computer courses in universities

引言

我國九校聯(lián)盟(C9)在2010年聯(lián)合發(fā)表了關于以計算思維改造大學計算機課程的聯(lián)合聲明,其核心要點就是強調“需要把培養(yǎng)學生的‘計算思維能力作為計算機基礎教學的核心任務”[1]。培養(yǎng)學生的計算思維能力已經成為各高校各專業(yè)學生能力培養(yǎng)的重要組成部分。

目前,增強大學計算思維培養(yǎng)主要體現(xiàn)在“大學計算機基礎”和“程序設計”相關課程上,有眾多院校進行了探索和實踐,并且也取得了一定的進展[2,3]。根據我校實際情況,向全校開設了面向計算思維培養(yǎng)的App Inventor移動應用開發(fā)的公選課程。遞歸算法在其他程序設計教學中一直是難點,但同時遞歸算法的教學是培養(yǎng)學生計算思維、分析問題、解決問題以及程序調試能力的好契機[4]。

一、App Inventor 簡介

App Inventor是由Google委托麻省理工學院(MIT)研制的一款在線快速開發(fā)移動應用的工具,并把App Inventor定義為一種培養(yǎng)學習者計算思維能力的工具。學習者通過可視化語言來學習編程、學習設計問題解決方案以及培養(yǎng)自己的創(chuàng)造性思維。

App Inventor在移動應用開發(fā)方面具有如下特點。

(一)開發(fā)環(huán)境簡單

App Inventor開發(fā)環(huán)境采用瀏覽器+云服務模式,所以不需要在本地安裝配置復雜的軟件,只需通過瀏覽器訪問AI服務器,就可以完成開發(fā)和App打包下載工作。目前國內唯一的官方服務器是廣州教育信息中心的服務器。源代碼都是保存在服務器上,保證了代碼的一致性和安全性,所以開發(fā)者可以在任何一臺聯(lián)網機器上進行開發(fā)[5]。

(二)簡單、直觀、可擴展

App Inventor采用模塊化、圖形化的編程方式,不需要掌握編程語言和復雜的語法規(guī)則,就可以開發(fā)出Android手機應用。App Inventor以手機作為載體 可以利用手機的傳感器、藍牙等功能,能方便地與外部設備實現(xiàn)鏈接,從而可以實現(xiàn)將實際問題解決與算法思想形成連結[6]。

(三)容易激發(fā)學生學習興趣

根據手機內置的加速度傳感器、方向傳感器、GPS傳感器以及攝像頭、麥克風等學生可以發(fā)揮自己的想象、開發(fā)出具有特色的移動終端應用,學生可以實現(xiàn)自己的應用設想,從中獲得成就感,從而進一步激發(fā)學生的學習動力和興趣。

(四)調試程序方便

可以通過真機或者模擬器進行調試程序。具有單獨運行指定模塊或者禁用某些模塊,可以使開發(fā)者更具體地了解某些模塊的作用,從而及時做出調整。

二、App Inventor中遞歸算法的教學過程

(一)遞歸算法

在App Inventor移動應用實際開發(fā)過程中,會運用到模塊之間直接或間接的調用,這種稱為遞歸調用。遞歸算法在C/C++等程序設計語言教學過程中,是教學的難點[7]。學生存在遞歸難先入為主的情緒,而且還要掌握復雜的語法規(guī)則,而且調試過程中程序的跳轉讓學生暈頭轉向,從而教學效果不理想,也不能很好地達到培養(yǎng)學生計算思維的目標。而在App Inventor中,學生避免了掌握復雜的語法規(guī)則的學習過程,可以重點在透徹的理解算法、通過程序模塊設計出程序,通過圖形化的手機界面把程序的執(zhí)行流程和結果更直觀的展示出來。

(二)階乘遞歸算法的實現(xiàn)與調試

在App Inventor中實現(xiàn)求階乘的遞歸算法,首先要搭建一個應用界面:由2個標簽,2個輸入框以及1個按鈕構成。該程序中通過觸發(fā)按鈕的點擊事件,調用一個帶參數的過程,來實現(xiàn)階乘的求解。定義全局變量result來存放階乘結果,通過邏輯模塊判斷參數值如果為1,則result值為1,否則result的值為遞歸調用n-1的階乘乘以n。根據學生已有的學習基礎以及遞歸流程圖的分析,絕大多數學生能夠正確實現(xiàn)程序。

程序雖然實現(xiàn)了,但從運行結果看,并沒有體現(xiàn)出遞歸的執(zhí)行流程,給人的感覺就是直接得出結果。這時候需要啟發(fā)學生思考,如何將程序的求解過程在程序中展示出來,同時訓練學生的文字表達和邏輯歸納總結能力,使學生學會分析問題、解決問題,進一步加深遞歸的理解[10,11]。

引導學生通過添加全局變量來表示遞歸調用的次序,然后分別輸出相應次序產生的結果,以此驗證程序的執(zhí)行流程。這種對程序稍作修改增加輸出語句的調試方式在許多商業(yè)軟件的開發(fā)過程中也會經常使用到,可以增強學生排錯以及調試程序的能力。在上述程序實現(xiàn)的基礎上,增加1個標簽來顯示執(zhí)行過程,編寫求解過程模塊,展示調用次序。通過展示完成的求解結果,學生就可以很好的將遞歸流程圖和計算過程結合起來,達到充分理解遞歸的教學效果。

(三)阿克曼函數的遞歸實現(xiàn)

通過實現(xiàn)經典的阿克曼函數的遞歸求解,提升難度,加深遞歸的理解。學生在理解了遞歸求階乘的基礎上,再實現(xiàn)阿克曼函數難度要降低,但是阿克曼函數是遞歸調用過程中又嵌套了遞歸的調用。這時引導學生首先分析遞歸的結束條件,從公式中可以發(fā)現(xiàn),遞歸結束條件為m值為0,然后鼓勵學生嘗試模仿畫出A(2,2)的遞歸流程圖,最后再實現(xiàn)邏輯代碼。阿克曼函數公式如下所示。

A(m,n)n+1 若m=0A(m-1,i) 若m>0,且n=0A(m-1,A(m,n-1)) 若m>0且n>0

在該例的真機測試過程中,學生發(fā)現(xiàn)輸入某些數據時,絕大多數運行會較慢,甚至死機。教師啟發(fā)學生結合已有的數學知識去發(fā)現(xiàn),當m值大于等于4時阿克曼函數的增長快得驚人。在該例中很好的將編程與數學知識相結合,并培養(yǎng)了學生分析問題的能力[12]。

三、結束語

文章通過“積木式拼接”的App Inventor移動應用開發(fā)工具,講解了遞歸程序的實現(xiàn)以及如何進行程序的分析與調試,克服了學生遞歸難的畏難情緒,加深了遞歸的理解,培養(yǎng)了學生分析問題、解決問題的能力,在培養(yǎng)了學生計算思維的基礎上,也為后續(xù)進一步學習編程語言打下了良好的基礎。

參考文獻

[1]何欽銘,陸漢權,馮博琴.計算機基礎教學的核心任務是計算思維能力的培養(yǎng)[J].中國大學教學,2010(9):5-9.

[2]陸漢權,何欽銘,徐鏡春.基于計算思維的“大學計算機基礎”課程教學內容設計[J].中國大學教學,2012(9):55-58.

[3]李文生,吳舜歆.面向計算思維能力培養(yǎng)的程序設計課程[J].計算機教育,2014(3):57-60.

[4]羅銘.基于計算思維的軟件類研究生高級算法課程教學研究[J].計算機教育,2016(7):92-95.

[5]吳明暉.面向計算思維的App Inventor課程建設與實踐[J].杭州電子科技大學學報,2015(2):93-97.

[6]郭守超,周睿,鄧常梅,等.基于App Inventor和計算思維的信息技術課堂教學研究[J].中國電化育,2014(3):91-96.

[7]申云成,趙莉,顧慶傳.基于C語言的遞歸算法分析[J].福建電腦,2015(6):133-134.

[8]譚浩強.C程序設計教程[M].北京:清華大學出版社,2010:187-188.

[9]唐大仕.“遞歸算法”微課教學設計——以“文科計算機基礎(下)”為例[J].計算機教育,2013(17):5-10.

[10]高思、趙博.C語言中遞歸算法的實現(xiàn)[J].數字技術與應用,2015(7):140.

[11]丁海燕.計算機程序設計課程中計算思維的培養(yǎng)[J].實驗技術與管理,2015(12):16-18.

[12]趙龍德. 大學計算機課程中計算思維培養(yǎng)的層次和原則[J].計算機教育,2015(10):9-12.

猜你喜歡
大學計算機基礎計算思維
基于計算思維視角的計算機基礎課程改革
商情(2016年39期)2016-11-21 09:41:50
基于網絡教學平臺的大學計算機教學改革探討
科教導刊(2016年25期)2016-11-15 18:27:24
基于SPOC模式的《大學計算機基礎》課程改革的研究
考試周刊(2016年85期)2016-11-11 00:35:30
程序設計課程中計算思維和應用能力培養(yǎng)問題研究
計算機教育(2016年7期)2016-11-10 08:16:19
民族高校C語言程序設計課程教學改革的研究
軟件工程(2016年8期)2016-10-25 16:03:32
算法的案例教學探析
淺談藝術專業(yè)學生計算思維能力的培養(yǎng)
新形勢下“大學計算機基礎”課程改革與實踐
科技視界(2016年21期)2016-10-17 17:17:10
兴城市| 靖远县| 新泰市| 新建县| 静安区| 新竹县| 麟游县| 确山县| 萨嘎县| 多伦县| 仙居县| 邵阳县| 拉孜县| 岚皋县| 准格尔旗| 荔波县| 积石山| 彭阳县| 格尔木市| 定西市| 根河市| 融水| 习水县| 监利县| 宿松县| 中超| 丹巴县| 铜鼓县| 门源| 清流县| 那坡县| 同江市| 潮州市| 涿鹿县| 永丰县| 儋州市| 越西县| 常宁市| 蒙山县| 平南县| 大埔县|