卡内基梅隆大学周以真教授提出,到21世纪中期,计算思维应与阅读、写作和算术一样,成为每个孩子的基本技能。她将人的思想的代码翻译称为浅层的计算思维,而把能帮助人生成新的解决方案的称为深层计算思维。
西摩·佩珀特(SeymourPapert)在《因计算而强大:用计算思维思考和学习》中提出,计算思维应当鼓励我们从人的解决方案和计算机的解决方案整合演变出新的解决方案。
计算思维的培养方法和途径很多,但是毋庸置疑,由于计算思维最终指向代理(计算机或其他机器或人)问题求解方案被机器(代理)自动化执行和实现,因此编程教育被认为是培养计算思维最有效的途径之一。但是教授编程就一定能够达到计算思维培养吗?这就要看教师是让机器只是作为代码翻译人的思维还是“将人的解决方案和计算机的解决方案整合演变出新的解决方案。”我们以初中数学一元二次方程ax2+bx+c=0(a≠0)的根的求解为例:用数学语言描述其算法:①计算Δ=b2-4ac。②如果Δ0,则原方程无实数解。否则,Δ≥0。计算x1、x2的值。③输出解x1、x2或无实数解信息。如果算法只是翻译韦达定理,那么这就仍然是人的思维和解法,就是佩珀特列举的计算机的第一种作用,也就是周以真所说的代码翻译的浅层计算思维。此时,学生的学习就是翻译,当然,教学自然就停留在编程语言的学习层面。如果了解了计算机问题求解特点,那么,在计算推动下创新的解决方案,通过牛顿迭代法、二分法等形式化和一般化的方法,不仅仅可以解一元二次方程,还可以拓展到一元n次方程、n元一次方程、n元n次方程的解等。这就是计算思维解决问题的创新,此时,学生将人的思维和计算机问题求解整合为真正的计算思维,教学进入计算思维培养的深度。再譬如,如果只是利用计算机模拟已知基因组,那么就是佩珀特第二种可视化表达功能,但是如果通过建立的基因模型,在模型指导下可能会发现新的基因组,这就是真正的计算思维问题解决。计算思维的双向观点,也就是计算能力、现有的和新的计算技术,以及学科知识的结合发现新问题和新的解决方法的观点,不仅催生出许多新的交叉学科,同时也推动了计算科学成为创新实践和新知识驱动力的变化。
为了避免编程教育浅化为编程语言学习,达到真正的深层计算思维培养,建议计算思维教学中,要深刻认识计算思维的工程性,以真实问题通过人的思维之逻辑、算法、分解、模式、抽象和评估等,转化为可以利用计算机顺序、循环、并行、事件、条件语句、运算符、数据、存储、检索、更新等算法,通过试验与迭代、测试与调试、复用与重组、抽象化与模块化等计算思维最终解决。
计算思维已经是实验思维(实证思维)、理论思维(逻辑思维)之后科学研究的第三大思维,没有计算思维,很多科学研究甚至无法进行。学会用计算思维思考和学习,是智能时代公民信息素养的重要基础。
于晓雅,博士,副教授,北京教育学院创客教育研究中心主任,综合课程教研室主任。研究方向为中小学信息技术教育、STEM和创客教育、人工智能和教师专业发展等。(《中国民族教育》杂志年第5期)
作者:于晓雅