将爱国主义教育融入到科技教育之中
2019-11-12陈染
陈染
国庆节就要到来了,今年国庆恰逢中华人民共和国成立70周年,在这个盛大节日来临之际,中小学纷纷开展了各种形式的爱国主义教育。爱国主义教育不仅仅是思想政治课程的工作任务,更应该融入每一个课程中。对于科技辅导员而言,将科技教育与爱国主义教育融合也是我们责无旁贷的工作责任,它体现在科技辅导员的工作任务和工作方法两方面。
为了帮助科技辅导员更好地将科技教育与爱国主义教育结合起来,9月初,科技学堂“Python turtle图形编程入门”的牛毅昕老师设计了一节“用Python turtle绘制国旗”的课程。下面我们以此为例分析如何让科技教育与爱国主义教育结合起来。
在这个任务中,学生需要用Python turtle绘制1面国旗(当然,你也可以选择其他编程语言作为绘制工具)。作为一次爱国主义教育导向的课程,我们在课程开始之前需要引导学生对国旗产生更深入的认识。我们可以通过五星红旗是怎么产生的,其象征和意义是什么等内容作为课程引入部分,引导学生理解绘制国旗的意义。
我们都知道中国国旗是五星红旗,但很少会有学生意识到并不是所有的五星红旗都是国旗。如果直接让学生绘制国旗,学生可能会绘制出各种似是而非的五星红旗。作为国家象征,国旗绘制活动更要注重准确性,我们可以通过学习《中华人民共和国国旗法》让学生们认识到绘制国旗的严肃性。《中华人民共和国国家标准·国旗(GB12982—2004)》(下文简称《标准》)详细记载了国旗的形状、颜色和规格。这是一个强制性标准,是一个具有法规性质的技术性规范。
《标准》的附录为我们提供了详细的国旗制法,我们可以从中学习到国旗设计中的很多数学知识。因此,在开始用程序绘制之前,我们建议时间允许的教师先引导学生用直尺和圆规在纸面上绘制出国旗,这个过程不仅能提升学生的作图能力,培养爱国主义精神,同时也是顺理逻辑的过程,帮助学生更好地构建程序设计思路。
接下来就是正式的绘制环节了,我们可以把任务分解成旗面、大五角星和4顆小五角星3部分。
《标准》对于国旗规格的描述是“旗面为红色,长方形,其长与高为三与二之比”。这意味着我们需要定义长宽比为3∶2的旗面,我们用以下代码绘制出长宽比满足比例的旗面,并填充为红色。在程序中,我们把起笔定在(-200,200)的位置,长度定为438,宽度定为292,当然,你可以自由设置长度和高度的数值,只要符合3∶2的长宽比就可以了。程序如下:
import turtle
turtle.speed(10)#绘制速度
turtle.up()
turtle.goto(-200,200)
turtle.down()
turtle.begin_fill()
turtle.fillcolor(“red”)
turtle.pencolor(“red”)
for I inrange(2):
turtle.forward(438)
turtle.right(90)
turtle.forward(292)
turtle.right(90)
turtle.end_fill()
画出了红色的旗面后,我们要将5颗五角星放置到旗面上。《标准》对于五角星的描述是“一星较大,其外接圆直径为旗高十分之三,居左;四星较小,其外接圆直径为旗高十分之一,环拱于大星之右”。并且,《标准》附录中的国旗制法详细叙述了如何通过等分法确定五角星的位置。对于大五角星,其表述如下:“为便于确定五星之位置,先将旗面对分为四个相等的长方形,将左上方之长方形上下划为十等分,左右划分为十五等分。大五角星的中心点,在该长方形上五下五、左五右十之处,其画法为:
以此点为圆心,以三等分为半径作一圆,在此圆周上,定出五个等距离的点,其一点须位于圆之正上方,然后将此五点中各相隔的两点相联,使各成一直线。此五直线所构之外轮廓线,即为所需之大五角星,五角星之一个角尖正向上方。”
根据《标准》中的表述,我们可以计算出每一个星星的位置。前面我们已经设置了旗面的坐标位置、长度和宽度,可以计算出大五角星的坐标位置。在程序中我们将turtle的笔触和填充颜色设置为黄色,把turtle移动到起始位置,通过循环语句绘制出五角星,程序如下:
Import turtle
turtle.speed(10)
#更改海龟的画笔颜色和填充颜色
turtle.fillcolor(“yellow”)
turtle.pencolor(“yellow”)
turtle.up()
turtle.goto(-170,145)#五角星的坐标
turtle.down()
turtle.begin_fill()
for x in range(5):
turtle.forward(50)#
turtle.right(144)#
turtle.end_fill()
值得注意的是,我们需要将for循环的部分放在begin_fill()和end_fill()之间,这样我们才能将颜色填充到五角星中。同时,begin_fill()和end_fill()方法一定要成对出现,缺一不可。
完成了大五角星的绘制,我们可以绘制4颗小五角星了。首先还是查阅《标准》中关于4颗小五角星位置的描述:“四颗小五角星的中心点,第一点在该长方形上二下八、左十右五之处,第二点在上四下六、左十二右三之处,第三点在上七下三、左十二右三之处,第四点在上九下一、左十右五之处。其画法为:以以上四点为加圆心,各以一等分为半径,分别作四个圆。在每个圆上各定出五个等距离的点,其中均须各有一点位于大五角星中心点与以上四个圆心的各联结线上,然后用构成大五角星的同样方法,构成小五角星。此四颗小五角星均各有一个角尖对大五角星的中心点。”
值得注意的是,每颗小五角星都有一角与大五角星的中心点相对,也就是说,我们需要为每个小五角星设置不同的转动角度,我们可以通过平面几何计算出每一颗星星转动的角度。对于低年级的学生而言,我们可以用量角器测量出每一颗星星的角度,这也是为什么我们建议教师们在活动开始前引导学生手绘国旗的原因。在程序中,我们可以用turtle.setheading()语句实现星星的转向,根据计算,从上到下4颗小五角星的转向角度分别是305、30、3和300。
根据《标准》,我们换算出每颗小五角星的长度是20,并根据平面几何知识可以计算出每颗小五角星的具体坐标,从上到下4颗小五角星的坐标分别是(-100,180)(-85,150)(-85,120)和(-100,100)。通过以下程序画出第1个小五角星。
turtle.up()
turtle.goto(-100,180)
turtle.setheading(305)#设置当前海龟朝向:会改变海龟的方向turtle.down()
turtle.begin_fill()
for i in range(5):
turtle.forward(20)
turtle.left(144)
turtle.end_fill()
调整turtle.setheading()和turtle.goto()的参数,就可以绘制出剩下3颗小五角星,这里就不赘述具体的程序了。最后,别忘了在程序结尾处加上hideturtle()语句隐藏小海龟,并加上turtle.done()表示绘制完成,这样我们的国旗就停留在屏幕上了。
turtle.hideturtle()
turtle.done()
通过用Python turtle绘制国旗的课程,科技教师提升了学生的爱国情感,让学生更加严肃地对待国旗,同时也提升了学生的Python编程水平,这正是科技辅导员“提升青少年的文明素质”的工作任务和“活动内容与德育结合的必要性和可行性”的工作原则的体现。