嚴(yán)樹 周雪瑩 嚴(yán)函
【摘 要】本文論述中學(xué)信息技術(shù)課程中程序設(shè)計(jì)課型的教學(xué)策略,針對(duì)學(xué)生在學(xué)習(xí)算法與程序設(shè)計(jì)課時(shí)欠缺符號(hào)和概念的理解能力、欠缺將復(fù)雜問(wèn)題分解的能力、閱讀程序代碼能力差和缺乏調(diào)試修改程序代碼的能力等問(wèn)題,提出形象直觀引入概念、垂直分解問(wèn)題、掌握程序閱讀技巧、用錯(cuò)糾錯(cuò)學(xué)會(huì)調(diào)試等適用于算法與程序設(shè)計(jì)的教學(xué)策略。
【關(guān)鍵詞】中學(xué)信息技術(shù)課程 程序設(shè)計(jì) 教學(xué)策略 算法 ?邏輯思維
【中圖分類號(hào)】G ?【文獻(xiàn)標(biāo)識(shí)碼】A
【文章編號(hào)】0450-9889(2019)08B-0151-03
信息時(shí)代,信息技術(shù)成為學(xué)科與學(xué)科之間的橋梁,尤其是算法與程序設(shè)計(jì)這一部分的內(nèi)容,可以最大化地訓(xùn)練學(xué)習(xí)者的邏輯思維能力,如果學(xué)生能很好地掌握,那么就能更好地輔助其他重點(diǎn)學(xué)科尤其是數(shù)理化的學(xué)習(xí)。近年來(lái),廣東、四川、福建、北京、湖南、浙江等地都將算法與程序設(shè)計(jì)納入高中會(huì)考內(nèi)容,由此可知其越來(lái)越占據(jù)著重要地位。中學(xué)信息技術(shù)課堂中算法與程序設(shè)計(jì)這一模塊內(nèi)容主要集中在高中階段,其內(nèi)容難度大且比較枯燥。因此,研究如何在算法與程序設(shè)計(jì)這一模塊的教學(xué)中采用好的教學(xué)策略有著重要的意義。
一、算法與程序設(shè)計(jì)教學(xué)中存在的問(wèn)題
(一)欠缺符號(hào)和概念的理解能力。在信息技術(shù)學(xué)科里,抽象對(duì)象或者說(shuō)抽象符號(hào)占據(jù)了絕大部分,抽象對(duì)象一般只存在于意識(shí)之中,對(duì)意識(shí)中的對(duì)象進(jìn)行運(yùn)用,需要有一定的中介,各種符號(hào)系統(tǒng)就充當(dāng)了思維媒介的角色。在信息技術(shù)科學(xué)或者數(shù)學(xué)中,想要表示某一具體算法或程序時(shí),就需要借助符號(hào)或概念來(lái)表示。算法在本質(zhì)上蘊(yùn)含著一種符號(hào)化抽象思維的特質(zhì),因此算法與程序設(shè)計(jì)的符號(hào)有些與數(shù)學(xué)上的符號(hào)表示是相同的,但是所蘊(yùn)含的含義卻是大相徑庭。例如,變量的賦值號(hào)意義與數(shù)學(xué)等號(hào)含義在表現(xiàn)形式上是一樣的,但是意義卻是不一樣的,如果理解不清楚,往往容易出現(xiàn)知識(shí)的負(fù)遷移。一般負(fù)遷移的產(chǎn)生常在兩種學(xué)習(xí)相似又需要差別對(duì)待的情境下,但是符號(hào)抽象概念的理解能力欠缺的學(xué)生,往往就會(huì)在相近的兩種知識(shí)中產(chǎn)生混淆,因而對(duì)學(xué)習(xí)產(chǎn)生了阻礙作用。
(二)欠缺將復(fù)雜問(wèn)題分解的能力。分解問(wèn)題能力是算法與程序設(shè)計(jì)的一種重要的邏輯思維能力,學(xué)生在處理一些問(wèn)題時(shí),如果問(wèn)題太難太復(fù)雜,要想他們一下子就能想出問(wèn)題的解決策略,比較難做到,而且還會(huì)打擊學(xué)生學(xué)習(xí)的積極性。這時(shí)候就要把復(fù)雜整體問(wèn)題分解成多個(gè)子問(wèn)題。算法與程序設(shè)計(jì)中,學(xué)生遇到的問(wèn)題經(jīng)常是難度大而且復(fù)雜的,需要很強(qiáng)的邏輯思維能力。因此,如何在教學(xué)中培養(yǎng)學(xué)生分解問(wèn)題和培養(yǎng)學(xué)生解決問(wèn)題的邏輯思維能力成了當(dāng)務(wù)之急。
(三)程序語(yǔ)言與日常使用的語(yǔ)言存在差異。程序語(yǔ)言是計(jì)算機(jī)能夠識(shí)別并執(zhí)行程序的語(yǔ)言,本身就具有抽象性。要將自然語(yǔ)言的描述轉(zhuǎn)換為嚴(yán)謹(jǐn)?shù)某绦颍@是學(xué)生最難跨越的地方。根據(jù)調(diào)查和上課的反饋發(fā)現(xiàn),有學(xué)生不知道該如何將自己的想法轉(zhuǎn)換為代碼。例如有的學(xué)生一到自己編寫代碼時(shí),總是問(wèn)老師有沒有這樣的例題或者程序模板,還有的學(xué)生會(huì)做題但就是不知道怎么寫代碼。
(四)缺乏調(diào)試修改程序的能力。程序調(diào)試時(shí)主要存在以下問(wèn)題:
1.編輯錯(cuò)誤。所謂編輯錯(cuò)誤,就是在代碼窗口輸入程序代碼時(shí),編程環(huán)境會(huì)自行檢查語(yǔ)法,當(dāng)沒有輸入一句完整的代碼或者所輸入的關(guān)鍵詞有誤時(shí),編程環(huán)境都會(huì)自動(dòng)跳出一個(gè)錯(cuò)誤提示窗口,提示學(xué)生修改所出現(xiàn)的錯(cuò)誤。
2.編譯錯(cuò)誤。在寫好程序時(shí),都會(huì)先進(jìn)行編譯,當(dāng)學(xué)生點(diǎn)擊“啟動(dòng)”按鈕運(yùn)行程序時(shí),編寫好的代碼被進(jìn)行編譯,此時(shí)出現(xiàn)的錯(cuò)誤就稱之為編譯錯(cuò)誤。當(dāng)學(xué)生沒有嚴(yán)格遵循編程的語(yǔ)法和規(guī)則時(shí),就會(huì)出現(xiàn)編譯錯(cuò)誤。
3.運(yùn)行錯(cuò)誤。當(dāng)編寫好的代碼正在運(yùn)行且被編程環(huán)境檢測(cè)期間,一個(gè)語(yǔ)句試圖執(zhí)行一個(gè)原本就不能執(zhí)行的操作時(shí),運(yùn)行錯(cuò)誤就會(huì)呈現(xiàn)。這種錯(cuò)誤從代碼表面上是無(wú)法識(shí)別出的,只有當(dāng)學(xué)生運(yùn)行程序時(shí)才能夠檢測(cè)到。這類錯(cuò)誤,學(xué)生比較難發(fā)現(xiàn)。
4.邏輯錯(cuò)誤。學(xué)生編寫好代碼,能運(yùn)行并輸出結(jié)果,但是所產(chǎn)生的結(jié)果與預(yù)期的不一樣,這時(shí)候就是程序邏輯出現(xiàn)錯(cuò)誤了。對(duì)于邏輯上的錯(cuò)誤,編程環(huán)境是無(wú)法檢測(cè)出來(lái)的,因此也沒有提示信息,只能通過(guò)學(xué)生認(rèn)真分析檢查程序并進(jìn)行調(diào)試修改,這對(duì)學(xué)生來(lái)說(shuō)難度最大。
二、解決學(xué)生學(xué)習(xí)中難點(diǎn)的教學(xué)策略
(一)形象直觀引入概念。形象直觀地引入概念,即是將所提出的問(wèn)題與學(xué)生所熟悉的生活案例進(jìn)行形象生動(dòng)的類比,引入概念;或者運(yùn)用直觀教具、視頻、圖片、PPT 展示及手動(dòng)操作等,加深學(xué)生對(duì)概念的形象認(rèn)識(shí),將所學(xué)概念的本質(zhì)理解得更為透徹。
例如在變量講解的教學(xué)過(guò)程中,教師可以具體形象地聯(lián)系實(shí)際進(jìn)行教學(xué),讓學(xué)生先對(duì)知識(shí)進(jìn)行感性認(rèn)識(shí),做到形象直觀教學(xué),重視揭示新知識(shí)的本質(zhì)特征,加強(qiáng)學(xué)生對(duì)新知識(shí)的感性認(rèn)知,克服知識(shí)負(fù)向遷移的影響,然后才能夠在自己的大腦里形成經(jīng)驗(yàn)和知識(shí)。
變量是某個(gè)空間的標(biāo)識(shí)符,是代表某個(gè)空間的名稱,在程序執(zhí)行過(guò)程中,變量的值總是在變化,是新值代替舊值的過(guò)程。在程序設(shè)計(jì)過(guò)程中就需要這樣的臨時(shí)空間來(lái)存放中間結(jié)果和最終運(yùn)算結(jié)果,而且變量是程序運(yùn)行的一個(gè)動(dòng)態(tài)的、可變的管理過(guò)程,不能夠只是停留在表面語(yǔ)句解釋上。但是臨時(shí)空間這個(gè)概念,是看不見摸不著的,是抽象的,只有靠學(xué)生自己去想象,才能理解。顯然,如果老師對(duì)變量的解釋就是這樣一句話帶過(guò)的話,缺乏抽象思維的學(xué)生就不能理解。我們可舉電腦室的管理方式這樣一個(gè)例子。首先,先讓學(xué)生明白變量就是某個(gè)空間位置的標(biāo)識(shí)符,在日常管理中用標(biāo)識(shí)符來(lái)表示空間位置的管理方法是經(jīng)常用到的,給學(xué)生看表1這樣的表格。
學(xué)生看到這個(gè)表格就會(huì)知道這是三年來(lái)機(jī)房的使用情況,使用時(shí),將某個(gè)空間用 303 號(hào)和 304 號(hào)分別表示某個(gè)空間位置,而學(xué)生是隨著時(shí)間的推移是在變化著的,同一個(gè)機(jī)房,因?yàn)槟甓炔灰粯?,使用的學(xué)生也不一樣,新一個(gè)班的學(xué)生進(jìn)來(lái),老的班級(jí)學(xué)生就要出去了,這是一個(gè)動(dòng)態(tài)的管理過(guò)程。
通過(guò)這樣進(jìn)行比較形象化知識(shí),將知識(shí)形象化來(lái)揭示其本質(zhì)特征,克服知識(shí)負(fù)遷移對(duì)思維的阻礙作用,學(xué)生能順利地對(duì)新知識(shí)進(jìn)行辨別和記憶以及運(yùn)用,理解賦值過(guò)程是一個(gè)動(dòng)態(tài)的過(guò)程,而賦值號(hào)也不是等號(hào)的概念。因此在教學(xué)中尤其是抽象難理解的新概念新知識(shí),教師一定要想方設(shè)法將知識(shí)形象化和具體化,聯(lián)系實(shí)際生活,直觀教學(xué),攻破難點(diǎn)。
(二)垂直分解問(wèn)題,培養(yǎng)編寫程序的邏輯思維能力。垂直分解就是把一個(gè)學(xué)生認(rèn)為難以解決的復(fù)雜問(wèn)題,分解成一連串上下聯(lián)系緊密的問(wèn)題。一般下一個(gè)問(wèn)題的條件要從上一個(gè)問(wèn)題的結(jié)果中尋找。因此,下一個(gè)問(wèn)題能否解決取決于上一個(gè)問(wèn)題解決的程度。垂直分解的關(guān)鍵點(diǎn)在于準(zhǔn)確找到將問(wèn)題分解的“連接點(diǎn)”,而分解問(wèn)題的連接點(diǎn)尋找,一般是依于靠個(gè)人觀察題目、聯(lián)想、經(jīng)驗(yàn)、比較、總結(jié)得出。將復(fù)雜問(wèn)題通過(guò)垂直分解成若干個(gè)小問(wèn)題,從而降低問(wèn)題解決的難度,有利于問(wèn)題的解決。
例如,在“循環(huán)結(jié)構(gòu)”的學(xué)習(xí)過(guò)程中,首先提出一個(gè)問(wèn)題,讓學(xué)生用循環(huán)結(jié)構(gòu)畫出 200 個(gè)同心圓。這樣一個(gè)復(fù)雜的問(wèn)題一提出,學(xué)生就會(huì)覺得過(guò)程很復(fù)雜,不知道該從哪兒下手。此時(shí),教師可以先讓學(xué)生寫出畫一個(gè)圓的程序,那么學(xué)生就會(huì)知道用 Circle 函數(shù)繪制一個(gè)圓,教師再呈現(xiàn)程序,學(xué)生可以猜出程序的各個(gè)參數(shù)的含義。學(xué)生通過(guò)改程序的參數(shù),可以在不同的位置畫出半徑大小不一樣的圓。接著,教師再讓學(xué)生畫5個(gè)同心圓,學(xué)生就會(huì)想到重復(fù)編寫五次畫圓的程序。此時(shí),教師給出的后一個(gè)問(wèn)題和前一個(gè)問(wèn)題就通過(guò)了相類似程序代碼這一“連接點(diǎn)”連接起來(lái)。教師再對(duì)后一個(gè)問(wèn)題進(jìn)行提示、點(diǎn)撥,告訴學(xué)生凡是需要重復(fù)性的工作,計(jì)算機(jī)都會(huì)有自己的方法,也就是使用循環(huán)結(jié)構(gòu)。接著跟學(xué)生展示使用循環(huán)結(jié)構(gòu)畫五個(gè)同心圓的程序代碼,學(xué)生觀察代碼,教師再向?qū)W生展示使用循環(huán)結(jié)構(gòu)畫 10個(gè)同心圓的代碼。學(xué)生分析教師給的代碼,能夠立刻領(lǐng)悟。
將比較難以理解的問(wèn)題分割成為前后關(guān)聯(lián)的小問(wèn)題,問(wèn)題之間的設(shè)計(jì)具有層次性和系統(tǒng)性,從簡(jiǎn)單到復(fù)雜。學(xué)生在解決這些問(wèn)題的過(guò)程中,教師慢慢幫助學(xué)生層層推進(jìn),引導(dǎo)學(xué)生由基礎(chǔ)、簡(jiǎn)單的問(wèn)題不斷思考,建構(gòu)出相應(yīng)的模型。在不斷使用同一種問(wèn)題解決思路解決問(wèn)題的過(guò)程中,學(xué)生的能力將呈螺旋式上升,有助于鍛煉邏輯思維。以后再遇到復(fù)雜的問(wèn)題時(shí),學(xué)生就可以有序地、符合思維邏輯地解決,不至于束手無(wú)措。
(三)讓學(xué)生多閱讀程序,熟悉程序語(yǔ)言。既然計(jì)算機(jī)程序是一門語(yǔ)言,那么它就有語(yǔ)言的共性。學(xué)生在編寫代碼時(shí),也知道代碼的基本語(yǔ)句,但是卻無(wú)法獨(dú)立地編寫出代碼。教師在教學(xué)中,首先,可以培養(yǎng)學(xué)生閱讀程序的能力,讓學(xué)生多觀察一些程序代碼,并要求學(xué)生給每一句代碼都注釋,不知道意思的可以自行查閱。一些專有的循環(huán)體和結(jié)構(gòu)可以摘抄一下,觀察多了,自然就會(huì)形成一種條件反射,先寫什么后寫什么,學(xué)生腦子里就會(huì)有一個(gè)明確的思路。
其次,教師要求學(xué)生在自己寫代碼時(shí),一定要言之有據(jù),每寫一句代碼,自己都要能解釋出來(lái)該句話的意思。程序代碼的編寫其實(shí)是一門藝術(shù),如果學(xué)生養(yǎng)成良好的編寫習(xí)慣,不僅能讓自己對(duì)新問(wèn)題自動(dòng)生成一種解決思路,還能使代碼邏輯更加嚴(yán)謹(jǐn),修改更容易、更好理解。這樣堅(jiān)持一段時(shí)間,學(xué)生基本能克服程序語(yǔ)言表達(dá)的障礙。
(四)用錯(cuò)糾錯(cuò),學(xué)會(huì)調(diào)試。當(dāng)學(xué)生在向教師請(qǐng)教程序調(diào)試問(wèn)題時(shí),教師可以先觀察這些錯(cuò)誤,若是很簡(jiǎn)單很明顯的錯(cuò)誤,比如字母打錯(cuò),或者中英文符號(hào)切換用錯(cuò),那么教師可以讓同桌之間互相檢查。若是學(xué)生自己或相互討論找出了原因,他們不僅覺得很有成就感,而且對(duì)這一程序會(huì)有新的認(rèn)識(shí),今后編寫代碼也不容易犯相同的錯(cuò)誤。
同時(shí),學(xué)生若是提問(wèn)比較難發(fā)現(xiàn)而又是很典型的問(wèn)題,教師可以用錯(cuò)糾錯(cuò),引導(dǎo)學(xué)生自己去發(fā)現(xiàn)錯(cuò)誤。如何用錯(cuò)糾錯(cuò)呢?在教學(xué)時(shí),教師要做到以下三點(diǎn):第一,巧妙設(shè)置“錯(cuò)誤”,因勢(shì)利導(dǎo)。根據(jù)以往的教學(xué)經(jīng)驗(yàn),教師知道學(xué)生在編程時(shí)哪個(gè)地方容易出現(xiàn)錯(cuò)誤,那么就可以將這個(gè)錯(cuò)誤拋給學(xué)生,學(xué)生發(fā)現(xiàn)這個(gè)問(wèn)題與自己的想法沖突時(shí),就會(huì)想知道問(wèn)題出現(xiàn)在哪,增強(qiáng)學(xué)生的求知欲望。第二,典型錯(cuò)誤,集體糾正,比如循環(huán)語(yǔ)句用成了選擇語(yǔ)句或者屬性設(shè)置錯(cuò)誤,這些都是典型錯(cuò)誤,可以集體糾正。那么不管是犯錯(cuò)的學(xué)生還是糾錯(cuò)的學(xué)生,在以后的編寫程序中都會(huì)多留一個(gè)心眼,考慮問(wèn)題也會(huì)更加全面。第三,正誤對(duì)比,促進(jìn)轉(zhuǎn)化。在教學(xué)中,教師在糾正學(xué)生的錯(cuò)誤時(shí),一定要將正確的程序和錯(cuò)誤的程序都執(zhí)行一遍給學(xué)生看,然后將學(xué)生錯(cuò)誤的代碼進(jìn)行分析,修改后執(zhí)行一下,讓學(xué)生對(duì)比修改前和修改后的程序,學(xué)生自己就能發(fā)現(xiàn)問(wèn)題在哪兒,進(jìn)一步修改自己的代碼。學(xué)生發(fā)現(xiàn)自己寫的代碼在哪一點(diǎn)錯(cuò)了,會(huì)比教師指出來(lái)還要記憶深刻。
中學(xué)信息技術(shù)課程中程序設(shè)計(jì)教學(xué)法研究任重道遠(yuǎn),算法與程序設(shè)計(jì)的教學(xué)策略更要不斷改變、不斷創(chuàng)新,以學(xué)生為主,不斷研究、不斷嘗試,找到適合學(xué)生個(gè)體差異和符合算法與程序設(shè)計(jì)內(nèi)容的教學(xué)策略,讓學(xué)生愛上學(xué)習(xí)。
【參考文獻(xiàn)】
[1]范雪飛.高中學(xué)生算法學(xué)習(xí)的困難分析與對(duì)策研究[D].延邊:延邊大學(xué),2010
[2]曹紅玲.研究程序設(shè)計(jì)中的并發(fā)復(fù)雜性[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013(4)
[3]馬小龍.VB程序設(shè)計(jì)中“五步教學(xué)法”的應(yīng)用研究[J].實(shí)驗(yàn)室科學(xué),2011(2)
【基金項(xiàng)目】2016年度玉林師范學(xué)院高等教育本科教學(xué)改革工程項(xiàng)目“教育技術(shù)學(xué)(信息技術(shù))專業(yè)師范生教學(xué)技能訓(xùn)練與考核標(biāo)準(zhǔn)研究”(2016XJJGZX14)。
【作者簡(jiǎn)介】嚴(yán) 樹(1982— ),女,湖北嘉魚人,教育技術(shù)學(xué)碩士,玉林師范學(xué)院教育科學(xué)學(xué)院講師,研究方向:信息技術(shù)教育與應(yīng)用。
(責(zé)編 江月陽(yáng))