论文部分内容阅读
【摘要】本文结合小学六年级的Scratch教学案例,通过如何利用问题解决的数学思维帮助学生进行程序指令理解、创新思维及计算思维的培养,同时也提出了提升学生计算思维水平的有关策略与途径,希望通过本文为其它在Scratch课程教学实践者和科研人员带来启示和借鉴。
【关键词】Scratch程序设计 信息技术 数学思维 计算思维
【中图分类号】G623.5
【文献标识码】A
【文章编号】1992-7711(2020)12-125-03
随着信息技术的迅猛发展,信息素养与创造能力的培养成为信息技术教育的主题,程序设计回归中小学课堂并成为重要的教学内容,传统的基于代码的编程方式遭受质疑,可视化的思维表达方式越来越受到重视。Scratch程序是一款面向少年儿童开发的简易编程工具,它由美国麻省理工学院设计开发,其代码指令和参数通过积木形状的程序模块实现,学生用鼠标拖动模块到脚本区组合起来,就可以实现丰富的功能,用鼠标点击程序组合,便可直接看到程序的效果,观看程序效果不再需要漫长的编译与封装,实现了所见即所得的可视化编程梦想。
由于Scratch的优势,现已成为中小学最主要的程序设计课程,但现行的Scratch教材存在内容不够细化、学习指引不够具体、程序指令说明不够详细等短板。教师如何在发挥教材本身功能的基础上,通过情景创设、任务设定,提高学生学习的兴趣、加强他们对程序语法理解,发展他们的创新性思维,笔者尝试使用问题解决的数学思维引导学生进行程序设计,得到意想不到的催化效果。
一、在深化指令语言认识方面产生催化
虽然Scratch程序对其指令语言已进行了极大的简化,但对于指令内涵与功能的认识仍然是少年儿童Scratch学习道路上最大的障碍。如何深化少年儿童对Scratch语言中每一个指令的内涵与功能的认识,从而掌握指令使用的方法是每一位信息技术教师想要达到和突破的目标。现有教材为了加强小学生对于Scratch指令的认识,对于学习素材进行了针对性的选择与优化,特别是以生活化的实例去说明指令代码的含义与组合方法。但由于孩子欠缺生活经验,且没有对教材中的生活化问题进行系统学习,因此他们有可能对教材中的生活化实例产生认识模糊,这样反而造成了对指令代码学习的曲解。
在广州市小学信息技术教材第三冊第二章第19课《键盘信息的获取与侦测》中,运算符“或”和“与”的区别是学生比较难理解的,对此教材也没有提供实例和内容予以说明。为了填补这个空白,笔者通过数学问题设置项目任务组:
任务1.请设计问答器,判断输入答案是否为:一个大于0且小于3的整数;
任务2.请设计问答器,判断输入答案是否为:一个大于0且小于1的小数;
六年级学生对于上述两个数学问题的答案是比较清晰的,任务1的答案是1或2,任务2的答案区间则在0和1之间。在设计任务1时,学生比较容易掌握需要用“或”运算符进行制作(程序编写如下):
程序运行后效果也符合任务要求。
但仿照这个方法设计任务2(程序编写如下):
却出现无论输入正确答案或是错误答案,程序均提示答案正确的现象,显然这个程序编写是有问题的。此时,笔者使用了“数轴”这一数学工具来说明错误的原因:
通过以上图示,学生明白到“或”运算符不适合表示“一个大于0且小于1的小数”,而“与”运算却正好合适(程序编写如下):
此时教师要求学生能否用数轴画出以上程序指令的意思,并说明为何“与”运算符适合任务2的要求,学生则画出以下数轴图示:
儿童教育心理学表明,选择合理的情景既能激发学生尽快进入学习的状态,也有助于他们认知新的事物。数学本身符号化、图形化的特点能很好地诠释Scratch代码的内涵,让学生将难以理解的代码通过数学概念与原理化解为他们能够理解的语言。可以说应用数学情景与数学工具进行Scratch程序指令的释义,符合儿童教育心理学特点和要求,既能够有效激发他们的学习兴趣,也有助于代码内涵的理解。
二、在培养学生应用创新方面形成催化
Scratch是一款面向少年儿童的程序开发软件,为了易于理解与使用,它的指令代码均以积木式的形式存在。虽然单一的积木可能只代表一个功能,但通过多个积木的组合,也可以实现无穷的程序效果,所以我们在Scratch教学时,不仅注重学生在程序设计中的规范性,更要注重培养他们的创新性。笔者实际教学中,运用数学的问题解决思维,也能很好地实现这个目标。
在广州市小学信息技术教材第三册第二章第19课《键盘信息的获取与侦测》中,对于两个答案的问题预设进行程序设计,教材不仅提供了说明,而且提供了设计范例,学生比较容易理解与掌握。笔者也仿照教材内容设计了以下任务项目,让学生进行练习:
任务1:请设计问答器,判断输入答案是否为7的约数。
由于7的约数只有1和7,因此学生很快掌握使用“或”运算符编写程序的方法(程序编写如下):。
但是,如何使用“或”运算符实现三个、甚至是更多个答案的预设,教材中就没有提及。如何通过问题情景创设与恰当的引导,使学生创新性地想出解决办法,笔者采用了以下策略:
任务2:请设计问答器,判断输入答案是否为4的约数的问题器。
任务3:请设计问答器,判断输入答案是否为6的约数的问题器。
对于上述两个任务中的数学问题,学生比较容易得出任务2有3个答案、任务3则有4个答案。对于如何利用“或”运算符实现这两个任务要求的问题?教师提示学生从两个方面思考:
1.是否有新的指令可以实现?
2.在原有“或”运算符的基础上思考,是否有新的拼组方式实现? 经过小组讨论,学生发现“或”运算符本身可以反复嵌套,即按以下形式嵌套
方式一:“或”运算符其中一个条件判断框(六角形框)嵌套另一“或”运算符,实现三个答案的预设:
方式二:“或”运算符两个条件判断框(六角形框)嵌套两个“或”运算符,实现四个答案的预设:
方式三:在方式二的基础上,每个“或”运算符的条件判断框(六角形框)中分别嵌套“或”运算符,实现多个答案的预设:
程序设计的创新性就在于研究问题时不墨守成规,要善于发现。利用数学问题解决的思路,有利于在最平常的问题中发现最不平常的问题,使学生在演绎、类比、分析、探究中发现指令组合的创新形式,发展其创新思维。在利用数学问题解决的思维培养学生创新性的过程中,应注意以下几点:
1.重视“程序纠错”的教学,培养学生发现问题的能力。
2.加强“程序推理”的教学,培养学生重构指令重组的思维能力。
3.提倡“一题多解”的要求,培养学生求同存异的思维能力。
三、提升学生计算思水平的途径
计算机程序设计与数学计算思维有着千丝万缕的关系,我们反观现在形形色色的计算机软件,它们的开发无不建立在数学计算的基础上,如:程序设计模型论建立在逻辑学的基础上;游戏和图形软件开发大量引用了坐标变换和矩阵运算,这是运用了数学的线性代数;信息安全方面的数据储存则运用了小波理论与代数编码,小波理论实际是函数的一种衍生理论。美国卡内基·梅隆大学的周以真教授(J.M.Wing)对计算思维进行了明确的定义。她指出:计算思维涉及运用计算机科学的基础概念进行问题求解、 系统设计和理解人类行为,它涵盖了反映计算机科学之广泛性的一系列思维活动。 是通过约简、嵌入、转化和仿真等方法,将一个看来困难的问题重新阐述成一个我们知道怎么解决的问題。 计算思维如同阅读、写作、算术一样, 应当是信息时代的每个人都具有的一种思维方式,并不是只有计算机科学家才有。以数学问题为载体,能够让学生在数学理性分析中洞悉程序算法的依据,让学生理解程序设计的原理,并进行设计的实践,体验程序设计的全过程,对其计算思维的培养与发展在着重要的意义。利用问题解决的数学思维发展学生在程序设计中计算思维,可以遵循以下途径进行:
1. 重视计算思维的结构化分类
计算思维作为一种涵盖计算机科学之广度的一系列思维活动,它必然存在结构化分类的特征。不同的分类范畴的计算思维活动应有不同的教学方法,但针对性的数学问题情景往往有助于各类思维活动养成的训练,在选取数学问题作为计算思维活动训练素材时,既要考虑训练目的、又要理清问题本质。
2.基于项目式学习任务(PBL)开展教学策略的制订
研究表明,学生处于真实可信的情境中所进行的学习是最有效的,因为他们能够清楚地知道完成任务的意义和价值并且能够与之前的知识相联系以应用于真实的世界中。PBL的学习任务本身就是一种任务情景设定,它以丰富多彩的作品形式表现最终的成果,即学生最终解决问题的获得以各种作品的形式表达,这成为了学生学习的驱动力。在设计PBL任务时,应充分考虑学生知识获取的最近发展区、并选择易于思维迁移、工具应用的方向进行思考。
3.充分参考国内外计算思维教育课程的成果
国内外关于少儿计算思维培养已有一定的研究成果,在设计项目时,充分参考现有成果,有助于科学性、现实性的实现,使项目设计更有效体现教学目标,更有效发展学生的信息技术核心素养。
少儿编程教学作为信息技术课堂中新兴的一个课题,需要广大志同道合的同仁们共同努力,在编程教学研究的道路上勇于探索,才能为少儿编程教学带来新的突破。将数学思维融入编程教学,是计算思维与软件编程的耦合性特征决定的。现在更多的教师已将编程教学研究的目光聚焦计算思维的培养上,用数学原理解释程序算法,让学生在理解算法的基础上了解程序设计的灵魂,这应该是少儿编程教学的最根本所在。
【参考文献】
[1] [奥地利]阿德勒.著.儿童教育心理学.王童童.译,中华工商联合出版社.2017-11-01
[2] 游文杰.计算机科学中的数学——谈计算机专业数学的学习[J]. 福建师大福清分校学报, 2004(2):16-18.
[3] 周以真.计算思维[J].Communications of the ACM杂志,2006年,3:34.
【关键词】Scratch程序设计 信息技术 数学思维 计算思维
【中图分类号】G623.5
【文献标识码】A
【文章编号】1992-7711(2020)12-125-03
随着信息技术的迅猛发展,信息素养与创造能力的培养成为信息技术教育的主题,程序设计回归中小学课堂并成为重要的教学内容,传统的基于代码的编程方式遭受质疑,可视化的思维表达方式越来越受到重视。Scratch程序是一款面向少年儿童开发的简易编程工具,它由美国麻省理工学院设计开发,其代码指令和参数通过积木形状的程序模块实现,学生用鼠标拖动模块到脚本区组合起来,就可以实现丰富的功能,用鼠标点击程序组合,便可直接看到程序的效果,观看程序效果不再需要漫长的编译与封装,实现了所见即所得的可视化编程梦想。
由于Scratch的优势,现已成为中小学最主要的程序设计课程,但现行的Scratch教材存在内容不够细化、学习指引不够具体、程序指令说明不够详细等短板。教师如何在发挥教材本身功能的基础上,通过情景创设、任务设定,提高学生学习的兴趣、加强他们对程序语法理解,发展他们的创新性思维,笔者尝试使用问题解决的数学思维引导学生进行程序设计,得到意想不到的催化效果。
一、在深化指令语言认识方面产生催化
虽然Scratch程序对其指令语言已进行了极大的简化,但对于指令内涵与功能的认识仍然是少年儿童Scratch学习道路上最大的障碍。如何深化少年儿童对Scratch语言中每一个指令的内涵与功能的认识,从而掌握指令使用的方法是每一位信息技术教师想要达到和突破的目标。现有教材为了加强小学生对于Scratch指令的认识,对于学习素材进行了针对性的选择与优化,特别是以生活化的实例去说明指令代码的含义与组合方法。但由于孩子欠缺生活经验,且没有对教材中的生活化问题进行系统学习,因此他们有可能对教材中的生活化实例产生认识模糊,这样反而造成了对指令代码学习的曲解。
在广州市小学信息技术教材第三冊第二章第19课《键盘信息的获取与侦测》中,运算符“或”和“与”的区别是学生比较难理解的,对此教材也没有提供实例和内容予以说明。为了填补这个空白,笔者通过数学问题设置项目任务组:
任务1.请设计问答器,判断输入答案是否为:一个大于0且小于3的整数;
任务2.请设计问答器,判断输入答案是否为:一个大于0且小于1的小数;
六年级学生对于上述两个数学问题的答案是比较清晰的,任务1的答案是1或2,任务2的答案区间则在0和1之间。在设计任务1时,学生比较容易掌握需要用“或”运算符进行制作(程序编写如下):
程序运行后效果也符合任务要求。
但仿照这个方法设计任务2(程序编写如下):
却出现无论输入正确答案或是错误答案,程序均提示答案正确的现象,显然这个程序编写是有问题的。此时,笔者使用了“数轴”这一数学工具来说明错误的原因:
通过以上图示,学生明白到“或”运算符不适合表示“一个大于0且小于1的小数”,而“与”运算却正好合适(程序编写如下):
此时教师要求学生能否用数轴画出以上程序指令的意思,并说明为何“与”运算符适合任务2的要求,学生则画出以下数轴图示:
儿童教育心理学表明,选择合理的情景既能激发学生尽快进入学习的状态,也有助于他们认知新的事物。数学本身符号化、图形化的特点能很好地诠释Scratch代码的内涵,让学生将难以理解的代码通过数学概念与原理化解为他们能够理解的语言。可以说应用数学情景与数学工具进行Scratch程序指令的释义,符合儿童教育心理学特点和要求,既能够有效激发他们的学习兴趣,也有助于代码内涵的理解。
二、在培养学生应用创新方面形成催化
Scratch是一款面向少年儿童的程序开发软件,为了易于理解与使用,它的指令代码均以积木式的形式存在。虽然单一的积木可能只代表一个功能,但通过多个积木的组合,也可以实现无穷的程序效果,所以我们在Scratch教学时,不仅注重学生在程序设计中的规范性,更要注重培养他们的创新性。笔者实际教学中,运用数学的问题解决思维,也能很好地实现这个目标。
在广州市小学信息技术教材第三册第二章第19课《键盘信息的获取与侦测》中,对于两个答案的问题预设进行程序设计,教材不仅提供了说明,而且提供了设计范例,学生比较容易理解与掌握。笔者也仿照教材内容设计了以下任务项目,让学生进行练习:
任务1:请设计问答器,判断输入答案是否为7的约数。
由于7的约数只有1和7,因此学生很快掌握使用“或”运算符编写程序的方法(程序编写如下):。
但是,如何使用“或”运算符实现三个、甚至是更多个答案的预设,教材中就没有提及。如何通过问题情景创设与恰当的引导,使学生创新性地想出解决办法,笔者采用了以下策略:
任务2:请设计问答器,判断输入答案是否为4的约数的问题器。
任务3:请设计问答器,判断输入答案是否为6的约数的问题器。
对于上述两个任务中的数学问题,学生比较容易得出任务2有3个答案、任务3则有4个答案。对于如何利用“或”运算符实现这两个任务要求的问题?教师提示学生从两个方面思考:
1.是否有新的指令可以实现?
2.在原有“或”运算符的基础上思考,是否有新的拼组方式实现? 经过小组讨论,学生发现“或”运算符本身可以反复嵌套,即按以下形式嵌套
方式一:“或”运算符其中一个条件判断框(六角形框)嵌套另一“或”运算符,实现三个答案的预设:
方式二:“或”运算符两个条件判断框(六角形框)嵌套两个“或”运算符,实现四个答案的预设:
方式三:在方式二的基础上,每个“或”运算符的条件判断框(六角形框)中分别嵌套“或”运算符,实现多个答案的预设:
程序设计的创新性就在于研究问题时不墨守成规,要善于发现。利用数学问题解决的思路,有利于在最平常的问题中发现最不平常的问题,使学生在演绎、类比、分析、探究中发现指令组合的创新形式,发展其创新思维。在利用数学问题解决的思维培养学生创新性的过程中,应注意以下几点:
1.重视“程序纠错”的教学,培养学生发现问题的能力。
2.加强“程序推理”的教学,培养学生重构指令重组的思维能力。
3.提倡“一题多解”的要求,培养学生求同存异的思维能力。
三、提升学生计算思水平的途径
计算机程序设计与数学计算思维有着千丝万缕的关系,我们反观现在形形色色的计算机软件,它们的开发无不建立在数学计算的基础上,如:程序设计模型论建立在逻辑学的基础上;游戏和图形软件开发大量引用了坐标变换和矩阵运算,这是运用了数学的线性代数;信息安全方面的数据储存则运用了小波理论与代数编码,小波理论实际是函数的一种衍生理论。美国卡内基·梅隆大学的周以真教授(J.M.Wing)对计算思维进行了明确的定义。她指出:计算思维涉及运用计算机科学的基础概念进行问题求解、 系统设计和理解人类行为,它涵盖了反映计算机科学之广泛性的一系列思维活动。 是通过约简、嵌入、转化和仿真等方法,将一个看来困难的问题重新阐述成一个我们知道怎么解决的问題。 计算思维如同阅读、写作、算术一样, 应当是信息时代的每个人都具有的一种思维方式,并不是只有计算机科学家才有。以数学问题为载体,能够让学生在数学理性分析中洞悉程序算法的依据,让学生理解程序设计的原理,并进行设计的实践,体验程序设计的全过程,对其计算思维的培养与发展在着重要的意义。利用问题解决的数学思维发展学生在程序设计中计算思维,可以遵循以下途径进行:
1. 重视计算思维的结构化分类
计算思维作为一种涵盖计算机科学之广度的一系列思维活动,它必然存在结构化分类的特征。不同的分类范畴的计算思维活动应有不同的教学方法,但针对性的数学问题情景往往有助于各类思维活动养成的训练,在选取数学问题作为计算思维活动训练素材时,既要考虑训练目的、又要理清问题本质。
2.基于项目式学习任务(PBL)开展教学策略的制订
研究表明,学生处于真实可信的情境中所进行的学习是最有效的,因为他们能够清楚地知道完成任务的意义和价值并且能够与之前的知识相联系以应用于真实的世界中。PBL的学习任务本身就是一种任务情景设定,它以丰富多彩的作品形式表现最终的成果,即学生最终解决问题的获得以各种作品的形式表达,这成为了学生学习的驱动力。在设计PBL任务时,应充分考虑学生知识获取的最近发展区、并选择易于思维迁移、工具应用的方向进行思考。
3.充分参考国内外计算思维教育课程的成果
国内外关于少儿计算思维培养已有一定的研究成果,在设计项目时,充分参考现有成果,有助于科学性、现实性的实现,使项目设计更有效体现教学目标,更有效发展学生的信息技术核心素养。
少儿编程教学作为信息技术课堂中新兴的一个课题,需要广大志同道合的同仁们共同努力,在编程教学研究的道路上勇于探索,才能为少儿编程教学带来新的突破。将数学思维融入编程教学,是计算思维与软件编程的耦合性特征决定的。现在更多的教师已将编程教学研究的目光聚焦计算思维的培养上,用数学原理解释程序算法,让学生在理解算法的基础上了解程序设计的灵魂,这应该是少儿编程教学的最根本所在。
【参考文献】
[1] [奥地利]阿德勒.著.儿童教育心理学.王童童.译,中华工商联合出版社.2017-11-01
[2] 游文杰.计算机科学中的数学——谈计算机专业数学的学习[J]. 福建师大福清分校学报, 2004(2):16-18.
[3] 周以真.计算思维[J].Communications of the ACM杂志,2006年,3:34.