劉海玲
摘要:人類千百年來都在尋求解決同類問題的最優(yōu)方法,以期達(dá)到最佳效果。而“算法”簡單地說就是解決問題的一般方法及步驟。算法思維強(qiáng)調(diào)思維的條理化、邏輯化和程序化,注重解決問題的一般性,更講究能解決相似的一類問題。計(jì)算機(jī)的問世為人類探索自然添加了重要工具,對(duì)人類研究問題的能力和研究問題的方法產(chǎn)生較大的影響?!八惴ā笔怯?jì)算機(jī)領(lǐng)域的重要基石,它在科學(xué)技術(shù)和社會(huì)發(fā)展中起著越來越重要的作用,算法思維是計(jì)算思維的重要組成部分,尤其在信息爆炸時(shí)代顯得更為重要。算法對(duì)于孩子思維訓(xùn)練意義重大,筆者結(jié)合自身教學(xué)實(shí)踐作如下分享。
關(guān)鍵詞:信息技術(shù);課堂教學(xué);學(xué)生;算法思維
算法是數(shù)學(xué)學(xué)科必修課程的學(xué)習(xí)內(nèi)容,而作為計(jì)算機(jī)領(lǐng)域的基石,“算法與程序設(shè)計(jì)”只是信息技術(shù)課程選修模塊。教學(xué)內(nèi)容雖蘊(yùn)涵了算法思維,但還是以程序設(shè)計(jì)內(nèi)容為主。目前,信息技術(shù)學(xué)科課程體系和內(nèi)容結(jié)構(gòu)從小學(xué)到高中都缺乏對(duì)算法思維培養(yǎng)的重視。因此,如何從培養(yǎng)算法思維出發(fā),結(jié)合學(xué)校實(shí)際活用教材,如何從解決實(shí)際問題出發(fā),尋求解決問題的一般方法,如何讓課堂充滿思考,走出“技術(shù)應(yīng)用”的泥潭,如何以培養(yǎng)算法思維為主線貫穿整個(gè)課程,塑造學(xué)科的靈魂,這些是每位信息技術(shù)教師都需要思考的問題。筆者從以下四個(gè)方面對(duì)此闡述一些個(gè)人體會(huì)。
一、從軟件技術(shù)應(yīng)用中,挖掘算法題材
計(jì)算機(jī)的發(fā)明,是為了讓人們從繁重的重復(fù)勞動(dòng)中解放出來。Windows視窗操作系統(tǒng)直觀、易于操作,為用戶快速學(xué)會(huì)計(jì)算機(jī)提供了方便。但當(dāng)要處理的信息越來越多的時(shí)候,視窗操作的局限性則異常明顯。例如,在“應(yīng)用軟件的設(shè)置”中,用戶通過窗口進(jìn)行操作,必須頻繁點(diǎn)擊“單選”“復(fù)選”等按鈕。但如果有一臺(tái)Windows服務(wù)器的IIS上有一千個(gè)網(wǎng)站,要統(tǒng)一修改所有網(wǎng)站的某些參數(shù),那么通過窗口的可視化方式操作,將要重復(fù)點(diǎn)擊幾千次鼠標(biāo)。這將是一項(xiàng)可怕的簡單機(jī)械重復(fù)勞動(dòng)。而此類操作可以通過修改文本配置的方式來解決,還不容易出錯(cuò)。UNIX操作系統(tǒng)通常以文本形式保存軟件配置,自帶VI等文本編輯軟件,功能豐富,并能使用正則表達(dá)式查找替換,深受程序員的喜愛。
因此,在學(xué)習(xí)Word時(shí),教師可以挖掘教材里的“查找”“替換”功能作為培養(yǎng)算法思維的教學(xué)內(nèi)容。例如,在一篇文章中把所有“我”改為“他”,把“我們”改為“你們”。先讓學(xué)生明白,如果先操作“我”替換為“他”,則文章中的“我們”會(huì)先被替換成“他們”。當(dāng)要替換“我們”為“你們”的時(shí)候,將查找不到要替換的對(duì)象。進(jìn)而可延伸拓展讓學(xué)生思考有沒有辦法把文章中出現(xiàn)的數(shù)字一次性刪除?簡單的例子不僅能讓學(xué)生體驗(yàn)合理選擇操作步驟的重要性,還為日后學(xué)習(xí)正則表達(dá)式奠定了基礎(chǔ)。
又如,在PowerPoint教學(xué)時(shí),學(xué)生如果單純學(xué)習(xí)簡單的技術(shù)應(yīng)用,必將索然無味,因?yàn)閺男W(xué)到初中乃至高中學(xué)的內(nèi)容都相差無幾。因此,教師可以從培養(yǎng)算法思維出發(fā),當(dāng)教學(xué)母版與模板時(shí),可將“母版—模板—幻燈片”三者比作是一脈相承的繼承與遺傳關(guān)系。學(xué)生只有弄清概念的本質(zhì),才能更快、更好地批量制作有特色的幻燈片。
二、從解決實(shí)際問題中,培養(yǎng)算法意識(shí)
算法思維注重解決問題的一般性,講究解決相似的一類問題。在“信息獲取”這一章,很多教師上課時(shí)都會(huì)直奔搜索引擎、關(guān)鍵詞、下載技巧等主要知識(shí)點(diǎn),這樣容易導(dǎo)致學(xué)生盲目地進(jìn)行搜索,或者按部就班地應(yīng)付了事。而信息時(shí)代面對(duì)海量的信息,具備一定的信息素養(yǎng),掌握獲取信息的一般方法顯得尤為重要。因此,本章的學(xué)習(xí)重點(diǎn)應(yīng)該建立在解決實(shí)際問題的基礎(chǔ)上,讓學(xué)生明確信息需求與來源,并驗(yàn)證信息來源的可靠性,幫助學(xué)生建立一套信息獲取的一般方法,這樣有助于他們培養(yǎng)良好的搜索習(xí)慣,快速準(zhǔn)確地查找到有用的信息。
教學(xué)時(shí),教師如果能創(chuàng)設(shè)真實(shí)情境,讓學(xué)生從現(xiàn)實(shí)中迫切需要解決的問題出發(fā),不但能激發(fā)學(xué)生的學(xué)習(xí)興趣,還能加深其對(duì)知識(shí)點(diǎn)的理解。例如,可以創(chuàng)設(shè)如“假如你在某旅行社工作,接到某單位準(zhǔn)備國慶組團(tuán)去北京旅游的電話,需要你提供旅行路線及報(bào)價(jià)以供參考”,這時(shí)學(xué)生會(huì)把自己的角色轉(zhuǎn)換為旅行社員工,并著手制定方案。而教師應(yīng)提醒學(xué)生,在旅行社工作可能每天都會(huì)接到幾十個(gè)類似的電話,應(yīng)總結(jié)出一套方法才能提高效率。通過這樣的方式幫助學(xué)生逐漸建立“確定信息需求—確定信息來源—選擇方法獲取信息—評(píng)價(jià)信息”的一套獲取信息的一般方法。
三、從程序設(shè)計(jì)與測(cè)試中,體驗(yàn)算法價(jià)值
在“算法與程序設(shè)計(jì)”模塊學(xué)習(xí)過程中,教師不能把算法單純地變成程序語言的學(xué)習(xí)和程序設(shè)計(jì)的學(xué)習(xí),而要讓學(xué)生體會(huì)算法的思想,理解算法的重要性與有效性,加強(qiáng)邏輯思維的條理性。教師在采用“農(nóng)夫過河”“猴子吃桃”“雞兔同籠”等經(jīng)典故事激趣引入時(shí),應(yīng)通過簡明的例子從不同算法、不同測(cè)試數(shù)據(jù)的對(duì)比中直觀感受算法的執(zhí)行效率,讓學(xué)生親歷解決一類問題應(yīng)采用合理算法的必要性。
例如,“幾個(gè)簡單連續(xù)自然數(shù)的求和”采用直接相加就可以很快解決,但要解決一類連續(xù)自然數(shù)求和的問題,則可以采用“S:=S+I”的程序算法。
又如,在數(shù)據(jù)庫學(xué)習(xí)中,學(xué)生對(duì)索引字段的重要性認(rèn)識(shí)模糊。教師可以新建一個(gè)有幾萬條記錄的表,并對(duì)同一字段進(jìn)行索引前、后查詢時(shí)間的對(duì)比,讓學(xué)生感受索引字段的作用,真正懂得算法就是“速度”,就是“效率”,這有助于學(xué)生日后學(xué)習(xí)“哈希(Hash)”等算法。
四、同數(shù)學(xué)模型類比中,提升算法思維
數(shù)學(xué)中的函數(shù)和方程也是人們?yōu)榻鉀Q一類問題所建立的模型與方法。在信息技術(shù)課堂中如能合理發(fā)掘相應(yīng)的題材與數(shù)學(xué)模型類比,或者通過教學(xué)設(shè)計(jì)的小小改變,使學(xué)生在掌握信息技術(shù)的同時(shí),加深對(duì)數(shù)學(xué)模型的理解與建構(gòu),將給學(xué)生帶來思維的碰撞和智慧的啟迪。
例如,在“信息的編程加工”中提到了算法的概念,很多教師直接拋出算法的概念,學(xué)生在沒有任何知識(shí)建構(gòu)的情況下,即便是簡單的一個(gè)概念也可能難以理解。因此,教師可以從數(shù)學(xué)中解一元二次方程的例子引入,讓學(xué)生思考為什么要解方程,解方程有什么好處等;在講授“數(shù)據(jù)庫實(shí)體之間的關(guān)系”時(shí),一對(duì)一的關(guān)系就是數(shù)學(xué)中的映射,可用函數(shù)來表示幫助學(xué)生建構(gòu)知識(shí)。
總之,算法思維是計(jì)算思維的核心,學(xué)生算法思維的形成需要教師在教學(xué)過程中潛移默化的影響。因此,如何充分挖掘合適的教學(xué)內(nèi)容,設(shè)計(jì)合理的教學(xué)方法,從重視計(jì)算機(jī)技術(shù)應(yīng)用轉(zhuǎn)移到重視算法思維的培養(yǎng),是值得每位信息技術(shù)教師研究的課題。
參與文獻(xiàn):
[1] 孫義欣,馮娜窮舉法在程序設(shè)計(jì)中的應(yīng)用[J].計(jì)算機(jī)時(shí)代,2012(8):51-53
[2] 王梅亮.三維可視化算法教學(xué)在程序設(shè)計(jì)課程中的應(yīng)用研究[J].電腦知識(shí)與技術(shù),2014,(14):3355-3357.