趙文財



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