冉敏
摘要:2017年7月,国务院印发了《新一代人工智能发展规划》,其中明确提出要在中小学阶段逐步推广编程教育。在实际教学中,初中阶段更多的是学习图形化编程,高中阶段的新课标中要求学生熟练应用代码编程,要解决这一矛盾,初中阶段势必要从图形化编程过渡到代码编程。那么,初中程序设计课程怎样从图形化编程过渡到代码编程呢?针对这一问题,本文从课程目标设计、课程内容设计、课程评价设计三方面进行探讨,以期设计出符合初中学生情况且可以帮助学生从图形化编程到代码编程顺利过渡的初中程序设计课程。
关键词:从图形到代码;初中程序设计;课程设计
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2021)S2-0063-03
问题提出
2017年7月,国务院印发了《新一代人工智能发展规划》,其中明确提出要在中小学阶段逐步推广编程教育。当前在实际的教学中,更多的初中学校选择了更为简单的图形化编程语言作为程序设计语言。这是因为,在过去的十年间,以VB为代表的“代码”编程是初中程序设计教学的主流,然而在实践教学中往往出现了更多的问题,从而导致“图形化”编程出现以后迅速替代VB。利用“图形化”编程,孩子们不需要写任何代码,在图形化界面完成程序设计。初中阶段常见的“图形化”编程主要有编程猫、App Inventor、Micro: bit、Kittenblock等,学生在编写程序时,只需要拖拽程序拼接即可,就像他们小时候搭积木一样。
“代码”,泛指文本编程,也就是在初中阶段经常用于教学的Python、VB、C++等语言编写的程序,这类语言都是按照一定的语法规则,由表达各种意义的运算对象和运算方法构成。这对于学生来说,相对复杂,学生需要記住它们的语法规则,需要手动敲入一行行程序,一旦输错了字母或者标点符号,程序就会出问题。Python是一种解释型的脚本语言,可以应用于人工智能领域,自2004年起Python的使用率呈线性增长,尤其在近两年,高中必修中开始用Python作为教学语言,以Python为代表的“代码”编程在初中阶段的程序设计教学中则刚刚开始,相信随着人工智能的发展和高中Python教学实践的深入开展,在初中阶段Python教学也会慢慢成为一种必然。
因此,在现阶段,如何从图形化编程顺利过渡到代码编程,怎样的从图形到代码的课程设计是最符合学生的能力现状和实际需求的,成为本研究的内容。
课程设计
从图形到代码的初中程序设计课程,以初二学生为教学对象,以信息技术课为载体,以三维立体发展式目标(如下页图1所示)为导引,体系化构建三类课程内容,打造适合现阶段教学实际的、符合学生需求的初中程序设计课程。
1.课程目标设计
为发展学生信息技术学科核心素养,尤其是培养学生计算思维能力,促进教师能力发展并带动学校课程建设,本研究建立了三维立体发展式课程目标,让学生、教师、课程三者互相影响。三维分别代表学生发展、教师发展和课程发展,在图1中分别用x轴、y轴、z轴表示,三者相互促进,良性发展。
课程教学的核心目标是发展学生能力,具体目标包括:
(1)通过课程的学习,掌握程序设计的三大结构,掌握基本的语法结构,能够认识并编写简单的小程序。
(2)根据现实问题选择对应的算法,且能够将算法进行程序化表达。
(3)通过课程学习,顺利地从图形化编程过渡到代码编程,不会产生畏难情绪,且能保持一定的学习兴趣,为后续高中课程的学习打下坚实的基础。
(4)培养核心素养,尤其是培养计算思维能力,初步具备抽象、自动化(归纳、分析、建模)、算法意识(算法设计、编码)的总体能力。
此外,还设定了教师发展和课程发展两大目标:一是教师通过实践,具备独立开设从“图形”到“代码”的初中程序设计课程的能力,并能将课程开设成优质课程;二是通过课程的设计、开发、实施等过程,填补从“图形”到“代码”的程序设计课程的空白,编写校本教材。
2.课程内容设计
课程内容包括以图形化编程为主的铺垫课程、从图形编程向代码编程过渡的课程和以代码编程为主的代码课程三类。
(1)铺垫课程
这部分课程共设计了5个小项目,每个项目涉及的知识点和作用如表1所示。
由于学生的水平参差不齐,有的学生已经较好地掌握了图形化编程,有的学生却完全没有接触过图形化编程,所以设计了一系列铺垫课程,设计铺垫课程的主要目的是尽量拉平学生水平,通过铺垫课程的学习,学生能基本了解程序设计的三大结构,具备初步的编程思想。
(2)过渡课程
过渡课程,只设计了一节课,课题就是从图形到代码。这节课一共设计了6个环节,每个环节都有它的目的和作用,如下页图2所示。
过渡课程在设计过程中,始终遵循了一个原则,就是让学生比较代码、读懂代码、改写数据、仿写代码,学生在这样逐渐加深难度的过程中,不知不觉地完成过渡。
(3)代码课程
代码课程主要是Python课程,一共设计了4个项目,大概需要8个课时。每个项目同样有不同的知识点和不同的目的。具体项目如表2所示。
3.课程评价设计
课程评价的设计既要关注过程又要关注结果,力求将学习与评价融合,实现以评价促学习。
(1)过程性评价
过程性评价,旨在搜集学生学习过程中的具体材料,全面了解学生在学习过程中的整体表现。过程性评价主要是基于学生在课上完成的编程作品、课堂笔记、回答问题情况、课堂教学中生成的问题等方面来开展。
(2)终结性评价
程序设计课程与其他学科不同,具有开放、灵活、创新等特点,课程的终结性评价不仅要关注学生对程序设计相关概念、知识和基本技能的学习情况,还要强调学生的计算思维能力,包括抽象、自动化(归纳、分析、建模)、算法意识(算法设计、编码)的总体能力。在整个程序设计课程结束的时候,教师对学生进行了两个测试,一个是知识测试,主要考查学生对程序设计基本概念、基本结构、基本语句的掌握情况,一个是计算思维能力测试,主要考查学生计算思维能力水平,结合两个方面的测试结果,最终给出评价意见。
结语
综上所述,本研究设计了从“图形”到“代码”的初中程序设计课程的三类课程,旨在帮助学生能够平稳地从图形化编程过渡到代码编程,培养学生的计算思维能力,提升学生的抽象、自动化(归纳、分析、建模)、算法意识(算法设计、编码)的总体能力。
比较遗憾的是,在设计的三类课程中,铺垫课程、过渡课程都全部完成了教学实践,代码课程刚完成了前两个项目的教学实践,还无法完整地对整个课程内容体系进行详细的评估,这也是后续研究的重点和方向。
参考文献:
[1]张静洁.基于图形化编程平台的初中程序设计教学应用研究[D].西安:陕西师范大学,2018.
[2]叶新苗.以培养计算思维为导向的初中《Python程序》的教学实践研究[D].武汉:华中师范大学,2019.
[3]姚炯.从积木到代码:对编程学习经验的迁移研究[J].中国信息技术教育,2019(07):32-36.
[4]吕黎洁.高中数字化物理实验“DIS探究课堂”校本课程设计与教学[J].中小学数字化教学,2021(03):78-81.
[5]修志宇.面向高中生计算思维能力培养的Python课程设计[D].锦州:渤海大学,2020.