昨天,我在群里发了一个思维训练题,题目的描述如下:
一个家具店里有三种课桌,其价格分别如下:(1)它们的价格各不相同;(2)它们单价加起来是4000元。(3)第二种课桌比第一种课桌便宜400元。(4)第三种课桌的单价是第二种的2倍。请您编程输出第二种课桌的单价是多少?
下面是我跟同事的一段对话:
同事:你不写个代码给我看看?
我:(4000-400)/4。
同事:能不能不用经过这么多的思考?我觉得计算机本来就是替我们解决问题的,我现在就跟先做数学题一样,我可以直接输出答案。
同事:就像韩信点兵,本来用数学方法貌似很复杂,可是用计算机编程就不用那么多思考。
同事:我可以用多重循环来解决上面的题目。
我:其实结果并不是最重要的。
同事:我们现在是在学习编程语言,我们要用编程语言的思想去解决问题。
我:我觉得错了,首先要有数学的思想,编程只是实现这一思想的手段或方法。
我:思考的过程比结果更重要。
同事:我觉得这样会把学生带偏的,尤其是刚刚学习编程的小朋友。
同事:编程是需要数学的思想,是去分析题目,而不是去做出这个题来。
我:900怎么得来的?
同事:算出来的。解方程就可以。
我:解方程也要先弄明白数与数之间的关系,三次循环一种穷举法,是没有办法的办法。如果老师用穷举法来解决问题,人就没有创造力了。用最笨的方法,让计算机去算去吧。
同事:我就是凑数得来。
我:我们锻炼的是孩子的分析问题能力,分析的过程更重要,编程永远不可能脱离数学,也就意味着永远不可能脱离数学的分析方法。
我:题目是不变的,但是看你如何利用?
同事:你胜出。
我:每个人的看法都有一定的道理,根据你的说法我也要反思,题目是否可以与编程更近一些?我们之间没有对错,智慧需要相互碰撞。
反思:这是一道逻辑思维题,是为了锻炼孩子的逻辑思维能力,学生需要分析三种课桌价格之间的关系,通过(3)(4)两句描述,可以将三种价格统一到第二种课桌的价格上来,第一种课桌的价格为:第二种课桌的价格+400,第三种课桌的价格为第二种课桌的两倍,那么三种课桌的总价格为:第二种课桌的价格+400+第二种课桌的价格+第二种课桌价格的两倍,正好就是4000元。那么我们要输出第二种课桌的价格就唾手可得了。我们需要让学生养成这种分析的能力,只要具备这种能力,解题就不是问题。如果真得用穷举法,学生只知其意不知其味。
我还是更看重过程,但是也会去关注一下结果与过程,让编程成为它们之间最好的桥梁。