<h3><font color="#808080">“科学是条理的知识,智慧是条理的人生。”</font></h3><h3><font color="#808080"><br></font></h3><h3></h3><h3></h3><h3><font color="#808080"></font></h3><h3><font color="#010101">今天这篇文章主要介绍目前我整理总结的课程体系,内容以概况和论述不同课程部分的链接关系。更多关于某一门课程的细节,还请点击相关链接跳转的对应文章。</font></h3><h3><font color="#010101"><br></font></h3><h3><font color="#808080"></font></h3><h3><font color="#ff8a00">课程体系来自何处</font></h3><h3><font color="#010101">从2015年开始,我一直在业余时间教授机器人,编程课程,教过的学生从10岁到16岁。根据课上的经验和青少年编程教育目前的发展,在最近一年总结提炼了课程体系,形成了以下课程网络图。并且,对之前教过的内容进行了改编升级,并且在新开的课上收到了不错的反响。</font></h3><h3><font color="#808080"><br></font></h3> <h3>接下来,我结合课程网络图进行具体阐释。课程的设计围绕核心思想是STEAM的概念。</h3><h3><br></h3><h3></h3><h3><font color="#ff8a00">什么是STEAM</font></h3><h3>STEAM从字义解释,是科学(Science)、科技 (Technology)、工程(Engineering)、艺术(Arts)、数学(Mathematics)的缩写。它延续自2009 年起美国以国家的力量推广的STEM教育,希望从融合科学、技术、工程、数学的知识来打造科技创新的新一代公民,并提高国家的竞争力。</h3><h3><br></h3><h3></h3><h3><font color="#ff8a00">具体到课程体系</font></h3><h3>我设计的课程体系以编程(Coding)作为主线,穿插软件和硬件领域的应用,直接联系科学(Science)、科技 (Technology)、工程(Engineering)三个核心,间接穿插艺术(Arts)、数学(Mathematics)内容。从图中可以看到,编程课程有两个组成部分,block-based coding(模块化编程)和text-based coding(文本编程)这两个部分主要针对不同年龄段的学生。</h3><h3><br></h3><h3>block-based coding(模块化编程)主要为11岁以下低龄一些的学生设计,学生通过模块化的编程工具例如Scratch,LEGO EV3,来学习编程思路和逻辑,虽然编程过程看起来简化不少,但是其中涉及的思路和逻辑与text-based coding(文本编程)相差无几。在学习block-based coding(模块化编程)的过程中,我会使用Scratch等优秀的软件作为授课工具,也会结合其他软件工具和硬件产品制作应用项目,让学生在制作项目的过程中体会应用所学的乐趣,甚至能将所学内容应用到自己的创造之中。这里我就不得不提一款目前我认为很优秀的机器人产品,LEGO乐高EV3,产品本身有非常灵活多变的硬件,可以制作功能复杂的机器人,而且自带的模块编程工具也是非常好的教学材料。此外这款机器人有非常强的延展性,也可以通过改变内带固件,将编程环境转换为text-based coding(文本编程),作为另一个阶段的教学工具。更多关于block-based coding(模块化编程)的具体课程,我会在单独的文章仔细讲解。</h3> <h3>block-based coding(模块化编程)举例</h3> <h3>编程的另一个阶段就是text-based coding(文本编程),也就是基于编程语言的代码。在block-based coding(模块化编程)阶段,无论授课的重心是偏重于软件还是机器人,最终的目的都是帮助过度到text-based coding(文本编程)。text-based coding(文本编程)课程的重心是学习编程理论,训练编程思维,而不是单纯的学习某种编程语言,语言只是作为一种范本,让学生能把学的的理论结合到具体的编程语言实践。这个阶段的课程所选作为范本的编程语言有两个: Python和Java。两种语言都是非常成熟和广受关注的,都拥有庞大的用户群。两种语言没有优劣之分,只是在学习曲线上坡度不同。Java语法相对复杂一些,学生刚开始学习的坡度和难度相比Python可能会更困难一些。但是这并不代表大一点的孩子就应该学习Java,小一点的就应该学习Python。我说过语言只是教授编程的一个范本,其实无论Java还是Python,课程里面的需要教编程逻辑和思想是一模一样的,只是具体到语言实践起来会有区别。选择合适的编程语言会让学生的学习道路更加顺畅,有更好的学习体验。可以说无论用Java还是Python,最后具有的能力和到达的高度是一样的,可谓殊途同归。</h3><h3><br></h3><h3></h3><h3>当学生进入text-based coding(文本编程)学习阶段,学习可涉及的内容和领域就更为广泛了。项目方面可以穿插游戏,网页,机器人等等应用来作为实践素材。各种编程和机器人大赛也给学有所成的学生提供了更大的舞台展示自己,如果能斩获高级别比赛奖项,对学生将来的升学,大学申请有巨大的帮助。还有,对美国大学申请有兴趣的学生在有一定编程基础之后,也可以通过短时间的学习,轻松搞定AP Computer Science课程,为自己的大学申请加分。作为另一个阶段的教学工具。更多关于text-based coding(文本编程)的具体课程,我会在单独的文章仔细讲解,请点击以下链接查看相关文章。</h3> <h3>相关文章:</h3> <h3>相关文章</h3> <h3>相关文章</h3> <h3>————————————————————————————————</h3><h3>个人介绍</h3><h3>任焱(Ren Yan)</h3><h3>2018年毕业于McGill Computer Engeering, Distincted List。现全职软件开发,就职于Montreal。2014年开始面向10-16岁青少年辅导编程,机器人,AP等课程。</h3><h3>经历:</h3><h3>机器人</h3><h3>2014 至今, 乐高机器人编程课程</h3><h3>2017 FLL 机器人队伍教练</h3><h3>2019 FLL 机器人队伍教练, 魁北克省决赛机器人得分全省第二名。</h3><h3>编程。</h3><h3>2015至今, Java, Python 青少年编程课程</h3><h3>2016至今, AP Computer Science辅导</h3><h3>2017至今, CCC竞赛辅导</h3><h3>助教辅导大学课程 2015至今</h3><h3>McGill COMP202</h3><h3>McGill COMP204</h3><h3>McGill COMP250</h3><h3>Concordia COMP248</h3><h3>______________________________________________________</h3><h3>想了解我的其他的课程,请加微信关注</h3>