我对中小学创客教育、STEAM教育和人工智能教育的一些思考及编程课的若干困惑
大家好,今天想跟大伙儿聊聊自己对中小学创客教育、STEAM教育以及人工智能教育的一些思考和关于编程课的一些困惑。
创客教育、STEAM教育和人工智能教育这几个概念在最近几年挺火的,很多名词层出不穷,概念的更迭速度越来越快,相关内容也越来越杂。我作为一名普通的信息技术老师,从一开始的一无所知到逐渐了解再到实际开课,也有三年多时间,最近也陆续参加了一些相关的会议,一时兴起就想跟大伙儿聊一下这个话题。不知道有没有感兴趣的朋友们愿意一起探讨一下?
按百度百科的说法,创客教育是一种融合科学、技术、工程、艺术、数学等知识与技能,遵循自由开放、创新创意、探究体验的教育理念,是一种以实践创造学习为主,培养创新型人才的新型教育模式。STEAM教育是集科学,技术,工程,艺术,数学多领域融合的综合教育,也是一种教育理念,有别于传统的单学科、重书本知识的教育方式,STEAM是一种重实践的超学科教育概念。至于人工智能教育目前还没有一个特别明确的概念界定,百度上说人工智能教育是指人工智能多层次教育体系的全民智能教育,涵盖在中小学阶段设置人工智能相关课程,这个表述其实挺模糊的。
其实上面的三种说法我都认为比较抽象,从我个人的理解来看,创客教育的相关课程就是让学生学习造物——会利用各种材料设计和制作实物,让学生动手制作各种物件,从而锻炼他们的动手能力,培养他们的创新意识。具体内容包括但不限于传统的手工、科技制作、木艺、陶艺等,但现在更侧重于让学生学习使用Arduino、掌控板等开源硬件以及3D打印机、激光雕刻机等信息化工具,再加上程序的编写去完成一些更富有科技含量的作品。由于创客教育的内容广泛且相对比较独立,因此一些内容能够拆分成一个个单独的教学版块去开课,如科技制作课、航模课、编程课、机器人课等等。当然,也可以把有关联性的内容整合成一个综合性课程。
STEAM教育在概念上和创客教育很像,也是一种新型的教育理念,但它更强调跨学科融合,注重采用项目式学习的方式,用完成某一项目作为驱动力,调动学生的积极性和参与度,培养学生主动学习意识。因此但凡在课程设计时就考虑了多学科融合的课都可以称为STEAM教育课程,其具体内容也很广泛,如不需要使用信息技术的桥梁设计与制作和需要借助智能硬件与编程才能完成的自动售货机等项目都可以作为STEAM课程的内容。
那么STEAM教育与创客教育的区别又在哪里呢?我认为主要还是课程理念上的差异,创客教育的具体内容主要是“做”,虽然要做肯定也要学,但做是其教学内容的主体,也是目的,而STEAM教育的内容是强调在做中学,做只是过程和手段,多学科知识的学习和应用才是教学目的。
所以,STEAM教育可以算是创客教育的升级版,不过这并不意味着STEAM教育就可以完全取代创客教育。毕竟针对低年级的学生,一些动手制作的内容还是有一定难度的,所以要真正让STEAM教育落地,需要创客教育先去做一些铺垫。当然,如果条件允许、时间充裕,创客教育和STEAM教育的课程在设计时前后衔接,在教学中融会贯通,最终打造成一个完整的教育体系将会有更进一步的发展。
人工智能教育是个全新的事物,这两年其热度越来越高,但稍微对人工智能的概念和技术有所了解的人都知道,真正的人工智能教育所包含的课程内容较之创客教育和STEAM教育的内容要深得多,也复杂得多,现在想要开这方面课程的学校不少,但真正能开进来的似乎不多,有些机构甚至直接把原来的创客教育或者STEAM教育的一些课程包括机器人的一些课程重新包装后就叫做人工智能课程了,这是大错特错的。
当然,也有一些人说现在中小学开展所谓的人工智能教育更多就是一种噱头,毕竟这里面涉及的知识别说一般的中小学生无法理解和掌握,就是很多信息技术老师可能一时半会儿都搞不明白。但不管怎样,随着越来越人和企业、机构参与其中,相关技术进一步完善,人工智能教育的产品越来越丰富,相信不久的将来,人工智能教育也会慢慢落地,开花结果。
早在2017年,我所在的学校就开始探索创客教育,具体开设了创意编程课、机器人课、无人机课、科技制作课等课程,在19年又开始尝试STEAM教育,选取的饲虫盒、喂鸟器、造纸术、航空器、过山车等项目也很受学生欢迎。这些课程的研发和开设,我都有幸参与其中,因此也有一些自己的体会。
首先,无论哪种教育理念或模式,要想落地,必须落在课程上,而课程要体现出理念的先进性,那么从研发到开设又是一个系统性的工作。简单来说,领导是前提、课时是保证、老师是依托、内容是关键。
没有学校领导的重视和支持,一没场地、二没设备、三没课时,课根本开不起来。有了领导的支持,课开起来了,课时要有保证,不能像一些“副课”一样总是被占。课能正常上了,内容如何设置,进度怎么安排,学生如何调动,当然全看老师。而真正能让课程体现出特有的意义和价值的关键就是课程内容本身。
以我具体负责的编程课为例,这教学过程中,我就深刻感受到面对中学生的编程课和社会培训机构针对社会人员的编程课是迥然不同的,我们不是在培养未来的职业程序员,而是教学生能够借助编程这种天然具有创造性特点的工具去实现自己的各种创意想法。所以在课程内容设置上,一定要以激发学生的兴趣和培养学生创造性思维为主要指导思想,绝不能只是单一的编程知识的灌输或技能训练。另外,还要有层次性、系统性和契合性。
所谓层次性就是内容要符合学生的认识水平,不同年龄段的学生学习的深度不一样;所谓系统性则是从小学到高中,学生的学习内容要前后关联,不能割裂开来;所谓契合性就是不同的学生的兴趣点不一样,喜欢硬件制作和喜欢软件开发的学生的学习内容也要分开。
一般来讲,面对零基础的学生,采用Scratch入门,学习一段时间以后,喜欢硬件的学生可以学习Arduino、掌控板等开源硬件,编程方面既有图形化的Mixly、Linkboy等工具,也有C、Python等语言,而喜欢软件开发或者游戏开发的同学可以学Python、C#等语言,或者Unity等工具,不要搞一刀切。
不过,设想虽然美好,但实施过程困难重重。既有时间上的问题,也有个人原因,因此在课堂的组织形式上,我尝试采用项目式教学的方法,鼓励学生自学或合作学习。
至于项目式教学又是另外一个话题,以后有机会再聊。
上面就是我对于创客教育、STEAM教育和人工智能教育的一些粗浅的思考,不知大家怎么看?
下面就是编程课的一些困惑,主要是在编程语言的选择和内容安排上。前面说过,采用Scratch语言入门几乎没有争议,但Scratch本身要学多深?在Scratch之后又学习什么语言?可能不同的老师会有不同的想法。
先说Scratch的学习,结合我这几年的实际教学经验来看,学生们零基础入门时学Scratch是挺好的,但是否要在Scratch这个语言身上花很长时间去研究?这是个值得探讨的问题。另外,学完Scratch之后,就否要马上开始学习Python?也要好好思考一下。
对于Scratch的学习,我个人认为,绝大多数学生而言是不必过于深入研究的。原因有二点,一是这种图形化编程语言天生不适合开发复杂的大型程序或游戏。虽然在一些论坛有很多大神开发了“大作”,但当我们打开代码界面时,那眼花缭乱的图形化代码还是挺吓人的,而且我们不知道按什么顺序去读,那么多角色和变量列表,它们的内在逻辑关系究竟是怎样的。二是即使你通过一番努力研究Scratch很深入了,但你最终要用Scratch做什么呢?真的用它去开发游戏和程序吗?我想稍微对Scratch有所了解的人都知道这种想法不说不现实,至少不明智。
然后就是Scratch之后的语言选择上,目前绝大多数学校和机构都选择Python,也有学校开设了C++等内容——主要是为了参加信息奥赛。其实选择Python,当然与它的各种优点是分不开的,但如果所有学校都只选这一门语言,就有一些问题了。
我曾经也让学生们在学完Scratch就马上开始学Python,但渐渐地,我感觉问题很多。初高中生可能还好,但小学生学Python,难度还是比较大。且不说Python的全英文的代码编写模式会让相当一部分学生不太好适应,仅仅只是前期相对枯燥的语法学习就会让很多学生打退堂鼓,至少在我的教学尝试中,在教完Scratch后开始教Python,很多学生在硬着头皮听了几节课后,普遍表示不太容易接受。
所以,我们是不是应该把眼界再放宽些?要知道除了Python,还有很多编程语言我们也可以试一试。比如被很多专业程序员看不起的易语言,它曾经也有过走进学校课堂的历史,当前的使用它的人数也相当庞大,这个语言可能在一些专业人士眼里有些落后,但从教学的角度来看,这门语言还是有它的闪光点的。又比如能比较容易开发窗口程序和写游戏的C#,有VS的加持以及它和Unity3D的关系,很多业余程序员和独立游戏开发者都非常乐于学习它。这些语言在我个人看来,它们教学上的优点也很突出。只要我们在内容上进行一些整理,也许能够很好地使用它们帮助中小学生学习代码式编程。关键就在于学生们能够学有所用,在学习了一段时间后便可以开发出自己的小软件或者小游戏,这种成就感是满满的。
当然,就算一定要学Python,我们就要在内容上进行深度挖掘。这门语言很容易学,功能也很强大,更是人工智能领域的首选语言,但面对中小学生,我们应该教什么?可能很多老师一开始会使用内置的turtle库去教学生画图形,熟悉Python的语法,后期再用Pygame或者Pygame Zero做做小游戏,可再后呢?可能就没有然后了。上述内容固然有趣,但同样是做游戏,可能更多的学生还是愿意选择Scratch。那么教学生写爬虫怎么样呢?实用虽然实用,可那涉及的知识点一下子就多了起来,不仅有相关库的知识,网络协议等知识点的学习也会让很多学生感到头痛。
所以到底应该如何安排Python课程内容?希望有想法的大神们给我一些指点。
今天杂七杂八地说了那么多,都是想到哪儿就说到哪,其实我真正的目的是在和大家交流的同时更是希望得到大家的指点和帮助。中小学的创客教育、STEAM教育、人工智能教育还有编程课,希望有更多的一线老师来说说自己的观点,也许在交流的过程中碰撞出的思维火花能够帮助我们更好开展教学。

