首 页 中心概况 新闻动态 教育视线 学术研究 资源中心 友情链接 华东各类活动获奖证书查询下载
您现在的位置:首页 > 教育视线 >正文
对STEM课程热的“冷思考”
作者: | 发布时间:2018-09-09 | 来源:华东青少年教育研究与发展中心 | 点击数:5

编者按:

笔者总结了观摩过的多堂STEM 课程,绝大多数可以概括为清一色的“动手的物理课”,物理知识为主,少量的动手能力,极少对工程、数学和技术提出要求,即使有,也是极为简单的涉及,学生根本不用思考、学习、探索,他们甚至一拍脑袋就可以想明白。

笔者在各种现场详细采访过23位学习者,有相当部分学生表示任务过于简单,所能用到的知识均是低级和浅层的。这其实也反映出,我们混淆了STEM课程和物理实验课,物理实验课主要是验证假设,而STEM课程是建构一个完整的新产品,是无中生有,充满不确定性,方法和路径都是完全没法预设的。

 

当下,STEM课程在国内风生水起,成为各中小学名校的“宠儿”。这一教育项目起源于十多年前的美国,它将科学、技术、工程和数学进行了有机整合, 对学生的许多基本能力及综合能力提升有十分明显的作用。

笔者在台湾大学学习期间就十分关注这类课程,观摩研究过台湾各地的多堂STEM课程,在北京任职后也观摩了内地大城市的多堂STEM课程。

让我失望的是,我认为绝大多数STEM课程都没有达到其应有的目的。仔细分析我发现, STEM课程的很多原则并没有得到贯彻。我所见的STEM课程均是形式大于实质,很多一线城市的中小学名校都是抱着“开比不开好,开了就是好”的观念开设这门课程的,并没有理解这门课程的本质。

1

首先是水土不服。STEM课程的引进,缺乏对我们的社会文化和教育背景的考虑,我国大陆地区和台湾地区的多数学校对此均没有做好足够的准备,匆忙上阵。

我们中国人的价值观、人才观、成功的理念与课程发源地有很大的不同,我看到很多国外优秀教师指导STEM课程并没有能激发起中国孩子的足够兴趣,其中很大的原因就是在这里。

再有就是教育背景的差异,STEM课程对于学习者的原有教育背景是有一定要求的。笔者在两岸各地都了解到,有相当一部分学生认为STEM课程比较折腾,没有太大意思,背后的主要原因在于开课之前需要对孩子进行报告书、方案书写作和自主调查能力等方面的先期培训,正 是这方面能力、兴趣的缺乏致使很多孩子比较抵触,而这些能力在课程的发源地都是学习者已经具备的。

2

其次是很多课程跨学科学习形同虚设。在笔者观摩STEM课程中有一个共同的特征,就是都有一个确定的主题。这些主题大多来自生活中的案例和情境,但围绕这个主题,就一定会有一个主轴性质的学科在做支撑,其他学科几乎没有涉及,问题或任务的开放性差,教师的设计思路窄且缺乏宽广的眼光。

主题是影响跨学科学习效果的最重要因素,如果这个主题狭隘,那么就不可能有跨学科学习。比如笔者观摩的一堂STEM课,主题是制作一个“投石机”,在这个主题下,你可能需要用到一些物理学知识和较少的技术能力,甚至这里面的技术都谈不上能力,只需要一些日常生活经验即可,对工程、数学领域的诸多学科几乎没有涉及。

如果没有把握自己的主题是否能够产生宽广的跨学科效果,那么你最好就设置一个方向性的主题,而不是一个太过具体的主题,使学习、实践不再受限于你所确定的主题。

笔者总结了观摩过的多堂STEM程,绝大多数可以概括为清一色的“动手的物理课”,物理知识为主,少量的动手能力,极少对工程、数学和技术提出要求,即使有,也是极为简单的涉及,学生根本不用思考、学习、探索,他们甚至一拍脑袋就可以想明白。

笔者在各种现场详细采访过23位学习者,有相当部分学生表示任务过于简单,所能用到的知识均是低级和浅层的。这其实也反映出,我们混淆了STEM课程和物理实验课,物理实验课主要是验证假设,而STEM课程是建构一个完整的新产品,是无中生有,充满不确定性,方法和路径都是完全没法预设的。

一个例子就能很好地说明,“热量是如何散失的”是一个物理实验题目,而“如何使一栋模型房屋更能保温”则更接近STEM课程的要求。STEM课程最大的特点是不确定性,老师有开放的态度,要习惯在没有预设教学路径的前提下“遭遇”STEM课程。

反观前文所述的“投石机”,很多老师其实心中都已经有了成品的模样,不过就那么几种样式,学生如若制作出新花样反而会令他们不安,不知如何评价,更不知如何指导。

STEM课程在组织实施过程中也有很多变形走样。首先是课时过少、过短。由于STEM课程的系统性和指向性很强,完成一个产品或任务,从情境到方案,从小组分工到制作,从产品雏形到后期优化美化,至少要3~4 课时,这是最短的,很多都会达到8课时甚至更多,很多有兴趣的孩子还会主动搭上自己的课余时间,只有这样才能让学生充分沉浸其中,把各种知识、能力搞清,再把它们之间的关系想透,最终完成一件完美的成品。

而笔者在我国台湾及大陆学校观摩的STEM课程,由于课时问题,几乎都做不到这一点。有堂“自动感应的饮水器” 课程,从常识来看,饮水器的设计制作在科学上一般会涉及普通物理学、流体力学、人体工学、艺术设计学、电学、磁学等知识,虽然对数学的要求略弱,但技术和工程领域的要求却极高。本打算看到一堂优秀的课程,但令人失望的是,这堂课学习者的任务最终只是用纸画出一个饮水器和描述其功能就到下课时间了。根据笔者对STEM课程教师的采访,他们一致认为至少需要半天时间,才能发挥 STEM课程的最佳效果。

3

还有就是课程性质定位偏颇。STEM课程自一开始就旨在培养学生的实践能力和解决问题的能力,训练这方面的思维。但由于每个个体在能力、兴趣、人生意向上的客观差异是明显的,因而STEM课程并不适合每个孩子,这一点也就决定了其不适合作为必修课开设,而是应该作为选修课,面向喜欢动手、设计能力强、有理工方面意向的孩子开设。作为必修课开设,是浪费教育资源。

再者就是专业资源配备不足。STEM课程是以产品作为最终呈现的一种课程。因此,在完成产品的过程中,需要大量的工具和资源以及平台作为支撑。然而在我国大陆地区及台湾地区开设的STEM课程,不仅没有配备专业教室,而且连最基本的工具都较为缺乏。笔者在一堂“制作降落伞”的STEM课上惊讶地发现,课上连裁纸刀都没有。

最严重的问题当然还是缺乏本土教师。众所周知,教师是课程的核心。笔者所见,无论是我国大陆地区还是台湾地区,STEM课程大多是由外籍教师执教的。笔者的忧虑在于:如果做不到STEM课程教师的本土化培养,那么STEM课程就一定不可持续。

再有,据我与孩子们的交流得知,他们更加看重的是如何发现一个问题, 而不仅仅是解决问题。而在我们的STEM课程中,往往都是由教师提出问题,而不是教孩子们去发现问题,这方面是不是也需要改进呢?

 

注:文章转载自“教师博阅”,作者余国志,北京市北京中学教师,教育学博士。

返回到顶部
服务专区
交流评选申报
问卷调查
数据库填报
推荐·关注 更多>>
儿童为本 共生共创 ——2018年度华东... 2018-11-29
2018年华东校外教育中青年骨干教师交... 2018-09-27
2018年度华东校外教育学术年会 暨“... 2018-09-15
学而知疏 求则思进 ——记少年宫系统... 2018-09-14
2018年校外教育短期课程设计交流活动... 2018-09-08
2018年校外教育论文交流活动评审结果... 2018-09-08
专业引路,星火燎原 ——少年宫系统... 2018-05-03
关于开展校外教育STEM项目文案征集活... 2018-03-14
友情链接
FreeMarker template error (DEBUG mode; use RETHROW in production!): The following has evaluated to null or missing: ==> link_index [in template "WEB-INF/t/cms/hd/hd/include/left.html" at line 91, column 29] ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use [#if myOptionalVar??]when-present[#else]when-missing[/#if]. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign j = link_index + 1 [in template "WEB-INF/t/cms/hd/hd/include/left.html" at line 91, column 17] - Reached through: @cms_content_list titLen="14" channel... [in template "WEB-INF/t/cms/hd/hd/include/left.html" at line 90, column 7] - Reached through: #include "../include/left.html" [in template "WEB-INF/t/cms/hd/hd/content/news.html" at line 81, column 50] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:451) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:374) at freemarker.core.AddConcatExpression._eval(AddConcatExpression.java:78) at freemarker.core.AddConcatExpression._eval(AddConcatExpression.java:56) at freemarker.core.Expression.eval(Expression.java:81) at freemarker.core.Assignment.accept(Assignment.java:134) at freemarker.core.Environment.visit(Environment.java:362) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:263) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:200) at freemarker.core.Environment.visitIteratorBlock(Environment.java:595) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:81) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:67) at freemarker.core.Environment.visit(Environment.java:362) at freemarker.core.Environment$NestedElementTemplateDirectiveBody.render(Environment.java:2727) at com.jeecms.cms.action.directive.ContentListDirective.execute(ContentListDirective.java:70) at freemarker.core.Environment.visit(Environment.java:426) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101) at freemarker.core.Environment.visit(Environment.java:326) at freemarker.core.Environment.visit(Environment.java:332) at freemarker.core.Environment.include(Environment.java:2505) at freemarker.core.Include.accept(Include.java:171) at freemarker.core.Environment.visit(Environment.java:326) at freemarker.core.Environment.visit(Environment.java:332) at freemarker.core.Environment.process(Environment.java:305) at freemarker.template.Template.process(Template.java:384) at com.jeecms.common.web.springmvc.SimpleFreeMarkerView.renderMergedTemplateModel(SimpleFreeMarkerView.java:114) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.jeecms.common.web.XssFilter.doFilter(XssFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.jeecms.common.web.ProcessTimeFilter.doFilter(ProcessTimeFilter.java:35) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)