• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Access VBA程序設(shè)計教學(xué)中計算思維能力的培養(yǎng)

      2015-09-11 12:49:35李志輝石黎曾宇容
      電腦知識與技術(shù) 2015年17期
      關(guān)鍵詞:計算思維

      李志輝++石黎++曾宇容

      摘要:由于計算思維最終需要程序設(shè)計去實現(xiàn),因此VBA編程是以計算思維能力培養(yǎng)為教學(xué)目標(biāo)的Access數(shù)據(jù)庫課程的重點教學(xué)內(nèi)容。根據(jù)VBA的教學(xué)內(nèi)容和學(xué)生的實際情況,引入了更適合于計算思維培養(yǎng)的啟發(fā)式教學(xué)模式,并分別從語法教學(xué)和問題求解教學(xué)兩個方面闡述了具體的教學(xué)舉措,實踐證明這些舉措對培養(yǎng)學(xué)生的計算思維能力是行之有效的。

      關(guān)鍵詞:計算思維;程序設(shè)計教學(xué);VBA;Access

      中圖分類號:G642.0 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)17-0116-03

      Cultivation of Computational Thinking Ability in Teaching of VBA Programming in Access

      LI Zhi-hui, SHI Li, ZENG Yu-rong

      (School of Information Engineering, Hubei University of Economics, Wuhan 430205, China)

      Abstract: Because computational thinking finally needs to be achieved by computer programming, VBA programming is a key content in the teaching of Access database course based on the cultivation of computational thinking ability. According to the teaching content of VBA and the actual situation of students, this paper introduces a heuristic teaching model which is more suitable for the cultivation of computational thinking ability, and expounds the specific teaching measures from two aspects: grammar teaching and problem solving. The teaching practice has proved that these measures are effective to develop the students' computational thinking ability.

      Key words: Computational Thinking; Programming Teaching; VBA; Access

      2006年3月,美國卡內(nèi)基·梅隆大學(xué)的周以真教授提出了計算思維的概念:計算思維是運用計算機(jī)科學(xué)的基礎(chǔ)概念去求解問題、設(shè)計系統(tǒng)和理解人類的行為,它包括了涵蓋計算機(jī)科學(xué)之廣度的一系列思維活動[1],并對其進(jìn)行了更為細(xì)致的描述:計算思維是通過約簡、嵌入、轉(zhuǎn)化和仿真等方法,把一個看來困難的問題重新闡釋為如何求解它的思維方法,是一種遞歸思維,是一種采用抽象和分解來解決龐雜任務(wù)的方法,是一種按照預(yù)防、保護(hù)及通過冗余、容錯、糾錯的方式保證系統(tǒng)安全的思維方法,是一種利用啟發(fā)式推理來求解的思維方法,是一種在時間和空間之間、處理能力和存儲容量之間進(jìn)行折中的思維方法[1]。

      計算思維的概念經(jīng)周教授明確提出后,專家學(xué)者經(jīng)過梳理發(fā)現(xiàn)當(dāng)前幾乎所有領(lǐng)域的重大成就無不與之密切相關(guān)。計算思維所表現(xiàn)出的強(qiáng)大創(chuàng)新能力,使其迅速歸位為與理論思維、實驗思維并列的人類三大科學(xué)思維之一,計算思維能力也已成為創(chuàng)新性人才應(yīng)具有的基本素質(zhì)和要求之一。有鑒于此,在我國教育部的主導(dǎo)下,對作為大學(xué)通識教育的計算機(jī)基礎(chǔ)課程教育確立了以培養(yǎng)學(xué)生計算思維能力作為核心任務(wù)的教學(xué)改革目標(biāo)。計算思維能力的培養(yǎng),要抓住計算思維的本質(zhì)——抽象和自動化,計算思維在不同層面進(jìn)行抽象,以及將這些抽象機(jī)器化。由于計算思維的機(jī)器化最終需要程序設(shè)計去實現(xiàn)(盡管計算思維不僅僅是程序設(shè)計),且程序設(shè)計的內(nèi)容也最能夠體現(xiàn)計算思維語言級的問題求解方法,因此計算機(jī)基礎(chǔ)教育中的程序設(shè)計類課程應(yīng)是開展計算思維教學(xué)的重點。

      《數(shù)據(jù)庫及其應(yīng)用》課程是計算機(jī)基礎(chǔ)教學(xué)“數(shù)據(jù)管理與信息處理”知識領(lǐng)域的核心課程之一,是面向文科專業(yè)學(xué)生開設(shè)的計算機(jī)通識必修課。Access是很多高校為《數(shù)據(jù)庫及其應(yīng)用》課程選擇的數(shù)據(jù)庫教學(xué)平臺,VBA作為其內(nèi)置的編程語言,理應(yīng)是在該課程中對學(xué)生進(jìn)行計算思維能力培養(yǎng)的重點教學(xué)內(nèi)容。

      1 啟發(fā)式教學(xué)應(yīng)是VBA中進(jìn)行計算思維培養(yǎng)的主要教學(xué)模式

      要在VBA程序設(shè)計中培養(yǎng)學(xué)生的計算思維,教學(xué)的關(guān)注點不能再僅僅是VBA程序設(shè)計的知識和技能,更重要的是高于知識和技能的學(xué)生學(xué)習(xí)過程中的思維方式,這是一種思維教育。傳統(tǒng)的灌輸式教育模式,是一種知識的灌輸,整個課堂的教學(xué)時間主要被教師的宣講所占據(jù),學(xué)生一味忙于傾聽和記錄,缺乏思考問題的時間和空間,顯然這種教學(xué)模式難以發(fā)展學(xué)生的思維[2]。學(xué)生思維的發(fā)展離不開教師的啟發(fā)與誘導(dǎo),引入啟發(fā)式教學(xué)模式是開展計算思維教育的必然選擇。

      所謂啟發(fā)式教學(xué),主要是指在教師的啟發(fā)與誘導(dǎo)下,通過師生互動的形式,引發(fā)學(xué)生主動思考、主動探索、共同參與教學(xué)的一種教學(xué)模式[3],它秉承了“以學(xué)生為主體,教師為主導(dǎo)”的現(xiàn)代教學(xué)理念。在這種教學(xué)模式下,教師以學(xué)生為中心來組織教學(xué)活動,注重調(diào)動學(xué)生學(xué)習(xí)的積極性和主動性,引導(dǎo)學(xué)生獨立自主地開展思維活動;教師的教學(xué)內(nèi)容不再局限于知識本身,而是以知識為載體傳授解決問題的思路、展示思維的過程、教會學(xué)生思考的方法;教師以啟發(fā)性問題為中心,創(chuàng)設(shè)教學(xué)情境,并在情境中引發(fā)學(xué)生的質(zhì)疑和思考,同時為學(xué)生表達(dá)思想營造良好的課堂氛圍,這就要求教師設(shè)計的這些啟發(fā)性問題應(yīng)集趣味性、價值性、思維性于一體,貼近學(xué)生的生活實際,以激發(fā)學(xué)生探究的欲望;教師要把握好啟發(fā)的時機(jī),適時采用正問啟發(fā)、反問啟發(fā)、懸疑式啟發(fā)、類比式啟發(fā)等方式,在學(xué)生思考發(fā)生困難的關(guān)鍵點上,給出適當(dāng)?shù)狞c撥,引起學(xué)生的聯(lián)想。

      正如西安交通大學(xué)馮博琴教授所言,啟發(fā)式就是計算思維。計算思維不是內(nèi)容的改變,不是工具的改變,而只是教學(xué)方法、方式的改變。啟發(fā)式最能體現(xiàn)這種改變:引導(dǎo)學(xué)生思考,使之看到問題之外的問題、方法之外的方法、沒有聯(lián)系的聯(lián)系,這就是計算思維了[4]。

      2 通過VBA語言的基本語法讓學(xué)生感悟其蘊(yùn)含的計算思維

      抽象是計算思維的本質(zhì)之一,計算思維的抽象體現(xiàn)在完全使用符號系統(tǒng)甚至形式化語言來表述問題。VBA程序設(shè)計語言實際上就是一個符號系統(tǒng),要利用VBA編程解決實際問題,就必須利用其提供的符號系統(tǒng)對求解問題進(jìn)行精確而嚴(yán)格的描述,因此VBA程序的符號系統(tǒng)就是對客觀世界的一種抽象、一種表達(dá),更是對計算思維的一種很好的詮釋,換個角度說就是VBA程序設(shè)計語言在設(shè)計之時就早已蘊(yùn)含了計算思維。因此,教師在進(jìn)行語法教學(xué)時,不應(yīng)只是簡單地將VBA的基本概念及語法“空降”給學(xué)生,讓學(xué)生產(chǎn)生語法知識就是需要死記硬背的基礎(chǔ)知識這種印象,而應(yīng)通過類比的方法向?qū)W生揭示出語法背后所蘊(yùn)含的計算思維,讓看似機(jī)械、死板、枯燥的語法知識靈動起來,這樣不僅可以讓學(xué)生在理解的基礎(chǔ)上更容易記住語法,而且使學(xué)生的計算思維能力得到訓(xùn)練。

      例如,VBA中與面向?qū)ο笙嚓P(guān)的概念“對象、類、屬性、方法、事件、事件過程”及其相關(guān)語法都蘊(yùn)含了典型的計算思維特征。對象將反映事物的特征和行為封裝在一起,是對現(xiàn)實世界客觀事物的一種抽象;類是對同種對象的抽象描述,是創(chuàng)建對象的模版;屬性和方法用來描述對象本身的信息,屬性用來描述對象的特征,通過語法“對象名.屬性名=設(shè)置值”來改變對象的外觀特征;方法用來描述對象的動作和行為,通過語法“對象名.方法名 [參數(shù)名表]”來指使對象產(chǎn)生某個動作;事件和事件過程用來描述對象和外界環(huán)境之間的關(guān)系,事件用來描述外界環(huán)境給對象施加的影響,事件過程用來描述對象接收到某個事件后所做出的反應(yīng),通過語法“Private Sub 對象名_事件名([參數(shù)列表]) 事件過程的內(nèi)容 End Sub”來表征對象和外界環(huán)境的交互過程。

      3 將計算思維培養(yǎng)貫穿在用VBA編程求解問題的整個過程中

      教師在進(jìn)行VBA程序設(shè)計教學(xué)時,應(yīng)對傳統(tǒng)的經(jīng)典教學(xué)案例進(jìn)行重組,將問題求解提升到計算思維的高度。計算思維中問題求解的一般步驟為:(1)問題抽象化的描述,問題表示,即如何建立模型;(2)尋找解決方案,問題求解,即如何設(shè)計算法;(3)計算機(jī)實現(xiàn)過程、效率,即如何有效地求解、編碼;(4)現(xiàn)實問題的延伸[5]。教師在這四個實施步驟中應(yīng)做到有的放矢,對學(xué)生進(jìn)行針對性的計算思維訓(xùn)練。

      3.1 加強(qiáng)學(xué)生建模能力的訓(xùn)練

      傳統(tǒng)的VBA程序設(shè)計教學(xué)以語法為中心,教學(xué)案例基于方便學(xué)生掌握語法知識之目的而設(shè)計,加之學(xué)時的限制,教師往往直接將程序代碼拋給學(xué)生,然后比照代碼講授涉及到的具體語法知識點,而忽略了對代碼實現(xiàn)的首要前導(dǎo)環(huán)節(jié)——問題建模過程的講解,或者設(shè)計的案例已足夠的簡單,就是一些簡單的數(shù)值計算問題,所謂的建模問題已自不必說。學(xué)生缺乏建模能力的訓(xùn)練,不知道如何將一個現(xiàn)實問題描述成計算機(jī)可以處理的問題,是學(xué)生不具備編寫程序解決實際問題能力的根本原因所在。

      計算思維的本質(zhì)是抽象和自動化。計算思維的抽象說到底就是一個問題表示問題,而自動化就是將這種抽象通過程序設(shè)計來實現(xiàn)。因此,運用計算思維求解問題時,首要解決的就是如何表示問題,即怎樣將問題轉(zhuǎn)換成一個合適的模型來表示,這樣就可能發(fā)現(xiàn)問題的本質(zhì)及其能否求解,甚至找出求解該問題的方法和算法。這樣的一個建模過程,更是涵蓋了編碼/解碼、約簡、遞歸、歸化、仿真、推理等多種思維過程和轉(zhuǎn)換模式,它是計算思維的一個重要組成部分。可以說,建模能力的強(qiáng)弱,直接影響了計算思維能力的高低[6],因而在VBA程序設(shè)計教學(xué)中對學(xué)生進(jìn)行建模能力的強(qiáng)化訓(xùn)練,幫助學(xué)生掌握一些基本的建模方法,是進(jìn)行計算思維能力培養(yǎng)的根本要求。

      3.2 倡導(dǎo)學(xué)生開展算法多樣化的探討與交流

      程序設(shè)計中的許多問題可以采用不同的算法來解決。教師可以采用一題多解或一題多問的方式引導(dǎo)學(xué)生從不同角度和不同層次思考,對同一問題去探求不同的解決途徑,并提供機(jī)會讓學(xué)生在課堂上進(jìn)行不同算法的交流,引導(dǎo)他們從時間和空間復(fù)雜性兩方面比較各自算法的優(yōu)劣,相互啟迪思維,共同學(xué)習(xí)提高。倡導(dǎo)算法的多樣化,尊重了學(xué)生不同的認(rèn)知方式,發(fā)揮了學(xué)生的主體作用,有利于學(xué)生之間的合作交流,訓(xùn)練了學(xué)生思維的靈活性和發(fā)散性,培養(yǎng)了學(xué)生的創(chuàng)新意識、探索精神和問題求解能力。

      由于VBA程序設(shè)計授課對象是文科專業(yè)大一的新生,他們對程序設(shè)計知識基本上是一無所知,因此教師在授課時,雖然不能引入算法較為復(fù)雜的問題讓學(xué)生進(jìn)行探究,但針對一些較為簡單的問題,同樣可以引導(dǎo)學(xué)生追求算法的多樣化。例如,對于交換兩個變量的值這樣的問題,除了通過引入中間變量完成交換的常規(guī)算法外,教師還可以引導(dǎo)學(xué)生探討不借助中間變量能否完成兩個變量值的交換;對于求一個任意兩位正整數(shù)十位和個位上數(shù)字這樣的問題,教師可以引導(dǎo)學(xué)生分別使用數(shù)值分離法(使用算術(shù)運算符或數(shù)值函數(shù)進(jìn)行數(shù)值運算)或字符分離法(借助字符串函數(shù))來進(jìn)行解決。

      3.3 引導(dǎo)學(xué)生進(jìn)行算法的優(yōu)化

      計算思維是一種在時間和空間之間、處理能力和存儲容量之間進(jìn)行權(quán)衡、折中處理的思維,是算法設(shè)計時普遍使用的思維方式。算法在編寫成可執(zhí)行程序后,要進(jìn)行時間復(fù)雜度和空間復(fù)雜度的分析,在時間和空間效率之間尋找折中點,力求使用更小的代價來解決實際問題。

      教師在講授VBA程序設(shè)計時可以引導(dǎo)學(xué)生對編寫好的程序進(jìn)行簡化和優(yōu)化,看能否通過減少算法中的運算次數(shù),或減少算法在運行中的存儲開銷,即通過減少算法的時間和空間復(fù)雜度來對算法進(jìn)行優(yōu)化,從而提高程序的運行效率[7]。例如,要求學(xué)生編程求解100~200之間的全部素數(shù),這個問題需要使用雙層循環(huán)來解決。外層For循環(huán)用來提供需要判斷的數(shù)據(jù)范圍,學(xué)生一般會寫成“For i = 100 To 200 Step 1”的形式,由于在100~200之間偶數(shù)不可能是素數(shù),因此可以引導(dǎo)學(xué)生對外層循環(huán)進(jìn)行優(yōu)化,改寫成“For i = 101 To 199 Step 2”的形式,從而減少了外層循環(huán)的次數(shù);內(nèi)層For循環(huán)用來具體判斷某個數(shù)是否是素數(shù),學(xué)生一般會寫成“For j = 2 To i - 1 Step 1”的形式,實際上判斷某個數(shù)m是否是素數(shù)只需要看其能否被2~[m](取其整數(shù))之間的數(shù)整除即可,因此可以引導(dǎo)學(xué)生對內(nèi)層循環(huán)進(jìn)行優(yōu)化,改寫成“For j = 2 To Int(Sqr(i)) Step 1”的形式,從而減少了內(nèi)層循環(huán)的次數(shù)。通過前面的處理,就提高了該算法的時間效率。

      3.4 培養(yǎng)學(xué)生模塊化程序設(shè)計的習(xí)慣

      計算思維強(qiáng)調(diào)采用抽象和分解來控制龐雜的任務(wù)或進(jìn)行較大復(fù)雜系統(tǒng)的設(shè)計,這和模塊化程序設(shè)計的基本思想是一致的。模塊化程序設(shè)計采用自頂向下、逐步細(xì)化的方法對復(fù)雜系統(tǒng)按功能分解成相對簡單、功能獨立的多個層次的多個子模塊來實現(xiàn),下層模塊為上層模塊提供服務(wù)或完成某些功能,各層模塊之間隱藏實現(xiàn)細(xì)節(jié)、通過定義好的接口進(jìn)行交互,這種做法降低了程序的復(fù)雜性,使程序設(shè)計、調(diào)試和維護(hù)等操作易于實現(xiàn)且簡單化,同時也提高了模塊的復(fù)用性[7]。

      要讓學(xué)生養(yǎng)成模塊化程序設(shè)計的習(xí)慣,教師可以調(diào)整VBA程序教學(xué)內(nèi)容的順序,遵循先入為主的思想,讓學(xué)生在剛開始編寫程序時就接受模塊化程序設(shè)計思想的熏陶,形成模塊化程序設(shè)計的思維習(xí)慣,這比等到學(xué)生已經(jīng)習(xí)慣將程序的所有功能寫到一個VBA過程(事件過程、函數(shù)過程、Sub子過程)中再行引入效果要好得多。針對VBA學(xué)習(xí)對象的特點,教師可以選擇一些相對簡單的教學(xué)案例讓學(xué)生體會模塊化程序設(shè)計的思想及其好處。例如,讓學(xué)生編程求解“5!+10!”,學(xué)生會發(fā)現(xiàn)求5!和10!的語句基本都是一樣的,唯一不同的就是For循環(huán)的終值不同,完全沒有必要把這些相同的語句重復(fù)寫多次,如果將求階乘的語句編寫在一個Function過程中,然后再調(diào)用它兩次分別求5!和10!,就可以使程序變得簡練且易于維護(hù),并且通過調(diào)用這個Function過程還可以求解任意一個正整數(shù)的階乘,提高了代碼的復(fù)用性。再如,要求學(xué)生為班級編寫一個成績管理的應(yīng)用程序,程序具有輸入成績、計算平均分、找出最高分、找出最低分、輸出成績等功能,教師可引導(dǎo)學(xué)生將應(yīng)用程序分解為不同的模塊,包括輸入模塊、平均分模塊、最高分模塊、最低分模塊、輸出模塊,然后在VBA中通過編寫不同的Function過程或Sub子過程實現(xiàn)每個模塊的功能,在編程過程中對每個模塊分別調(diào)試最后總調(diào),能夠讓學(xué)生切身體驗到模塊化程序設(shè)計所帶來的好處。

      4 結(jié)束語

      實踐證明,在進(jìn)行以培養(yǎng)學(xué)生計算思維能力為目標(biāo)的Access VBA程序設(shè)計教學(xué)中,采用上述舉措是切實有效的,取得了良好的教學(xué)效果。與采用傳統(tǒng)教學(xué)方式學(xué)習(xí)VBA程序設(shè)計的往屆學(xué)生相比,采用新的教學(xué)方式學(xué)習(xí)的學(xué)生學(xué)習(xí)興趣更高,學(xué)習(xí)的積極性和參與教學(xué)的主動性更強(qiáng),在課堂教學(xué)中思維更為活躍,問題求解的思路更為寬泛,不但很好地掌握了VBA程序設(shè)計的語法知識,而且運用計算思維進(jìn)行問題求解的能力也得到了很大的提高。

      參考文獻(xiàn):

      [1] 周以真. 計算思維[J]. 中國計算機(jī)學(xué)會通訊,2007,3(11):77-79.

      [2] 王榮良. 計算思維教育[M]. 上海:上??萍冀逃霭嫔?, 2014.

      [3] 王文旭. 啟發(fā)式教學(xué)在《VB程序設(shè)計》課程中的應(yīng)用[J]. 信息與電腦, 2013(4):225-226.

      [4] 馮博琴. 對于計算思維能力培養(yǎng)“落地”問題的探討[J]. 中國大學(xué)教學(xué), 2012(9): 6-9.

      [5] 龔沛曾,楊志強(qiáng). 大學(xué)計算機(jī)基礎(chǔ)教學(xué)中的計算思維培養(yǎng)[J]. 中國大學(xué)教學(xué), 2012(5):51-54.

      [6] 劉遠(yuǎn)軍,黃同成,謝兵,牛莉. 程序設(shè)計課程教學(xué)中計算思維能力的培養(yǎng)[J]. 計算機(jī)教育, 2014(3):75-78.

      [7] 張會,羅南超. 計算思維在程序設(shè)計教學(xué)中的培養(yǎng)[J]. 阿壩師范高等??茖W(xué)校學(xué)報, 2013,30(3):97-99.

      猜你喜歡
      計算思維
      基于計算思維的軟件類研究生高級算法課程教學(xué)研究
      基于計算思維程序設(shè)計的軍事案例研究
      程序設(shè)計課程中計算思維和應(yīng)用能力培養(yǎng)問題研究
      民族高校C語言程序設(shè)計課程教學(xué)改革的研究
      軟件工程(2016年8期)2016-10-25 16:03:32
      算法的案例教學(xué)探析
      淺談藝術(shù)專業(yè)學(xué)生計算思維能力的培養(yǎng)
      松江区| 民权县| 巴彦淖尔市| 克什克腾旗| 东源县| 福州市| 清镇市| 城固县| 顺昌县| 蒙自县| 曲松县| 乐东| 包头市| 米泉市| 山阳县| 新河县| 太原市| 中西区| 莱芜市| 正阳县| 东安县| 瑞丽市| 余庆县| 蚌埠市| 南陵县| 尉犁县| 鸡泽县| 海兴县| 长海县| 手游| 龙井市| 宁武县| 英吉沙县| 宁安市| 承德县| 惠水县| 正蓝旗| 汝阳县| 闵行区| 盱眙县| 东丽区|