当爸爸后,我很快就知道了一个词——早教。有时候真的感觉现在中国的孩子太可怜了,为了让他们赢在起跑线上,从小就要被父母投入轰轰烈烈的教育事业中。什么脑电波音乐、幼儿简笔画、蒙氏数学、右脑识字、语训、跳舞班......,花样层出不穷。想当年我小时候,哪有这些东西,父母不管,到处乱跑,忙着打架、偷邻居家种的西红柿之类工作。这不,又被老婆大人抓差,陪孩子研究新到的”巧虎“学习本。(没小孩的朋友别笑,等你当父母后,可能就知道”巧虎“是嘛东西了。)
看看,巧虎书对四岁小孩就开始进行计数训练了。巧虎摘了3个苹果,桃乐比摘了2个苹果,都放到这个篮子里,总共有几个苹果?只见我宝贝女儿伸出手指,从1数起,数到3,再到5个。我再问,”那3加3等于几?”。她又开始数手指,从1数到6。这么低效的算法,怎么行?我马上对她进行了一番辅导,教她“以后尽量不数手指,要心中默默的算”。
过了几天,我又考她:“宝贝,3加3等于几?别数手指,用我上次教你的方法。” 女儿说:”现在我早不数手指了”。不错,没伸手指,不过,怎么回事?我晕,她开始眨眼睛,从1眨起,连眨了6下。难道我们家孩子没数学特长,不会吧,当年哥可是参加数学竞赛的(没得奖),论遗传没这么差吧?
我心中一动,说不定小孩在这个阶段的数学思维就是这样具象的。你看,我的程序员职业病又患了,可以试试用抽象代数类型来给宝宝的数学思维建模啊!宝宝这个阶段,肯定只知道最简单的自然数了,她已经懂得数数,比较数的大小,还有低效的加法。
抽象代数类型定义——
sorts: 集合名
nat自然数 bool布尔值
operation: 操作
true : bool
false : bool
0 : nat
succ : nat -> nat
< : nat * nat -> bool
> : nat * nat -> bool
+ : nat * nat -> nat
axiom: 公理
0 < 0 = false
0 < succ n = true
succ n < succ m = n < m
n > m = m < n
0 + n = n
(succ n) + m = succ (n + m) ***
抽象代数类型的特殊之处在于,它的集合元素全是用操作定义的,用了基本的归纳法。集合元素之间的关系,用公理来定义。
比如,0是自然数的基本情况,succ是构造操作,那么
1 = succ 0
2 = succ (succ 0)
3 = succ (succ (succ 0))
......
3~4岁的小孩处于计数初始阶段,他们对数的认知也许就是这样,所以他们在做加法时,是用上面打*号的那条公理来实现的。比如3+2,相当于
succ (succ (succ 0)) + succ (succ 0) = succ ( succ (succ 0) + succ (succ 0) )
= succ succ ( succ 0 + succ (succ 0) )
= succ succ succ ( 0 + succ (succ 0) )
= succ succ succ succ (succ 0)
每succ一次,相当于数一次手指,或眨一次眼睛。象我的宝贝不懂得加法的交换律,算完3+2,你问她2+3,她从头再来一遍。所以在模型的公理中,没有这条:
n + m = m + n
随着孩子的长大,对计数掌握的越多,我们就要不断扩充模型的能力。首先要增加记忆的定理一项,什么 2+ 3 =5 都变成她熟练掌握的定理,不用算了。操作要扩充,增加减法、乘法、除法等等。公理随之也增多。
到了初中,就是把自然数扩展成整数,要有负数的观念。她还要懂得分数,也就是有理数。然后是无理数,实数集合。上了高中,她还要学会复数,算算三角。再到大学,她要是和老爸一样,读computer science,她就会知道抽象代数。等她有小孩,她又教她小孩计数。我正在那里傻乐着瞎想呢,突然女儿的一声召唤把我从梦里带回来,“爸爸,妈妈叫你带我去上画画课”。 唉,早教这个烦人的东西又来了!
分享到:
相关推荐
[12]优秀程序员之路——C++开发经验及技巧大汇总.zip上位机开发VC串口学习资料源码下载[12]优秀程序员之路——C++开发经验及技巧大汇总.zip上位机开发VC串口学习资料源码下载[12]优秀程序员之路——C++开发经验及...
C~C++程序员实用大全——C~C++最佳编程指南.pdf(3)
程序员之路——一个老程序员对刚上大学的学弟学妹的忠告.
C~C++程序员实用大全——C~C++最佳编程指南
C~C++程序员实用大全——C~C++最佳编程指南
C~C++程序员实用大全——C~C++最佳编程指南
C~C++程序员实用大全——C~C++最佳编程指南.part5
《程序员面试宝典——经典》是一本专门为准备进入IT行业或者寻求职业晋升的程序员量身打造的面试指南。这本书深入浅出地解析了面试中常见的技术问题和面试技巧,旨在帮助读者更好地理解和应对面试挑战。以下是一些...
C~C++程序员实用大全——C~C++最佳编程指南.part6.rar
"程序员实用算法——sourceCode"这个主题涵盖了各种在实际开发中经常遇到的算法,通过源代码的形式来展示这些算法的实现。下面将详细介绍一些重要的算法类型及其应用。 1. 排序算法:包括快速排序、归并排序、冒泡...
《C~C++程序员实用大全——C~C++最佳编程指南》是一本为C和C++程序员量身定制的综合教程,旨在提供全面且深入的编程指导。这本书涵盖了从基础知识到高级特性的全面内容,是提升C/C++编程技能的理想资源。 首先,书...
程序员小飞解密——纯新手的我,到底该把宝押在python2还是python3??
《C~C++程序员实用大全——C~C++最佳编程指南》是一本为C和C++程序员量身定制的综合教程,旨在提供全面且深入的编程指导。这本书涵盖了C和C++的基础到高级主题,是提升技能和深入理解这两种语言精髓的重要资源。 ...
5.5 对多个键进行排序——不稳定排序的修正方法 5.6 网络排序 5.7 小结:选择一种排序算法 5.8 资源和参考资料 第6章 树 6.1 二叉树 6.1.1 树查找 6.1.2 节点插入 6.1.3 节点删除 6.1.4...
在这个“优秀程序员之路——ASP.NET开发经验及技巧大汇总”中,我们将深入探讨ASP.NET的核心概念、开发实践以及各种实用技巧,帮助你提升编程技能,成为一名出色的开发者。 首先,ASP.NET的基础知识是必不可少的。...
"C~C++程序员实用大全——C~C++最佳编程指南"是一部全面覆盖这两种语言的参考资料,旨在帮助程序员提升技能,理解语言的核心概念,并掌握实际编程中的最佳实践。 C语言作为基础,它以其简洁、高效和对硬件的直接...
于是我将自己的创意程序共享到csdn资源上,大多数网友认为创意不错,就是简单了些——呵呵,其实我个人也这么觉得,只不过当时时间和能力的限制,也就那样将就了 …… 而今呢,我在七夕节时再次为我的女朋友写了一...