https://www.instructables.com/id/Hour-of-Code-Make-Patterns-With-Code-and-CAD-in-Ti/?mktvar002=1034940
本文是Autodesk Tinkercad团队为了支持‘Hour of Code™’ 一小时编程而准备的参考资料之一。
‘Hour of Code™’编程一小时是一个世界性的活动,由Computer Science Education Week(https://csedweek.org/)以及Code.org (https://code.org/)发起,旨在向数百万学生介绍一小时的计算机科学和计算机编程。它可以在每个学期的任何时间段进行,不过建议在2018年12月3日至9日之间的计算机科学教育周进行。
推荐年级:
3-5年级学生
教授的技能:
- 解释如何通过各种不同的图形组合以及代码块组合来实现模式(阵列)
- 创建包含循环的代码
- 修改或者将现有的程序一部分合并到现在的设计中,以便创建一些新的设计
- 使用代码注释来描述程序开发过程中所做的选择
课程介绍:
如何使用有序的和无序的工作来形成一些美妙的设计?模式(阵列),重复和有一定的节奏在设计中有什么相似之处?它们又有哪些不同之处呢?在本课中,您的学生将在代码的上下文中探索所有这些问题, 同时还可以制作一个很棒的茶灯架或者可以用来分享的GIF动画。
在本节课程中,学生们将会:
- 学习利用代码来查看如何可视化创建阵列,并查看当随机性被应用到逻辑性代码中时会发生什么。
- 学习关于重复,阵列和节奏的知识,以及这些概念中的一个或者多个如何与计算机科学和其他STEAM研究领域相关。
- 分析和讨论现有的可用于制作真正的茶灯架或其他东西的阵列。
- 结合CAD和编程来做一些很酷的东西去分享。
预计教学时间:
60分钟
资料:
- 计算机,网络,Tinkercad(免费,易用,在线3D建模软件),
- 3D打印机(可选,但是很有用),
- 一些彩色的可用于Codeblocks编程的图片
步骤1: 围绕编程引入一些实际案列(可选)
为什么建筑师,工程师或者计算机科学家像画家或者诗人?制作某些阵列图案是他们的共同点。
在数学中,寻找模式(阵列)是非常重要的。模式使得任务更简单,因为问题在同样的模式下更容易被解决。一旦我们识别出一种模式,我们就可以在该模式存在的任何地方使用相同的问题解决方案。
在写程序时,就像数学一样,模式是由很多不同想法产生的。数学家和计算机程序员使用模式来表达他们自己,并使它们的工作更有效率。例如,他们可能使用循环来允许多次重复一段代码。
在一小时编程前要探索的事情
‘Hour of Code™’编程一小时背后的灵感是为计算机科学“去神秘化”,以此表明任何人都可以学习基础知识,并扩大在计算机科学领域的参与。
在本课开始时,您可以放这个幻灯片(幻灯片可在原文末尾下载),其中包括图形和一些关键词的定义,比如:重复,模式,节奏,循环和变量。
一些老师选择通过分享一个短的鼓舞人心的视频,与学生们一起开始一小时编程活动。有些老师在实际编程活动之前的一个小时的课程中预先教关于编程的相关信息。也有一些学校或者团队的老师会在一小时编程前组织一天甚至一周的跨学科活动。
本节课所包含的幻灯片可以适当地结合科学,数学,人文或艺术进行讨论。
根据您的学生对笛卡尔坐标系的熟悉程度,在开始使用Codeblocks之前对其进行一些回顾也是很有意义的。即使他们之前使用过像Scratch这样的基于代码块的编程程序,Z轴也可以是一个供他们学习的新的(而且令人兴奋的)概念。
在课程结束时,您的学生可以导出他们设计的GIF动画,甚至可以3D打印他们用Codeblocks创建的具有一定模式(阵列)装饰的茶灯架。
最重要的是,他们在整个编程活动中可分享他们的计算思路,并且通过编程可让他们利用这种思维方式来扩展他们的创造力!
这一课程与CSTA K-12CS标准和学生的ISTE标准相一致。
https://www.csteachers.org/page/standards
https://www.iste.org/standards/for-students
从熟悉的地方开始
教学生关于模式的知识,在本质上是有趣的和可行的,因为模式无处不在。它们可以在自然界中找到,也可以由人类制造——它们可以在花瓣、淋浴头上看到,也可以在家庭中作为装饰品。
因为重复,模式通常很容易被识别,但是制作一个模式——或者甚至描述它是如何被制作的——需要更深层次的思考。
模式是以不同的方式创建的,例如,在自然界中,模式通常是由于压力而形成的;而在建筑结构中,“模式”(如门或窗)通常是从人们在环境中逐步演变而来的。(在幻灯片上阅读更多有关这方面的内容)
有时,设计师使用受自然启发的图案——比如蜂巢图案(蜂巢图案又源于蜜蜂的习惯)。
准备好在CAD中开始编程了吗?!
下一步将进入本课的编程部分。如果您认为在开始使用Tinkercad Codeblocks时可能需要额外的支持,请跳到步骤8,先了解一些技巧和更多资源。
即使您和您的学生只在第一个小时完成下面第二个步骤,但只要每个人都玩得开心,学到一些新的东西就可以了。后面还有很多时间来跟CAD结合编程!)
步骤2:给学生们一些代码来体验
学生们最爱的莫过于一团糟(小编注:哈哈,这是不是说无序有时候也是很美好的?)。这对成年人来说也很有趣。比如:看看下面有趣的烟花表演…感觉停止不下来看它们了。
在与学生讨论模式的概念以及如何使用它们之后,请他们直接在Tinkercad中使用Codeblocks尝试吧。
一旦他们登录Tinkercad后,他们可以从主页的个人资料图像下面选择Codeblocks(代码块)。在下一个屏幕上,他们应该选择“新设计”。
当它们位于Codeblocks编辑器界面时,它们可以复制下面的脚本来生成疯狂的、随机的形状。
提供一些指导和结构
当学生们第一次探索Codeblocks时,建议最好让他们两人一组,这样他们就可以检查彼此的错误,并讨论他们注意到每个块在做什么。(这也意味着当您也在学习的时候,需要回答的问题变少了!)小编注:两位学生结对编程噢。
提示:
- 学生可能会发现从他们拿到的图片中复制脚本有一点棘手,实际上一旦将一个形状添加到代码中,就会出现“添加”一词,以及用于改变颜色或将形状变成空心的设置也会出现。而且鼠标点击某个代码块后,利用常用的Ctrl+C复制代码块,再用Ctrl+V粘帖代码块,试试看吧。
- 如果您在纸上预先打印Codeblocks代码,建议最好使用彩色打印。如果现实中不方便彩色打印,您可以给学生共享存放Codeblocks代码的图像文件夹,并且让一对学生可以在一台计算机上打开代码图片,而他们使用另一个计算机进行编程。如果每个学生没有一台笔记本电脑,也可以调整浏览器窗口,以便Tinkercad和图像文件在浏览器两个页面上同时打开。
- 鼓励学生给他们创造的每一个新的物体(对象)命名。这不仅是一项在CAD中很重要的良好组织技巧,而且使得将数据插入Codeblocks更加容易。
一旦他们把上面所有13个块都做好,告诉他们通过点击播放按钮来运行程序。
在运行一次代码之后,他们应该再运行几次。他们应该能注意到由于随机块造成的差异。
然后,学生可以讨论他们注意到的东西,比如:用重复、模式和节奏之类的语言来进行猜测。
在第一轮对话之后,通过切换不同的形状来鼓励学生玩Codeblocks。
需要一些音乐来调节气氛吗?想想像在爵士乐这样的音乐背后来思考数学是很有趣的。也许学生们会在他们听到的声音和代码中的内容之间建立联系。
评估和分享
鼓励学生修改和重新组合Codeblocks并告诉他们不要担心可能会出现什么问题!他们总能改好的。他们的设计也将保存在他们的Tinkercad帐户中,以便他们后面想回来进行更多的修改。
您可以在教室里来回查看,并向学生们提问来作为评价的一种手段之一。最重要的是,他们有机会发挥想象、设计和分享他们的思路。
根据学生的年龄水平、以及对基于代码块的编程的熟悉程度和参与活动的程度,您可以扩展这种探索,并暂停下面的步骤直到下一次上课。
为了在课程结束时检查学生们是否理解到了,您可以让学生向代码块添加注释,这些注释将用来解释关于现有设计中的代码块正在做什么,以及他们在修改程序时的选择。他们还可以导出他们设计的GIF来分享他们的作品。请参见步骤3和7获取更多信息。
步骤3:建立一个形状并解释代码正在做什么
在学生们陶醉于上次用Codeblocks代码来控制混乱之美后,是时候创建一些有序的内容了!
因为用代码编程设计模型的过程更加线性和按顺序执行,所以它需要不同于学生在Tinkercad传统3D建模环境中使用的思维方式。这意味着,学生们将充分运转他们的大脑,以便使他们在设计选择上更加深思熟虑,在思维过程中更加抽象。
重要的是,改变思维方式是一件好事,并且编程是一种对所有类型的思考者来说都是有趣、有创造性和有益的活动。
选择一个形状
第一步是让学生选择一个他们想用来做阵列(模式)的形状。本课原文末尾可下载的PDF和图片文件夹包括Codeblocks代码,用于制作具有星形和四面体形状的模式。
您可能还要求学生复制本步骤开始时所呈现的复杂形状以用于他们的模式,或者创建他们自己的形状。
使用代码注释
当您的学生通过遵循提供的Codeblocks代码(或者通过制作自己的形状来修改它)来构建他们的第一个形状时,建议他们应该使用Step逐步运行按钮(Play播放按钮旁边)来分析每个单独的代码块正在做什么。他们也应该通过添加注释代码块来记录他们的想法,类似于下面的图片。
注释块可以在代码块面板的Markup标记部分中找到。
鼓励学生至少为第一个Codeblocks代码添加注释。
步骤4:创建一个圆形模式(阵列)
一旦学生有了他们的第一种形状,他们就准备开始建立他们的圆形模式,这将形成整个图案的基础。在制作这种模式时,您的学生将使用循环和变量。
在开始这个关键时刻之前,您可以向学生展示这个步骤上面这个GIF动画,以便提供一些指导,帮助学生理解如何在代码中使用循环模式。这也包含在幻灯片中。
想从机械工程师Deanne Bell 迪安·贝尔那里了解更多3D建模概念,请观看由她创建的项目 https://www.futureengineers.org 里面创建全部视频。
根据您观察学生们在您要求下写代码注释的时的愉悦程度,您可能不用让他们每行代码都写注释,而只是要求他们在代码的末尾编写至少一个注释来展示他们如何做到圆形阵列的。(提示:一小时编程应该是很有趣的。)
由于我们发现逐块编写代码注释非常吸引人,因此在上面我们为您提供了方便的备忘单。本课原文结尾处的Codeblocks代码的PDF和图像文件夹包括没有注释的脚本,供您与学生分享。(而且还有一个供您下载的备忘录。)
步骤5:创建矩形模式(阵列)
准备好更进一步学习了吗?下一步是让学生创建四行圆形的矩形图案。先看看上面GIF展示的是Deanne Bell演示如何创建矩形模式的。
改变颜色或将复制一个物体并变为空心确实有助于逐步了解代码正在创建的内容。
我们还包括了下面的代码注释。
步骤6:给茶灯架添加这个模式
至此,您的学生已经熟练地将代码和CAD混合成他们想要与世界共享的美丽模式。他们怎样才能把这些模式变成现实呢?这样做的一种方法是将他们创作的图案添加到可以被3D打印的茶灯架上。查看下面的步骤了解如何做到的。
如果学生对图案中所使用的形状太有创造性了,那他们可能需要对他们的设计做一些调整,以便图案能恰当地配合在茶灯架上;但如果他们使用星形或四面体形状,应该很适合!
还要确保您的学生改变他们的圆和矩形图案为空心,然后把它们添加到茶灯架。所有的代码都在原文最后面可以被下载到。
提示:
在茶灯架的制作过程中,被拆分成了多个对象进行创建,并且组合操作。
步骤7:创建GIF动画
为了得到更多及时的满足感,您的学生也可以录制GIF展示他们的代码与CAD结合的创作。这可以在Tinkercad Codeblocks编辑器中通过点击Share分享按钮,然后在下一个屏幕中选择“Save Gif”保存GIF动画来实现。确保您首先在Codeblocks编辑器中运行它。(注意:GIF打包和下载需要几分钟。完全值得等待!)
提示:
在保存GIF动画前,可以调节浏览器窗口大小,以及在点击保存GIF后和在它运行代码的过程中,按您的需要使用鼠标操作旋转画布或者放大缩小画布,这些都能让您保存的GIF动画更能体现您想展示的内容。
而且一定要提醒学生在他们制作GIF之前把下面的代码加到他们的程序的末尾,这样所有的东西都能正确地被组合,以及重复的对象被成功删除……
学生还可以在程序结束时添加消息块,从而与您交流在一小时编程里所学到的内容。
作为因学生们而感到自豪的老师,您也许在得到他们的允许后来分享他们的成果 ——本着“解密编程”的精神(如果你在社交频道上发表文章,请标上“Autodesk Tinkercad”,这样我们就可以和您以及您的学生们一起开心了!)这也是我们的第一个一小时编程尝试^_^)
步骤8: 从Tinkercad Codeblocks开始
如果这是您第一次教一个集成CAD和代码的课程,这里有一些有用的提示可以帮助您开始:
- 查看Tinkercad Codeblocks 页面
- 探索Codeblocks的开始项目
- 观看Tinkercad爱好者制作的视频
- 不要把它想得太复杂了
更多提示来自我们强大的Tinkercad社区里用户的分享,比如:
步骤9:庆祝!
太棒了!您做到了。或者,也许您还没有,但您来这里是为了获得所有资源,来帮助您的学生一起完成这很有趣的编程一小时。
在这个步骤的最后是PDF,您可以打印我们使用的Codeblocks代码、教学笔记,并为您的学生打印证书!
还有,别忘了幻灯片。
庆祝活动结束后,请再次来我们这里,留下评论或分享同学们的作品,让我们知道活动进展如何吧。
https://www.instructables.com/id/Hour-of-Code-Make-Patterns-With-Code-and-CAD-in-Ti/?mktvar002=1034940
关于Autodesk Tinkercad
Tinkercad是Autodesk(欧特克)旗下的一款面向大众的在线免费软件,集3D建模,电子电路设计,以及编程于一个软件平台。全球有近1200万免费注册用户。
登录https://www.tinkercad.com,免费注册一个账号,开启您的CAD+Code的新体验吧!
欧特克Tinkercad公众号
领取专属 10元无门槛券
私享最新 技术干货