教七岁孩子学习编程和数学

机械的教育

我小时侯的小学,条件简陋。老师的数学教育,就是死记硬背,谁记得多,谁就能得第一。比如说,除法,老师在黑板上写,83除5,先从第一位除,不够除怎么办,够除怎么办,余下怎么处理。为什么这么做却从来没有好好的解释。

问题来了,首先是如果有一个新的问题,老师没有教过,我根本不知道怎么样去思考,从方法的角度去解决。也就是说我的独立思考能力没有得到任何提高。其次是无聊,明明一个小小的计算器就能算出来的问题,为什么要花那么多时间做那么多无聊的作业?

后来我自己的职业和数学、计算机紧密联系。本科学了大量计算机算法和数学。博士研究就是用数学解决大规模的运筹学问题,才体会到,原来计算机和数学最重要的是独立思考,想出来一个解决办法,并且用计算机实现。

独立思考能力的培养

我的小孩今年7岁。冠状病毒不幸中的小幸运是,我天天在家,孩子也天天在家。我尝试着用我对数学和计算机的理解来教我的孩子。我的规则是,
  • 有趣。数学和计算机是非常有趣的。有趣在于挑战,在于思考的过程。如果我让孩子说1+1=2,写100遍,那就是折磨。如果我的职责是引导孩子,让他去想,他非常有成就感。
  • 集中注意力。教孩子的时间一般在5-10分钟之内。小的目标实现了就停止。

举个例子吧。

就说除法,到现在为止,我的孩子还没有学大部分课堂教的除的办法。他的方法是他自己想出来的二分法(https://zh.wikipedia.org/wiki/二分搜尋演算法)。我先是解释,为什么要除。一个喜欢钱的孩子,当然要用分钱的例子。比如说我们两个捡到100块,给两个人分,那就是除。每个人还得分的一样。先从显而易见的开始,2/2=每个人分一个。那25个给5个人分呢?

孩子说可以试几个数字。先从1开始,每个人分一个,结果还没分完。在这个时候我的孩子只会算加和减。那就试大一点的数字。我们发现试25次肯定能找到答案。能不能更快?

我引导孩子,说如果试了8,也就是每个人分8个,分给第一个人,第二个人,第三个人后,就剩一个了。那第四和第五个人就不够分了。在这种情况下还要不要试每个人分更多?

孩子想想说不用了。再引导孩子说如果每次从1-25的中间试,试12,太大,那就不要试比12大的数字,范围缩小到1-12。然后再从中间取,以此类推,这样很快就试到了。为了更有趣,我还写了一个电脑程序,实现了孩子的想法,让他试很大的数字除,然后很快得到答案。

好处是,孩子觉得非常有趣,非常有成就感。最大的收获是,孩子自己解决了一个问题,他锻炼了独立思考的能力。

附图1:和孩子做概率实验


附图2:和孩子学程序中的条件






Comments

Popular posts from this blog

李博士的暑期少年计算机课

学生评价