嚴(yán)樹 周雪瑩 嚴(yán)函

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