駱道松
(中央民族大學(xué)附屬中學(xué)海南陵水分校,海南 陵水 572400)
項(xiàng)目教學(xué)是一項(xiàng)計(jì)劃好的,有固定開始時(shí)間和結(jié)束時(shí)間的活動(dòng),原則上項(xiàng)目結(jié)束后應(yīng)有一件較完整的作品。信息技術(shù)也稱信息處理技術(shù),信息技術(shù)自信心這里主要是指使用計(jì)算機(jī)技術(shù)處理問題的信心[1]。本文通過(guò)項(xiàng)目活動(dòng)實(shí)踐,讓學(xué)生學(xué)會(huì)處理現(xiàn)實(shí)問題,體驗(yàn)解決問題的思維過(guò)程,得到滿意的作品。今后在遇到問題時(shí),有解決問題的方法,通過(guò)自信心與創(chuàng)造力完美解決并獲得成功。
筆者在日常工作和生活中,同事和朋友都會(huì)有一些電腦問題,例如:wps文檔設(shè)置不好打印格式、電子表格不會(huì)計(jì)算或查詢、電腦聯(lián)不上打印機(jī)、設(shè)置雙面打印出現(xiàn)顛倒等等,其實(shí)這些問題都是基礎(chǔ)實(shí)用型問題,不需要很多專業(yè)知識(shí)。解決這些問題,只要敢于鉆研,有信心就能解決。自信心是靠平時(shí)的鉆研和積累,多鉆研就有解決問題的方法和思維。筆者聯(lián)想到同事和朋友在學(xué)生時(shí)代也應(yīng)學(xué)習(xí)了信息技術(shù),但如今卻沒有了自信心和解決問題的方法。筆者認(rèn)為增強(qiáng)信息技術(shù)自信心,要通過(guò)項(xiàng)目化的學(xué)習(xí)與實(shí)踐,多做項(xiàng)目提高信息素養(yǎng),才有信心找到解決辦法。只要愿意探索,總有方法能解決問題[2]。有意愿挑戰(zhàn)問題及其重要,這種意愿是自信和創(chuàng)造力的表現(xiàn),遇到問題不敢動(dòng)手嘗試,是沒有自信心和創(chuàng)造力的表現(xiàn)。因此希望學(xué)生們能增強(qiáng)信息技術(shù)自信心,在項(xiàng)目化實(shí)施的信息技術(shù)課堂中,為以后的工作和生活打下堅(jiān)實(shí)的基礎(chǔ)[3]。
交通信號(hào)燈,在日常生活中是指揮交通的重要工具,是運(yùn)用計(jì)算機(jī)語(yǔ)言邏輯編寫的,根據(jù)不同的交通路口設(shè)定時(shí)間。由單片機(jī)芯片控制燈亮的時(shí)間和滅的時(shí)間。具體就是當(dāng)紅燈該亮?xí)r,單片機(jī)控制信號(hào)燈紅燈亮,并根據(jù)已編好的程序獲得一定時(shí)間的延時(shí),然后再由其控制綠燈亮,并獲得一個(gè)延時(shí);當(dāng)信號(hào)燈為紅燈時(shí),監(jiān)控設(shè)備將會(huì)自動(dòng)拍攝越線的車輛并保存下來(lái)。如何用VB程序設(shè)計(jì)一個(gè)能指揮的交通信號(hào)燈?
這樣一個(gè)現(xiàn)實(shí)問題,學(xué)生通過(guò)網(wǎng)絡(luò)搜索,結(jié)合已學(xué)的VB程序設(shè)計(jì)知識(shí),設(shè)計(jì)方案、物化流程并編輯代碼調(diào)試。經(jīng)過(guò)兩節(jié)課的實(shí)踐與小組合作,學(xué)生明白了交通信號(hào)燈的運(yùn)行原理,并知道在VB程序設(shè)計(jì)中,可以使用shape形狀控件繪制圓形,添加紅、黃、綠三種顏色來(lái)代表信號(hào)燈。然后添加timer時(shí)鐘控件來(lái)計(jì)時(shí),再使用程序控制紅、黃、綠三種形狀的可見與不可見來(lái)表示信號(hào)燈。但學(xué)生程序設(shè)計(jì)控制時(shí)間、數(shù)值不太精確,需要老師多加指導(dǎo)。下圖為VB設(shè)計(jì)信號(hào)燈界面,圖形1填充紅色,顯示紅燈;圖形2填充黃色,顯示黃燈;圖形3填充綠色,顯示綠燈。VB設(shè)計(jì)信號(hào)燈界面如題圖1所示。
圖1 VB設(shè)計(jì)信號(hào)燈界面
完成的項(xiàng)目部分程序代碼:紅燈先亮10 s顯示倒計(jì)時(shí),然后紅黃燈同時(shí)亮3 s,再綠燈亮20 s顯示倒計(jì)時(shí),最后綠燈和黃燈同時(shí)亮3 s,循環(huán)運(yùn)行,紅燈亮10秒顯示倒計(jì)時(shí)。
Shape1.Visible = True ′紅燈對(duì)應(yīng)的圖形1可見
Shape2.Visible = False ′黃燈對(duì)應(yīng)的圖形2不可見
Shape3.Visible = False ′綠燈對(duì)應(yīng)的圖形3不可見
Timer1.Enabled = True ′計(jì)時(shí)器開啟
Timer1.Interval = 1000 ′每1000毫秒自動(dòng)更新
Private Sub Timer1_Timer()′′計(jì)時(shí)函數(shù)
i = i + 1
Select Casei
Case Is <= 10 ′計(jì)時(shí)小于等于10秒
Shape1.Visible = True ′紅燈對(duì)應(yīng)的圖形1可見
Case Is <= 13 ′計(jì)時(shí)i值是11-13秒
Shape2.Visible = True ′黃燈對(duì)應(yīng)的圖形2可見
Case Is <= 33 ′計(jì)時(shí)i值是14-33秒
Shape1.Visible = False
Shape2.Visible = False
Shape3.Visible = True
Case Is <= 36 ′計(jì)時(shí)i值是34~36秒
Shape2.Visible = True ′黃燈對(duì)應(yīng)的圖形2可見
Case Else ′重新計(jì)時(shí),紅燈亮
i = 0
Shape1.Visible = True
Shape2.Visible = False
Shape3.Visible = False
End Select
End Select
Label1.Caption = "時(shí)間:"&-i + 11 ′標(biāo)簽顯示倒計(jì)時(shí)數(shù)字
Label2.Caption = "時(shí)間:"&-i + 34
項(xiàng)目思考:交通信號(hào)燈是日常交通中常見的設(shè)備,能讓復(fù)雜的交通控制順暢。用VB程序設(shè)計(jì)交通信號(hào)燈這個(gè)項(xiàng)目,雖然學(xué)生不一定能完全成功,但可以通過(guò)學(xué)習(xí)實(shí)踐,使用百度搜索引擎解決問題。在計(jì)算機(jī)中將對(duì)應(yīng)顏色的圖形模擬信號(hào)燈,雖然與實(shí)際不符,但工作原理類似,這些搜索到的方法就是解決問題的途徑。將生活中的現(xiàn)實(shí)問題在VB中得到模擬實(shí)現(xiàn),讓學(xué)生體會(huì)到了創(chuàng)新設(shè)計(jì)、工程思維、物化能力,提高了學(xué)生學(xué)習(xí)VB的興趣,有利于提升信息技術(shù)自信心。
本項(xiàng)目是筆者自身遇到的問題。學(xué)校初三年級(jí)畢業(yè)生有450人,高三年級(jí)畢業(yè)生有320人,完成畢業(yè)證打印,若運(yùn)用傳統(tǒng)方式文檔制作好模板,一個(gè)個(gè)復(fù)制、粘貼學(xué)生信息,費(fèi)時(shí)費(fèi)力,770張畢業(yè)證兩人輪流也要一周才能打印完成,最后發(fā)給學(xué)生核對(duì)還有很多錯(cuò)誤。如果借助計(jì)算機(jī)程序來(lái)完成任務(wù),會(huì)提高效率,而且還減少出錯(cuò)率。讓程序來(lái)讀取學(xué)生信息,打印在指定位置,其實(shí)算法思維并不難。因此設(shè)計(jì)了本項(xiàng)目,運(yùn)用程序設(shè)計(jì)批量畢業(yè)證打印程序。
學(xué)生在一節(jié)課中,搜索到了VB讀取電子表格數(shù)據(jù)與定位打印的方法,但要完整地設(shè)計(jì)整個(gè)程序難度較大,需要老師引導(dǎo)完成項(xiàng)目程序代碼。運(yùn)行結(jié)果如打印區(qū)域圖2所示。
圖2 程序運(yùn)行打印區(qū)域
SetxlBook = xlapp.Workbooks.Open(App.Path &"xs.xls")′打開excel學(xué)生信息工作簿
Label2.Caption = j &""&zd(j + 1, 0) &""& zd(j + 1, 1) &""& zd(j + 1, 2) &""& zd(j + 1, 3) &""& zd(j + 1, 4) &""& zd(j + 1, 5) &""& zd(j + 1, 6) &""& zd(j + 1, 7) &""& zd(j + 1, 8) &""& zd(j + 1, 9) &""& zd(j + 1, 10)′打印之前,標(biāo)簽顯示打印信息
Printer.Orientation=vbPRORLandscape ′橫向打印
Printer.FontName= "黑體" ′字體黑體
Printer.FontSize=14 ′字號(hào)14
Printer.CurrentY=3800 ′y軸坐標(biāo)3800毫米
Printer.CurrentX=8600 ′x軸坐標(biāo)8600毫米
Printer.Print zd(j+1, 0) ′j+1循環(huán)打印下一條數(shù)據(jù)
項(xiàng)目思考:學(xué)生經(jīng)過(guò)學(xué)習(xí),得到了使用VB程序讀取電子表格中的數(shù)據(jù),電子表格數(shù)據(jù)容易將信息轉(zhuǎn)化成理想的類型,例如:將出生年月日阿拉伯?dāng)?shù)字分列,年月日一列一項(xiàng)容易定位;畢業(yè)時(shí)間要用漢字,使用電子表格容易轉(zhuǎn)化,然后打印在畢業(yè)證的相關(guān)位置。代碼設(shè)計(jì)學(xué)生還是不能完成,但學(xué)生通過(guò)搜索、使用百度、使用中國(guó)專業(yè)IT社區(qū)CSDN(Chinese Software Developer Network,CSDN),這些方法比解決問題更重要的。只要敢于探索,就會(huì)得到好的方法,就能增強(qiáng)解決問題的信心。只要不斷實(shí)驗(yàn)和思考,就有解決問題的方法。
在python語(yǔ)言的學(xué)習(xí)中,前期學(xué)習(xí)了海龜畫圖,那怎樣畫出學(xué)校的校徽l(shuí)ogo呢?本節(jié)課項(xiàng)目學(xué)習(xí)python繪制校徽l(shuí)ogo。
學(xué)生已經(jīng)學(xué)習(xí)了畫正方形、菱形、八個(gè)菱形的圖案以及畫曲線。學(xué)生搜索到了circle函數(shù),可以繪制曲線和兩個(gè)圓形。但畫和平鴿和“S”比較難,還有弧形的文字和英文。通過(guò)完成的項(xiàng)目程序部分代碼,其運(yùn)行結(jié)果如python運(yùn)行結(jié)果圖3所示,校徽l(shuí)ogo如?;赵瓐D4所示。
圖3 python運(yùn)行結(jié)果
圖4 ?;赵瓐D
import turtle as t
t.penup()
t.goto(5,-120)
t.pendown()
t.pensize(2)
t.pencolor(′blue′)
t.circle(130) #繪制內(nèi)圈圓形
#繪畫和平鴿
t.begin_fill()
t.penup()
t.goto((-80), 90)
t.pendown()
t.pensize(1)
t.pencolor(′pink′)
t.circle(-60,80)
t.circle(60,70)
t.circle(60,30)
t.circle(-100,-10)
t.circle(50,-20)
t.circle(80,-10)
t.circle(120,35)
t.circle(-100,-10)
t.circle(100,-20)
t.circle(80,-10)
t.circle(140,35)
t.circle(-100,-10)
t.circle(100,-20)
t.circle(80,-130)
t.circle(100,-20)
t.circle(10,60)
t.circle(100,-20)
t.fillcolor(′orange′)
t.end_fill()
#繪畫第一個(gè)S
t.begin_fill()
t.penup()
t.goto(0,100)
t.pendown()
t.left(-60)
t.pensize(1)
t.pencolor(′blue′)
t.circle(-90,80)
t.circle(-50,-70)
t.circle(240,-10)
t.left(200)
t.circle(-100,65)
t.fillcolor(0, 0, 1)
t.end_fill()
t.circle(117,46)
t.circle(-90,80)
t.circle(-50,-70)
t.circle(240,-10)
t.left(200)
t.circle(-100,65)
t.fillcolor(′blue′)
t.end_fill()
#繪畫第二個(gè)S,就是起點(diǎn)位置調(diào)整
t.goto(40,100)
#繪畫第三個(gè)S,就是起點(diǎn)位置調(diào)整
t.goto(80,100)
#繪畫2013
t.write(2013,move=False,align=′left′,font=(′arial′,18,′normal′)) #寫出內(nèi)圈中的2013
t.penup()
t.goto(100,-130)
t.pendown()
t.pensize(2)
t.pencolor(′blue′)
t.circle(170) #繪制外圈圓形
t.bgpic(′wenzii.png′) #加載背景圖
項(xiàng)目思考:學(xué)生經(jīng)過(guò)python學(xué)習(xí),學(xué)習(xí)到了海龜畫圖中turtle庫(kù)中運(yùn)用circle函數(shù)來(lái)畫弧,由于?;誰(shuí)ogo有兩個(gè)圓形,其中的和平鴿和“S”學(xué)生繪制不佳。學(xué)生自己搜索到的知識(shí),比老師講授的要理解深刻,這是最好的一種學(xué)習(xí)方式,也是項(xiàng)目化學(xué)習(xí)的優(yōu)點(diǎn)。先自己搜索解決問題的方法,老師再講授,學(xué)生就會(huì)理解深刻,最后調(diào)試運(yùn)行、思考理解。若能學(xué)生自己繪制出來(lái),更能激發(fā)信息技術(shù)自信心。
項(xiàng)目化的學(xué)習(xí),是讓學(xué)生自己先嘗試解決問題,明確解決問題的方法。自己查找資料,例如:使用搜索引擎百度搜索,程序代碼問題使用CSDN學(xué)習(xí),都是很好的方法。敢于解決問題,一次次實(shí)驗(yàn),總能找到解決問題的方法,這些都需要信心和毅力。學(xué)習(xí)和生活是由一個(gè)個(gè)的項(xiàng)目組成,總能從網(wǎng)絡(luò)找到解決項(xiàng)目的方法。學(xué)生通過(guò)項(xiàng)目實(shí)踐,運(yùn)用程序設(shè)計(jì)解決這些專業(yè)問題,增強(qiáng)自信心,對(duì)遇到的問題敢于搜索、實(shí)驗(yàn),從而積累經(jīng)驗(yàn),提高信息素養(yǎng)[4]。
項(xiàng)目化學(xué)習(xí)的最重要意義是“由極大的幸福感點(diǎn)燃的可持續(xù)的內(nèi)驅(qū)的學(xué)習(xí)動(dòng)機(jī)和不輕易放棄的堅(jiān)毅品格”。學(xué)生多做項(xiàng)目,才會(huì)遇到各種未知問題,通過(guò)搜索解決這些問題積累經(jīng)驗(yàn),就能提高信息素養(yǎng)和增強(qiáng)自信心。對(duì)于學(xué)習(xí)和生活中不需要很多信息技術(shù)專業(yè)知識(shí)的問題,相信自己就能解決。