Skip to content

小组协作:用代码绘制主题几何画册

课题

循环与条件的“图形魔法”——团队创作几何主题画册

教学时间

2课时(90分钟)

课前准备

  • 教师端:电脑(Python 3.10+,预装turtle库)、投影仪、多媒体课件(含优秀几何画册案例:如“四季”“动物”主题)、实物几何教具(不同颜色的正方形/三角形积木)、小组分工表模板、互评评分表(含“图形多样性”“代码逻辑性”“合作默契度”维度)。
  • 学生端:电脑(Python环境)、笔记本(记录分工和代码思路)、彩笔(绘制画册草图)、U盘(保存小组代码)。
  • 教学素材:循环+条件组合代码模板(如“画大小渐变的正方形”)、主题参考列表(四季、节日、校园、自然)、AI代码小助手(支持“如何让图形居中”“如何设置渐变色”等问题)。

一、导入活动:从“实物拼贴”到“代码组合”(15分钟)

活动1:“几何积木拼主题”——感知图形组合逻辑

  • 分组发放几何积木(正方形、三角形、圆形),任务:用10分钟拼出“春天”主题场景(如“三角形=屋顶,正方形=房子,圆形=太阳”)。
  • 每组展示成果,提问:“你们用了哪些图形?它们的大小、颜色有什么不同?”引导发现“主题需要多个图形按规律组合”。

活动2:“代码积木”回顾——衔接循环与条件知识

  • 教师板书:“循环(for)= 重复画相同图形,条件(if)= 让图形有差异(如颜色、大小)”。
  • 示例代码片段:
    python
    import turtle
    t = turtle.Turtle()
    for i in range(5):  # 循环5次
        if i % 2 == 0:  # 偶数次画红色
            t.color("red")
        else:  # 奇数次画蓝色
            t.color("blue")
        t.forward(50 + i*10)  # 大小递增(50,60,70...)
        t.right(90)
  • 提问:“这段代码会画出什么效果?”(5个颜色交替、大小递增的正方形),明确“循环+条件=多样且有序的图形”。

二、知识点讲解:主题画册的代码实现逻辑(25分钟)

模块1:确定主题与图形设计(10分钟)

  • 主题选择:从参考列表中选1个(或自定),要求能通过几何图形表达(如“秋天”→ 三角形=枫叶、圆形=果实、长方形=树干)。
  • 图形拆解:以“秋天”为例,小组需讨论:
    • 基础图形:需要哪些图形(三角形、圆形、线段);
    • 变化维度:大小(如枫叶从小到大)、颜色(如橙色→黄色渐变)、位置(如果实分布在树枝上)。
  • 草图绘制:学生用彩笔在笔记本上画画册分镜(至少3个场景),标注每个图形的“代码参数”(如“枫叶:三角形,边长30,颜色橙色,位置(0,50)”)。

模块2:循环+条件的组合进阶(15分钟)

  • 核心逻辑:用函数封装单个图形(如draw_leaf(size, color)),再用循环批量生成,用条件控制差异。
  • 代码示例:绘制“秋天枫叶群”
    python
    import turtle
    t = turtle.Turtle()
    t.speed(0)  # 最快速度
    
    def draw_leaf(size, color):  # 定义画枫叶的函数(三角形简化)
        t.color(color)
        t.begin_fill()
        for _ in range(3):  # 三角形
            t.forward(size)
            t.right(120)
        t.end_fill()
    
    # 用循环+条件生成10片不同的枫叶
    for i in range(10):
        size = 20 + i*5  # 大小递增(20,25...65)
        # 条件:前5片橙色,后5片黄色
        if i < 5:
            color = "orange"
        else:
            color = "yellow"
        # 移动位置(避免重叠)
        t.penup()
        t.goto(-200 + i*40, 0)  # x坐标从-200到200,y=0
        t.pendown()
        draw_leaf(size, color)
    
    turtle.done()
  • 关键技巧
    1. penup()goto(x,y)移动画笔,避免图形重叠(坐标知识应用);
    2. 函数参数sizecolor让图形可定制(模块化思维);
    3. 循环变量i控制大小和位置,实现“有序排列”(数学规律应用)。

三、项目实操:小组协作完成主题画册(30分钟)

阶段1:分工明确(5分钟)

  • 每组4人,按“设计组”“编码组”“测试组”“记录组”分工(可轮换):
    • 设计组:完善草图,标注每个图形的参数(大小、颜色、坐标);
    • 编码组:将草图转化为代码,使用函数和循环;
    • 测试组:运行代码,检查图形是否符合设计(如位置错误、颜色不对);
    • 记录组:填写“开发日志”(遇到的问题及解决方法)。

阶段2:代码实现(20分钟)

  • 基础要求:至少包含3种图形(正方形、三角形、圆形),使用循环生成5个以上图形,用条件控制颜色/大小差异。
  • 进阶挑战:添加文字说明(t.write("秋天来了"))、背景色(turtle.bgcolor("skyblue"))、图形旋转(t.right(angle))。
  • 教师支持
    • 打开AI代码小助手,学生可提问“如何让圆形排成圆形?”“怎么设置渐变色?”,AI生成参考代码(如用角度计算圆形排列坐标);
    • 巡视各组,重点指导“坐标计算”(如“要让图形居中,x从-100到100”)和“函数调用”(如忘记传参数导致图形不变)。

阶段3:初稿调试(5分钟)

  • 每组运行代码,截图保存初稿效果,测试组记录需优化的问题(如“枫叶重叠”“颜色不够鲜明”)。

四、互评与优化:从“初稿”到“成品”(15分钟)

  1. 小组展示:每组派代表投屏初稿,讲解:
    • 主题与图形的关联(如“用黄色圆形代表秋天的果实”);
    • 代码中循环和条件的应用(如“用for i in range(6)画了6棵树,if i>3让后3棵变高”)。
  2. 多维互评:各组用评分表互评,重点:
    • 数学性:图形大小/位置是否有规律(如比例递增);
    • 艺术性:颜色搭配是否符合主题(如“冬天”用蓝色/白色);
    • 技术性:代码是否用函数封装、循环是否简洁(避免重复代码)。
  3. 教师点评:肯定创意(如“用三角形旋转45度表现风车”),指出可优化点(如“用x = i*50让图形更均匀”)。

五、总结与作业(5分钟)

课堂总结:

  • 主题画册=“图形拆解+代码组合”:先确定主题→拆解为基础图形→用循环批量生成→用条件制造差异;
  • 团队协作关键:明确分工+及时沟通(如设计组和编码组需同步图形参数)。

课后作业:

  1. 小组根据互评建议优化代码(如调整颜色、增加图形数量),最终版命名为“主题_小组名.py”;
  2. 每人写1段“编程日记”:记录自己在项目中负责的部分、遇到的最大困难及解决方法(如“我负责画太阳,一开始圆形太大,后来改小了radius参数”)。

教学理论支撑:

  1. 皮亚杰形式运算阶段理论:通过“实物拼贴→草图设计→代码实现”的三阶转化,帮助学生从具体形象思维(积木拼贴)过渡到抽象逻辑思维(用代码参数表达图形特征)。
  2. 维果茨基最近发展区:小组协作中,能力强的学生可作为“脚手架”帮助同伴(如编码组教测试组看懂循环逻辑);AI代码小助手解决语法细节问题,降低“想得到做不出”的挫折感。
  3. STEAM教育融合
    • 科学(图形规律观察)、技术(Python代码实现)、工程(团队分工与问题解决)、艺术(主题创意与色彩搭配)、数学(坐标计算、大小比例、循环变量规律)的跨学科整合;
    • 强调“过程性创造”,而非单一结果,符合STEAM“动手实践+创新应用”的核心。
  4. 自我决定理论:通过小组命名、主题自选、分工自主,满足学生的自主性需求;互评中的正向反馈(如“创意之星”)增强归属感与胜任感,激发内在学习动机。