趙文財(cái)
摘? ?要:教育部最新發(fā)布的中職信息技術(shù)學(xué)科新課標(biāo)中的“程序設(shè)計(jì)入門”模塊,要求引導(dǎo)學(xué)生了解程序設(shè)計(jì)的基本理念,初步掌握程序設(shè)計(jì)的方法,培養(yǎng)學(xué)生運(yùn)用程序設(shè)計(jì)解決問題的能力。文章旨在如何做好“程序設(shè)計(jì)入門”的教學(xué)及增強(qiáng)中職學(xué)生學(xué)習(xí)計(jì)算機(jī)語言的興趣方面進(jìn)行相關(guān)的教學(xué)探究,以期達(dá)到新課標(biāo)中的“程序設(shè)計(jì)入門”模塊的教學(xué)要求。
關(guān)鍵詞:教學(xué);興趣;練習(xí)
教育部發(fā)布中職《信息技術(shù)》學(xué)科的新課標(biāo)中,要求“程序設(shè)計(jì)入門”模塊所需教學(xué)學(xué)時(shí)約12學(xué)時(shí),如何在這12學(xué)時(shí)內(nèi)完成好教學(xué)任務(wù),對(duì)學(xué)生、教師或?qū)W校都是新課題。首先,對(duì)中職學(xué)生來說,學(xué)程序設(shè)計(jì)有一定的困難,其次,對(duì)學(xué)科教師來說,教學(xué)難點(diǎn)在于如何在12學(xué)時(shí)內(nèi)完成教學(xué)內(nèi)容及提高學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣,結(jié)合福建省計(jì)算機(jī)應(yīng)用基礎(chǔ)學(xué)業(yè)水平測(cè)試大綱,本文針對(duì)這些情況,從教學(xué)策略和教學(xué)評(píng)價(jià)兩方面進(jìn)行教學(xué)探究。
1? 教學(xué)策略
1.1? 程序設(shè)計(jì)模塊的教學(xué)導(dǎo)引
以海龜繪圖為指引,貫穿整個(gè)程序設(shè)計(jì)的教學(xué)過程,見表1。
1.2? 精心設(shè)計(jì)課堂的上機(jī)操作練習(xí)
通過一個(gè)個(gè)有趣的實(shí)例,引導(dǎo)學(xué)生了解程序設(shè)計(jì),提高學(xué)習(xí)的興趣。如下例。
實(shí)例1-1 制作正方形(圖1所示)。
參考代碼如下:
import turtle #調(diào)用turtle 模塊
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.done()
學(xué)生通過上機(jī)實(shí)踐,制作正方形,通過本例讓學(xué)生學(xué)會(huì)在python IDLE中編輯代碼、運(yùn)行代碼、調(diào)試代碼、保存代碼及提交程序文件;教師通過網(wǎng)絡(luò)教室廣播逐行講解代碼,上機(jī)操作演示,讓學(xué)生看懂海龜作圖的常用命令及語法使用。
實(shí)例1-2 制作六邊形(圖2所示)。
import turtle #調(diào)用turtle 模塊
turtle.forward(100)
turtle.left(60)
turtle.forward(100)
turtle.left(60)
turtle.forward(100)
turtle.left(60)
turtle.forward(100)
turtle.left(60)
turtle.forward(100)
turtle.left(60)
turtle.forward(100)
turtle.done()
以上代碼由學(xué)生根據(jù)上面的正方形的制作原理自己編寫完成,學(xué)生通過完成任務(wù),靈活掌握海龜作圖的幾個(gè)常用命令,從而對(duì)編程產(chǎn)生濃厚的學(xué)習(xí)興趣,初步掌握python語言。
實(shí)例2 制作五環(huán)(圖3所示)。
參考代碼如下:
import turtle
turtle.up()
turtle.fd(200)
turtle.down()
turtle.circle(100)
turtle.up()
turtle.bk(200)
turtle.rt(90)
turtle.down()
turtle.circle(100)
turtle.lt(90)
turtle.circle(100)
turtle.up()
turtle.bk(200)
turtle.rt(90)
turtle.down()
turtle.circle(100)
turtle.lt(90)
turtle.circle(100)
turtle.done()
本例需教師對(duì)以上代碼逐行講解,上機(jī)操作演示制作五環(huán)過程,學(xué)生認(rèn)真做好筆記,本節(jié)通過教師上機(jī)講解,學(xué)生跟練,在一課時(shí)內(nèi)完成以上任務(wù),大部分學(xué)生可完成并提交,學(xué)生通過上機(jī)操作體驗(yàn),對(duì)海龜作圖命令有了更深理解,同時(shí)讓學(xué)生進(jìn)一步了解計(jì)算機(jī)語言的順序結(jié)構(gòu),熟悉程序在計(jì)算機(jī)中的一般執(zhí)行過程。
實(shí)例3制作多只海龜(圖4所示)
參考代碼如下:
import turtle
小黑=turtle.Turtle()
小白=turtle.Turtle()
小白=turtle.Turtle("turtle")
小黑.up()
小白.up()
小白.fd(100)
小黑.lt(90)
小黑.fd(200)
turtle.done()
本例旨在引導(dǎo)學(xué)生學(xué)習(xí)python語言中的的變量和賦值,學(xué)生上機(jī)操作后,通過變量(小黑、小白)展現(xiàn)出一只只形象可愛的海龜,對(duì)變量概念有更深的理解。
實(shí)例4-1 通過兩段海龜作圖代碼對(duì)比,引出程序設(shè)計(jì)教學(xué)的另一個(gè)重要知識(shí)點(diǎn)“循環(huán)”,學(xué)生通過對(duì)比兩段代碼,初步理解for循環(huán)語句,代碼如下:
import turtle
a=turle.Turtle()
a.forward(100)
a.left(90)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? import turtle
a.forward(100)? ? ?—比較,改進(jìn)為→? ? a=turtle.Turtle()
a.left(90) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? for in range(4)
a.forward(100)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a.forward(100)
a.left(90)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?a.left(90)
a.forward(100)? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Turtle.done()
a.left(90)
Turtle.done()
實(shí)例4-2繪制同心圓(圖5所示)。
參考代碼如下:
import turtle
for i in range(1,6):
turtle.circle(20*i)
turtle.rt(90)
turtle.up()
turtle.fd(20)
turtle.lt(90)
turtle.down()
turtle.done()
本例有一定的難度,只有部分學(xué)生可以理解,可作為拓展講解。
實(shí)例5 制作任意多邊形。
參考代碼如下:
import turtle
n=int(input("輸入幾邊形:"))
for i in range(n):
turtle.fd(100)
turtle.lt(360/n)
turtle.done()
本例旨在引入程序設(shè)計(jì)的另一個(gè)知識(shí)點(diǎn)鍵盤輸入(input函數(shù)),教師通過本例生動(dòng)有趣的講解,使用input函數(shù)可通過鍵盤控制制作任意多邊形,學(xué)生通過上機(jī)實(shí)踐,體會(huì)input函數(shù)用法,并對(duì)前面的for循環(huán)和海龜作圖命令綜合歸納,使得前后知識(shí)連貫。
實(shí)例6 幻影海龜作圖(圖6所示)。
參考代碼如下:
import turtle
import random
a=turtle.Turtle()
a.color("red")
a.shape("turtle")
a.up() #抬起,不劃軌跡
n=int(input("產(chǎn)生海龜數(shù):"))
i=1
while i<=n:
a.goto(random.randint(-200,200),random.randint(-200,200))
a.stamp() #讓海龜在所在位置留下印跡
i=i+1
turtle.done()
本例旨在引入while循環(huán),有一定的難度,只有部分學(xué)生可以理解,可作為拓展講解。
實(shí)例7 制作時(shí)鐘(圖7所示)。
參考代碼如下:
import turtle
a=turtle.Turtle()
a.color("green")
a.shape("turtle")
#a.speed("slowest")
a.goto(0,0)
a.lt(90)
m=0
for i in range(1,61):
a.up()
a.fd(110)
a.down()
if i%5==0:
m=m+1
a.fd(10)
a.up()
a.bk(25)
a.down()
a.write(m,font=("黑體",16))
else:
a.up()
a.fd(5)
a.down()
a.fd(5)
a.up()
a.bk(25)
a.down()
a.up()
a.bk(95)
a.rt(6)
a.rt(90)
a.fd(120)
a.lt(90)
a.down()
a.circle(120)
a.up()
a.goto(0,0)
turtle.done()
本例旨在引入if條件分支語句,有一定的難度,只有部分學(xué)生可以理解,可作為拓展講解。
2? 教學(xué)評(píng)價(jià)
結(jié)合學(xué)測(cè)要求,可以有針對(duì)性的設(shè)計(jì)上機(jī)練習(xí)題,如:
(1)操作要求:
打開樣例ks1.py文件,完善代碼:
a=2
?
print("a+b=",a+b)
程序功能為輸出: a+b= 5。
文件中提供的程序代碼不完整,請(qǐng)將程序中的 ? 改為正確的內(nèi)容。(注意:不能修改程序的其他部分)
(2)操作要求:
打開樣例ks2.py文件,完善代碼:
?
for i in range(4):
turtle.fd(100)#前進(jìn)100
turtle.rt(90)#右轉(zhuǎn)90
turtle.done()#停止畫筆
程序功能為:繪制邊長為100像素的正方形。
文件中提供的程序代碼不完整,請(qǐng)將程序中的 ? 改為正確的內(nèi)容。(注意:不能修改程序的其他部分)
教師綜合分析學(xué)生提交的上機(jī)操作結(jié)果,對(duì)癥下藥,有針對(duì)性的指導(dǎo)學(xué)生,如此循環(huán),即可達(dá)到事半功倍。
總之,根據(jù)福建省中等職業(yè)學(xué)校學(xué)業(yè)水平考試計(jì)算機(jī)應(yīng)用基礎(chǔ)考試大綱的要求,通過以上的教學(xué)策略,及上面列舉的上機(jī)課堂實(shí)例,主要是對(duì)教材教學(xué)的補(bǔ)充,并進(jìn)行教學(xué)實(shí)踐,切合中職學(xué)生教學(xué)實(shí)際,提升學(xué)生學(xué)習(xí)程序設(shè)計(jì)的積極性。在約12學(xué)時(shí)的教學(xué)中,大部分學(xué)生較好的完成課堂任務(wù),有個(gè)別學(xué)生接受能力相對(duì)較慢,但都能充分感受學(xué)習(xí)python語言的樂趣,達(dá)到了新課標(biāo)程序設(shè)計(jì)課程的教學(xué)要求;同時(shí)教師也從中體會(huì)到如何較好地教學(xué)生學(xué)習(xí)計(jì)算機(jī)語言,教學(xué)兩相長,最終受益于每一個(gè)學(xué)生。