当爸爸后,我很快就知道了一个词——早教。有时候真的感觉现在中国的孩子太可怜了,为了让他们赢在起跑线上,从小就要被父母投入轰轰烈烈的教育事业中。什么脑电波音乐、幼儿简笔画、蒙氏数学、右脑识字、语训、跳舞班......,花样层出不穷。想当年我小时候,哪有这些东西,父母不管,到处乱跑,忙着打架、偷邻居家种的西红柿之类工作。这不,又被老婆大人抓差,陪孩子研究新到的”巧虎“学习本。(没小孩的朋友别笑,等你当父母后,可能就知道”巧虎“是嘛东西了。)
看看,巧虎书对四岁小孩就开始进行计数训练了。巧虎摘了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++程序员面试宝典——第17章_思维拓展,大家共分享
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. 排序算法:包括快速排序、归并排序、冒泡...
【程序员之路———关于代码风格】的探讨主要集中在代码风格的重要性、代码行极限、缩进方式、折行原则以及空格和空行的使用。这些规范对于任何程序员来说都是提高代码可读性和团队协作效率的基础。 1. **代码行...
程序员小飞解密——纯新手的我,到底该把宝押在python2还是python3??
《C~C++程序员实用大全——C~C++最佳编程指南》是一本为C和C++程序员量身定制的综合教程,旨在提供全面且深入的编程指导。这本书涵盖了C和C++的基础到高级主题,是提升技能和深入理解这两种语言精髓的重要资源。 ...
在这个“优秀程序员之路——ASP.NET开发经验及技巧大汇总”中,我们将深入探讨ASP.NET的核心概念、开发实践以及各种实用技巧,帮助你提升编程技能,成为一名出色的开发者。 首先,ASP.NET的基础知识是必不可少的。...
"C~C++程序员实用大全——C~C++最佳编程指南"是一部全面覆盖这两种语言的参考资料,旨在帮助程序员提升技能,理解语言的核心概念,并掌握实际编程中的最佳实践。 C语言作为基础,它以其简洁、高效和对硬件的直接...
于是我将自己的创意程序共享到csdn资源上,大多数网友认为创意不错,就是简单了些——呵呵,其实我个人也这么觉得,只不过当时时间和能力的限制,也就那样将就了 …… 而今呢,我在七夕节时再次为我的女朋友写了一...