我正在为一位正在编写计算机编程课程的高中老师提供建议。我们正在考虑以下几个方面:
- 基于 PIC 处理器的基础电子学
- 汇编语言
- C 语言
- 使用 VEX 的机器人编程
其基本思想是确保学生有充足的机会进行实验,并了解事物的运作方式(而不仅仅是使用黑盒子)。
理念
在我评论这一点之前,我应该明确我的立场。自 1998 年 LEGO Mindstorms RCX 发布以来,我一直在高等院校中使用小型机器人进行教学。我曾担任英国地区和国家一级 FIRST LEGO League 的评委,并且我仍在为这些小型系统的 运行时 的开发做出贡献。
我的教学理念应该是真实的、建设性的和有趣的。我能提供的最短合理总结如下:
我认为好的学习体验应该是真实的、建设性的和有趣的。当学习体验反映了学习者现在和将来的需求时,它们是真实的。当学生不仅有机会创造一件作品,而且有机会建立自己对创造过程的理解时,它们是建设性的。当学习既有吸引力又有挑战性时,这个过程是有趣的。
教育工作者和学生的需求
教师工作时间长,但工资低于他们所做的工作。从早上 7 点到下午 3 点,他们要对学生负责,而且(可能)每天只有一小时的时间可以“准备”。 事实是,许多教育工作者的“准备时间”要么在清晨,要么在下班后。 许多教师会在下班后花一、两甚至更多的时间(在学校或在家中)准备第二天的课程。 同样,周末通常用于补课、评分或做其他(理论上)应该在“准备时间”内完成的工作。 简而言之,教育工作者工作很努力。
如果教师希望让学生参与课外活动或无法随意纳入标准化课程的机会,则意味着他们要投入自己的时间来为学生服务。 在开源世界中,这应该很熟悉……将时间捐赠给对个人重要的事业。 如果时间和精力的捐赠不成功,那么在进行专业评估时,仍然会对他们产生负面影响——即使这是“捐赠”。 如果学生或家长抱怨老师的努力,没有人会关心他们是否“超出预期”,他们只会关心事情是否出了问题。
因此,绝对至关重要的是,如果您要帮助老师进行某些教育活动,则您必须完全致力于在整个过程中为他们提供支持。 这不是您发送到邮件列表并希望有人接收的补丁。 这不是您留在跟踪系统中的工单,希望有人可能会做些什么。 您必须从头到尾与老师并肩作战 110%。 这样做的原因不是为了让老师过得更好:您在那里是因为它意味着学生更好的教育体验。 永远,永远不要忘记这一点。
选择技术的原则
如果您尝试将技术引入课堂或学习体验中,则必须始终遵守一条关键规则:该技术必须正常运行。 如果他们已经安装了 Windows 计算机,并且它们工作正常(并且受到管理员的支持),请勿建议每个人都启动 Sugar on a Stick 以在课堂上进行机器人技术的探索。 老师、学生或管理员都不会熟悉这些工具,如果出现任何问题,您所做的只是应用开源技术来分散学生的学习体验。 如果练习的目的是了解开源工具,那就太好了——就这样做! 如果练习是关于在编程方面取得成功,请不要混淆这个问题。 使用现有的且机构支持的工具。
其次,选择能够尽早且经常取得成功的技术。 这是我尝试应用于自己教学的口头禅。 我对这个理想的承诺是我不太尊重那些说学生应该从学习汇编语言开始,或者坚持“C 语言是我开始的地方,他们也应该这样”或者“Perl 是一种很棒的脚本语言”的人。 汇编语言应该由编译器生成。 C 语言是一种可怕的语言,它无法保护开发人员免受自身的伤害——尤其是新手。 一碗字母汤在语法上可能对 Perl 有效。 这些技术都不能从一开始就取得成功,而且没有一种技术可以支持新手快速学习大创意和概念……它们只是教给学生一些我们作为软件开发人员使用的最糟糕的工具,并要求他们尝试(和失败)在第一天就像专家一样思考。
选择学生可以学习并取得成功的技术,而不是专家在日常实践中仍在努力使用的工具。 Scratch。 Alice。 Greenfoot。 NetLogo 和 StarLogo。 这些只是为初学者设计的一些工具,如果您想(成功地)向学生介绍编程,就应该从这些工具入手。
如果您的目标是在物理领域(小型机器人或类似领域)做一些事情,那么我还有一些想法要分享。 当然,以上所有内容仍然适用。
要避免的技术
我会排除 PIC 和汇编语言。 这主要是因为 Microchip 坚持保留其工具链的部分私有,这意味着您将向学生介绍他们永远无法完全拥有的工具。 Atmel 生产非常好的处理器,并且使用 Arduino,您可以做一些非常棒的事情(此外,它拥有庞大的用户社区)。 也就是说,我会谨慎行事。 最近向 12 名大学生介绍了焊接,我学到了很多东西。 尽管创建了一套完整的视频来支持他们的构建过程,但我仍然有机会了解
- 冷焊点……
- 不良振荡器……
- 刻录丢失的引导加载程序……
……以及许多其他问题。 不良振荡器(其中一个套件中的不良组件)花了 4 个小时才诊断出来。 虽然最终这很有意义,但在 1 小时的课后计算机俱乐部(或每周 3 次的 50 分钟课堂设置)中,这将是一场灾难。 或者,也许这正是您希望学生体验的……您必须根据教师和学生的特定需求来权衡可能出现的问题和可能的学习成果。
如果教育体验的目的是学习焊接、电子学及其与计算的关系,那就去做吧! 如果体验的目的是让学生快速参与并授权他们从一开始就做一些很酷的事情,那么 Arduino 套件可能并不吸引您的目标受众。 但是,如果我的目标是探索嵌入式电子产品,这绝对是我会向学生介绍的平台。
尝试使用的技术
表达了我对不会从一开始就使用的技术的担忧之后,让我简要地谈谈一些可以在 K-12 课堂中发挥作用的技术。
IPRE Scribbler/Fluke
个人机器人教育研究所是几个学术机构和 Microsoft Research 的合资企业。 Scribbler 平台提供了一种通过 Python 编程语言探索机器人技术的工具。 支持该探索的文本和课程材料是开放的,项目中涉及的所有工具也是开放的。
IPRE 花费了多年的努力,是学习机器人技术和人工智能的绝佳开放资源。 IEEE 机器人与自动化协会 提供了许多(主要是开放的)机器人教育链接;IPRE 的工作在此列表中占有重要地位。
乐高 Mindstorms
乐高 Mindstorms 已经有十多年的历史了。 它拥有庞大的用户社区,并且背后拥有强大的工业和以用户为中心的设计。 该技术很强大,您可以快速使用它做很多事情。 我是 RCX 和 NXT 的粉丝。
两者都需要基础设施:您必须在 PC 上安装软件(套件随附的软件或基于 LabView 的可视化语言 Robolab)。 您需要一种方法在两次使用之间为套件充电——NXT 更容易,而 RCX 更难,因为后者需要 6 节 AA 电池。 (这也意味着,对于 10 个套件,您至少需要 60 节可充电 AA 电池。)您需要学生工作空间,最好是有空间来存储会话之间正在进行中的模型。
社区的重要性(我需要在这里说吗?)是因为老师可以将他们的探索扩展到学生更大的机会。 Botball 和 FIRST LEGO League 都是优秀的竞赛框架,教师可以将他们的学生插入其中。 这些类型的竞赛为从探索开始的事情提供了一种方式,使其发展成为学校的学生和教师参与的高调(和教育性,和优秀)的机会。 最后,可以从 Tufts 的 CEEO 以及通过 LEGO Dacta 获得优秀的课程。
VEX 机器人
我对 VEX 了解不多,但(在概念上)与乐高 RCX/NXT 平台有很多相似之处。 教师可以使用多种 课程资源,并且这些套件在设计时考虑了学生学习者。 与 FIRST LEGO 一样,有 竞赛 教师和学生可以参与其中,并且围绕这些工具有一个从业者社区,他们可以作为您和您合作的老师的资源。
总结
我可能有点长篇大论,但我对学生通过技术获得出色的学习体验充满热情。
像 IPRE Scribbler/Fluke、乐高 Mindstorms 和 VEX 套件这样的工具为进入 Arduino 等工具提供了一个很好的起点。 一旦学生尝到了成功的滋味并了解了可能的事情,我认为您绝对应该将烙铁拿到他们手中并放开他们。 或者,您可以从那里开始……但您需要从一开始就做好充分准备,以彻底支持他们的活动。 无论您做什么,请记住:关注学习者的需求,并努力鼓励尽早成功,经常成功!
9条评论