姚帥華
摘 要: 算法與程序設(shè)計是高中信息技術(shù)中對學(xué)生思維嚴(yán)謹(jǐn)性要求較高的一個模塊,雖然不在必修課之列,但是對學(xué)生的邏輯能力的提高有非常大的幫助。在學(xué)生學(xué)有余力的條件下,做好“算法與程序設(shè)計”教學(xué),將會使學(xué)生的學(xué)習(xí)能力得到發(fā)展。
關(guān)鍵詞: 信息技術(shù) 高中教學(xué) 心得體會
算法與程序設(shè)計這個模塊在高中的教學(xué)體系中不在主流之列,涉及信息技術(shù)程度較深。但是算法與程序設(shè)計的內(nèi)在邏輯卻是高中的關(guān)鍵思維,在數(shù)學(xué)必修3中算法設(shè)計成了獨立的一章,占有較大比重。筆者以VB語言為例,從實例教學(xué)、上機訓(xùn)練、設(shè)計提高三個方面,分享在教學(xué)過程中的一點心得體會。
一、呈現(xiàn)實例,確立概念
在大家的印象中,程序設(shè)計就是所謂的敲代碼,一行一行,無窮無盡。事實上程序設(shè)計相互獨立且相互聯(lián)系。代碼的意義在于實現(xiàn)某一項功能,眾多功能就組成了一個程序。因此程序設(shè)計的教學(xué)也是模塊化的,呈現(xiàn)一個個實例,讓同學(xué)們明確程序的概念。
以一個求平均成績的程序為例。求平均成績的算法比較簡單,核心算法是一個加法配合除法。這是一個非常簡單的例子,但是涉及基本概念,可以作為一個實例呈現(xiàn)給學(xué)生。具體代碼如下:
Dim a As Integer,b As Integer,c As Integer,d As Integer,e As Integer,f As Integer
a=Val(InputBox(“輸入語文成績”)),b=Val(InputBox(“輸入數(shù)學(xué)成績”)),c=Val(InputBox(“輸入英語成績”)),d=Val(InputBox(“輸入物理成績”)),e=(a+b+c+d),f=e/4,Print“總成績;”;e,Print“平均成績;”;f,End Sub
在這個例子中,我先明確vb語言的概念。首先dim是進(jìn)行定義的動作,后面緊跟的就是變量。一個程序離不開變量,當(dāng)然也就離不開dim語句。a,b,c,d就是本程序中的變量,變量起到傳遞值的作用,是程序中的“搬運工”?!癮s”后就是變量的類型,在本程序中變量類型為“integer”,即整數(shù)型變量。接下來的幾個帶有“=”號的語句,就是本程序中實現(xiàn)功能的主要語句,不同的程序有著各種各樣的形式。在這一部分,通常是一些功能性的函數(shù)和賦值。明確這個概念,程序設(shè)計的主體框架就能建立起來了。在程序的最后,往往有“print”等語句進(jìn)行輸出,形式不一而足?!癊nd Sub”則是整個程序的結(jié)束,沒有實際的功能,而作為一個間隔的符號。
初識VB語言,很多概念一擁而入,實在難以掌握概念。對于基礎(chǔ)的概念定義來說,算法與程序設(shè)計中的說法比較抽象,難以把握其中的內(nèi)涵。因此,從多個方面來講,用一個實例進(jìn)行概念的認(rèn)知,是非常必要的。
二、上機作業(yè),強化練習(xí)
程序設(shè)計有個顯著的特點,就是嚴(yán)密性。找“bug”(漏洞)是程序設(shè)計中最令人頭痛的事情,而且非常浪費精力。對于VB程序設(shè)計來說,嚴(yán)密設(shè)計還可以用電腦程序來輔助。正因為這樣,程序設(shè)計不能與上機實驗分割開來。
以VB程序調(diào)試功能為例。我在教學(xué)過程中反復(fù)強調(diào)上機操作的重要性。然而在課堂上我只能精心講解案例,介紹基本操作,留給同學(xué)們的時間很少。在上機課上的時間也很有限,因此我特別重視上機實驗這段時間。我設(shè)計了一些上機任務(wù),供同學(xué)們在上機時強化練習(xí)。其中,我突出說明了調(diào)試對于上機操作的作用。由于程序設(shè)計的代碼繁多,我也不可能把同學(xué)們各自的“bug”都找出來,因此調(diào)試是一種自主評判、修正的方式,適合同學(xué)們在作業(yè)中加以運用。在正常視圖下,點擊菜單欄中的“視圖”按鈕或者按下快捷鍵“F8”,即可開始逐語句調(diào)試程序。如果被調(diào)試語句有問題,字體就會被標(biāo)紅,我們需要對標(biāo)紅的語句進(jìn)行仔細(xì)審查,對與該語句相關(guān)的語句要檢查是否邏輯有誤。調(diào)試是上機作業(yè)中一項必備的技能,讓程序?qū)崿F(xiàn)功能,調(diào)試無誤后,該程序基本就可以確認(rèn)合格了。
三、課程設(shè)計,鞏固技能
(一)理解范例,完善思維。
課程設(shè)計是程序設(shè)計的最終考核。高中階段的算法與程序設(shè)計學(xué)習(xí),只需停留在了解的層面就可以了,課程設(shè)計的要求只是能夠獨立設(shè)計一個簡單的小應(yīng)用。這種應(yīng)用與單獨的程序不同,有著高度的獨立性,對學(xué)生的思維嚴(yán)謹(jǐn)性有著更高的要求。
以期末考試成績統(tǒng)計軟件作為一個講解的范例。下面是部分代碼:
Private Sub fenshu_KeyPress(Index As Integer,Key Ascii As Integer),If KeyAscii<48 Or KeyAscii>57 Then,If KeyAscii=46 Then,KeyAscii=46,Else,KeyAscii=0,End If,End If,End Sub
這段代碼的作用是將輸入文本框中的內(nèi)容限制為小數(shù)和小數(shù)點。其實從全局來看,限制文本形式是一個非常精細(xì)的環(huán)節(jié)。但是輸入內(nèi)容如果不加限制,那么影響到的是數(shù)據(jù)源,最后成績計算會出現(xiàn)問題。程序設(shè)計者當(dāng)然知道成績輸入框要輸入數(shù)字,那么設(shè)計者在調(diào)試的過程中會想當(dāng)然地輸入數(shù)字進(jìn)行調(diào)試,從而忽略限制文本形式的問題。那么這樣的話,整個程序設(shè)計出來,肯定是要出現(xiàn)問題的。講課程設(shè)計就要講它的注意點,注意點其實就是一些想不到的細(xì)節(jié)。
(二)自主設(shè)計,拓展提高。
課程設(shè)計是綜合技能的考驗,學(xué)生最終的目標(biāo)是自主完成。當(dāng)然,完成課程設(shè)計,即獨立完成一個簡單應(yīng)用的全部代碼和組件,還是有一定難度的。這部分教學(xué)還是以拓展提高為目的,不做硬性要求。
在基本的教學(xué)任務(wù)完成之后,我還安排了課程設(shè)計。設(shè)計以簡單功能的應(yīng)用為主,并且各個題目都有近似的范例作為參考,基本就是照貓畫虎。課程設(shè)計的選題有很多,功能也各具特色,激發(fā)了同學(xué)們的興趣,其實無論結(jié)果,這就已經(jīng)達(dá)到教學(xué)目的了。不加入“考試”這種壓力元素,課程設(shè)計其實是一個完美的結(jié)課手段。大部分同學(xué)都運用“排比”的手法堆積語句,就可以實現(xiàn)程序的基本功能。例如:
If song.Value=True Then,Label.FontName=“宋體”,End If,If fangsong.Value=True Then,Label.FontName=“仿宋”,End If
簡單的排比語句,加上細(xì)節(jié)修飾,完成課程設(shè)計問題不大。
自主課程設(shè)計本身不是一項考核,更像一個引導(dǎo)。一行行敲代碼看不到希望,將代碼組成一個小應(yīng)用,就增強了學(xué)生的成就感。任何學(xué)習(xí)都離不開自主,讓學(xué)生漸漸獨立思考,才是最終的教學(xué)目標(biāo)。
參考文獻(xiàn):
[1]浦曉英.案例教學(xué)法在高中算法與程序設(shè)計中的應(yīng)用探索[J].中小學(xué)電教,2014(3).
[2]趙楠楠.高中《算法與程序設(shè)計》課程教學(xué)的改革[J].科技風(fēng),2014(18).