Google教育部产学研项目

Photo by Toa Heftiba on Unsplash
2017年度Google-教育部教育研究项目

编程课程的背景与现状

我们发现如web编程这类学科,若以知识传授为主线来讲授,实在是事倍功半,因为:

  • 这类学科发展极为迅速,往往过不了几年,技术就出现更新换代。

  • 这类学科知识错综复杂、浩如烟海。比如若是讲到server-client编程时,不可避免涉及到http协议,但是http协议本身又涵盖极大的知识量。课堂时间难以保障,甚至教师的知识也不能覆盖这些知识体系。 传统编程课程可以概括为3个中心:

  • 以教师为中心,教师按照线性过程一步一步由易到难讲解代码开发过程;

  • 以案例代码为中心,注重讲授案例代码,推动学生模仿;

  • 以考试为中心,期末以考试成绩衡量学生成绩。因此,难以发挥学生的主动性和创造性,且难以充分利用学生的可塑性。 传统编程课程还有2个缺失:

  • 缺失工业化的编程体验。传统编程课程中,相当一部分的师生采用邮件投递方式处理作业。软件开发本身的协同效应没有发挥出来。

  • 侧重语言技巧训练而缺失学习方法和技能训练。编程课程需要注重培养学生的学习方法,而不是死记硬背。

要解决的问题

项目要解决上述存在于编程课程中的3个中心和2个缺失问题。实现新3个中心:

  • 以学生为中心,教师的角色转变为引导、辅助学生进行创意编程活动;
  • 以学生创造代码为中心,减少教师为学生编写代码的情况,推动学生自主协作编程; 以创意软件产品为中心,重在考核学生协作编程以及编程产品产出的评价,而不是依赖期末考试。补充2个缺失:
  • 让学生在校期间就能体验实战工业化编程的环境和流程;
  • 培养学生学习编程的能力,而非就事论事的语言技巧,使得学生即使要面对新的编程语言,也能从容不迫,学习有章可循。

项目的意义

可以预见在未来编程专业的学生面对的是一个充满了就业机会和职业发展潜能的市场。所以这就对目前高校的编程课程提出了更高的要求,所以学校和教师需要转变自己的教学模式来积极应对。在另一方面,随着人类科学技术的不断进步,科学、技术、工程和数学领域的联系也越来越紧密,促使广大教育工作者开始认同STEM创新教育的重要性。这种教育模式强调能力的获取应该和知识的习得并重,且注重培养学生独立思考、探索未知领域、解决实际问题的精神。总之,STEM教育的主旨是为国家培养具有创新能力的复合型人才,这种创新型的教学模式表现在软件编程领域就是培养的学生可以像“工程师”那样用所学到的知识来解决实际问题。具体来说,学生真正在课堂中完成一个项目,一个作品,这种实践经验是对学生“计算思维”和解决问题能力的培养。这也是我们创新编程课程的核心创意所在。 不仅仅是针对于编程领域的学生,对于非计算机教育领域来讲,开展编程教育的关键绝不仅仅是学习编程技术,着重点应该是对学生进行逻辑,算法,数据,系统,网络,解决问题,出错调试,以及新的计算机技术所需要的思维的教育,这对国家未来人才的创新能力和竞争力有决定性的影响。所以这种课程模式的探索和尝试是具有积极意义的

冯翔
冯翔
副研究员 人工智能教育

研究方向包括人工智能在教育中的应用,学习分析,学习平台等