课题研究之三:“计算类”教学问题
(2018-03-15 23:41:30)一、“计算类”的界定
“计算类”是指有关数据处理及算法与程序设计的教学内容。在修订后的新课标中,这部分内容涵盖了必修课程中的“数据与计算”和选修课程的“数据与数据结构”“数据管理与分析”“算法初步”等。
本课题以必修课程中的“数据与计算”模块为主要研究对象,模块的具体内容有““数据与信息”“数据处理与应用”“算法与程序实现”等三部分。
二、新课标中关于“数据与计算”的内容标准与学业要求
新课标建立了信息技术“学科大概念”体系,即数据、算法、信息系统与信息社会责任。这个体系表明,新课标对高中信息技术课程有了新的定位,即将原有的注重对媒体信息的处理,转向了对数据信息的处理,使课程回归到“计算机科学与技术”的本质上来,把数据、算法及程序设计定义为高中信息技术核心内容,并成为计算思维的基本方式。
新课标对“数据与计算”的内容标准主要有:
1.了解数据收集、分析及可视化表达的基本方法;
2.从生活实例出发,概述算法的概念与特征,运用恰当的描述方法和控制结构表示简单算法;
3.掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。通过解决实际问题,体验程序设计的基本流程,掌握程序调试与运行的方法。
对其学业要求是:按照任务需求,了解数据收集、分析和可视化表达的基本方法,能够利用软件工具对数据进行计算、查询、排序、筛选、分类汇总等方面的处理,并能通过技术方法对数据进行保护;在数据分析的基础上,撰写解决问题的分析报告。依据解决问题的需要,设计和表示简单算法;掌握一种程序设计语言的基本知识,利用程序设计语言实现简单算法,解决问题 [1] 。
三、“计算类”的教学现状
从现有教材来看,计算类的主要内容是“表格信息加工”“编程方法加工信息”。受“学会应用”课程思想的影响,学生以“实际应用”为主要学习目标。在表格信息加工中,突出数学问题的计算、排序、筛选、生成图表等操作技能,忽视非数学问题的分析与解决;在编程方法加工信息中,重实用,轻思维,重程序,轻算法,以编写程序代码为主,强调编程技巧,注重语句语法,忽视算法思想的培育,其结果是学生只会根据教师提供的标准算法,“依葫芦画瓢”地编写代码,缺少思维能力和创造意识,更不会将算法思想迁移到其他问题的解决中。
实际上,在计算思维、数学思维、算法思想和程序设计之间,存在着思维方式的一致性和包容性,而现在的教学方法割裂了它们之间的相互关联,讲算法时避开数学思维,讲程序时脱离算法思想,造成知识的支离破碎和方法的零敲碎打,在这种状态下,计算思维的发展自然无从谈起。
《调研测试题目分析报告》中有关本内容的学生答题情况,已经充分印证了上述观点 [2] 。
四、计算思维与数学思维、算法和程序设计之间的关系
在计算类教学中贯彻计算思维时,需要理清相关问题之间的关系。
1.计算思维与数学思维的关系
数学思维是人的大脑的思维,解决问题的方式是人脑所擅长的抽象、归纳、类比、推理、演绎和逻辑分析等;计算思维同样是人的大脑的思维,但解决问题却是运用计算机科学领域的思想、原理与方法,采用计算工具能够处理的方式来进行。
例如:求解:S=1+2+3+……+99+100。
数学思维是对问题进行抽象和概括,归纳成自然数求和公式:S=1*(1+100)/2 ,这种处理方式符合人“依靠智慧”解决问题的特点;而计算思维同样是对问题进行抽象和概括,却采用符合计算机工作特性、执行效率更高的“从1到n自动累加”的处理方式。
因此,从狭义上讲,计算思维与数学思维在本质上非常相似,只是问题的解决方案分别适应于不同的执行对象。经过数学思维所形成的解决方案可以单纯依靠人的大脑来实现,经过计算思维所形成的解决方案却大都需要借助计算工具,通过机器的“自动执行”来实现。
2.计算思维与算法和程序设计的关系
计算思维是一种抽象的思维活动,算法则是把这种思维活动的结果描述成具体的方法与步骤,而程序则是算法在计算机上的正确实现。
同样的问题:求解:S=1+2+3+……+99+100。通过计算思维可以得到“从1到n自动累加”的解决方案;算法则要考虑采用何种方法、通过何种步骤来完成这个方案,比如,利用程序的“循环结构”和“累加器”来进行自动累加;程序设计是将算法中的方法与步骤转换成计算机所能理解和操作的指令代码,比如将累加器写成“s=s+i”式的语句,使程序能够在计算机上顺利运行并得到正确结果。
由此看来,计算思维与算法和程序的关系是“由问题引发思维、由思维产生算法、由算法生成程序”的过程。
五、在计算类教学中体现计算思维的思考
综合上述观点,在计算类教学中培养计算思维的重要环节是“由问题引发思维、思维产生算法”,它是体现计算思维的关键,是人脑的独立思考活动,不受任何程序设计语言的约束和限制。
在计算类教学中,体现计算思维的核心是“通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案;总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中。” [3]
因此,设计出有情景、有意义、有价值的问题,指导学生以计算思维的方式进行深入思考,帮助他们在分析问题和解决问题的过程中形成计算思维意识,提升计算思维能力,是“计算类”教学的基本模式。
例如,在“表格信息的加工”中,教师经常使用一些条件清晰、解法明确、可轻易列出计算公式的简单案例,这种案例只能训练学生的操作技能,缺少思维过程,因此,它只是将数学演算转变成了软件操作,不是思维方式的转变。
而另一类如“评价量表”“目标优化矩阵”等需要界定、抽象、建模和构造算法的复杂问题,却能够真正为学生创设思维活动的空间。
再比如,在算法和程序设计的教学中,可以将常用的案例分成两类,一类有明确的已知和未知条件,经过简单的数学解析即可列出计算公式,不需要复杂的推导和转化,如“百鸡百钱”“韩信点兵”等;另一类则是条件模糊、方法不明、需要逻辑推理和深度思考的问题,如“康威生命游戏”“四个人中谁在说谎”等。
对于第一类问题,学生可以遵循数学思维和解题规律,很容易得出算法,但正是因为有规律、有参考、有方法,才容易掩盖计算思维的精要。在课堂上,教师往往认为学生已经能够设计算法,编写程序,而不去进行更深层次的挖掘,其结果是忽略了计算思维的培养和能力训练。
对于第二类问题,学生面对复杂、无序、需要逻辑推理和深度思考的问题时,往往没有思路,无从下手。但正是这类问题才能较好地体现计算思维的作用,有益于提升学生的思维能力。
因此,需要在教学中改变教学内容和教学方法,通过解决复杂问题来达到培养计算思维的目的。
六、两个以培养计算思维为导向的教学案例,
【案例1】影响学习成绩的不良因素有很多,有同学归纳出以下几条:学习无计划性、听课不专心、不按时完成作业、课前不预习课后不复习、有问题不及时解决。
在这些因素中,有的因素对学习成绩的影响比较大,有的则比较小。请你设计一个调查方案,通过调查,采用适当的计算方法,得到反映每个因素影响程度大小的权重系数。
这个题目中主要体现计算思维的问题界定、信息数字化、信息结构化、建模、算法设计、自动计算等要素。
解题思路与步骤:
在设计调查方案时,应预先确定数据处理的算法,设计出与之对应的问卷格式和答题要求,使被调查者在回答问题时,能够按照符合算法的数据类型和数据格式进行回答。
依照计算思维,可以按照正下面步骤进行:
1.对将问题进行抽象,把上述各因素、调查结果构造成矩阵的形式。这样就把一个实际问题界定为矩阵运算,即“目标优化矩阵”运算。
2. 将调查结果数字化:用0、1两个数字来表示不同因素对学习成绩的影响程度的相对大小,从而将调查结果数字化。
3.建模:目标优化矩阵的原理是把人脑的模糊思维,简化为计算机的0、1式逻辑思维。它的计算方法是:将纵轴上的一个因素与横轴上的各个因素依次进行对比,如果被调查者认为纵轴上的这个因素比横轴上的某个因素的影响程度大,则在两个因素交叉的格子中填写数字1,否则填写0。如表1所示。
表1:某位被调查者填写的目标优化矩阵数值表
影响学习成绩的不良因素 |
学习无计划性 |
听课不专心 |
不按时完成作业 |
不预习、不复习 |
有问题不及时解决 |
学习无计划性 |
|
0 |
0 |
0 |
0 |
听课不专心 |
1 |
|
1 |
1 |
1 |
不按时完成作业 |
1 |
0 |
|
1 |
1 |
不预习、不复习 |
1 |
0 |
0 |
|
0 |
有问题不及时解决 |
1 |
0 |
0 |
1 |
|
4.计算各因素的量化值和权重系数:将收集到的调查数据录入Excel表格,利用自定义公式进行计算,如表2所示。
表2:某位被调查者填写的数据表及计算结果
其中,量化值=横轴上各因素数值的总和
权重系数=(某因素量化值+1)/(各因素量化值+1后的总和)。
按照上述方法,对所有被调查者填写的数据进行合并,计算各因素所有权重系数的平均值,以此作为各因素的最终结果。
目标优化矩是运用计算思维,将人的观点和态度用数学方式来表达,以适宜计算机自动处理。
【案例2】假如世界上有三种人:善良的老实人、正直的聪明人和凶恶的坏人。这三种人在两两相遇时,会出现“合作”或者“战争”的情况,合作时双方共存,战争时一方消亡或双方一起消亡。三种人相遇的结果如表3所示:
表3 三种人的相遇结果
|
善良的老实人 |
正直的聪明人 |
凶恶的坏人 |
善良的老实人 |
合作:双方共存 |
合作:双方共存 |
战争:老实人消亡 |
正直的聪明人 |
合作:双方共存 |
合作:双方共存 |
战争:双方一起消亡 |
凶恶的坏人 |
战争:老实人消亡 |
战争:双方一起消亡 |
战争:双方一起消亡 |
如果世界上有很多这样的人,他们两两随机相遇,你能不能预测一下,按照上述相遇结果,最后世界上会剩下哪种人?请你设计一个计算机可以执行的方案,来验证你的预测。
这个题目中主要体现计算思维的问题界定、约简、抽象、数字化、建模、程序仿真等。
解题思路与步骤:
初一看,感觉此问题无法用计算机来解决,我们可以通过程序仿真来模拟事情的变化过程和变化规律,以得到较为真实的结果。
依照计算思维的思考方式,可以按照下面步骤进行:
1.界定问题:将问题界定为程序仿真,通过计算机模拟来获得结果;
2.数字化:
(1)将三种人用符号表示,分别为A、B、C
(2)为每种人设置一定的初始群体数量,如500,1000等
(3)为每个人设置一定的能量值,如10,100
3.抽象、约简和建模:根据题意,设置三种人在随机两两相遇时,会发生能量值的增加或减少。如AA相遇,各自增加一定的能量值,AC相遇,A减少能量值,C增加能量值等。
4.构造算法:根据计算模型设计算法;
5.程序设计:选择一种程序设计语言编制程序并调试、运行。
计算思维不是用来“计算”的,也不是只能用于计算机系统,它应该存在并运行于现代社会的方方面面,因此,“迁移能力”是计算思维的关键。上面两个案例就是把有关计算机科学的思想和方法,迁移到了“非计算”问题的解决中。
七、研究结论:
在计算类的教学中,要强化基础概念,以思维方式为出发点,引导学生学会将模糊、复杂的问题抽象化、数字化、结构化,建立模型、构造算法,形成可行的解决方案并利用计算工具正确执行。