当然,一时热情是成不了事的,在念头产生之后,我开始正式考虑编程这件事情,分析利弊。
提给自己的问题
既然事关教育,那么最主要的利弊当然就是分析:小朋友学编程到底有什么用?// 问题-1
其实问题-1 之前还有一个问题:学编程到底是学什么?//问题-2
而要回答问题-2,还需要先回答另一个问题:怎么样就算学会了编程?//问题-3
怎样算是学会了编程?
对于 问题-3,我认为可以分为三个维度:学编程就是要学会 i)编程语言;ii)算法;iii)工具。
i)编程语言
编程语言是程序表述的形式,是编程这件事的表达手段。
怎么算学会了编程语言呢?很简单,学会了编程语言甲的标志就是,从今往后,再有编程语言乙、丙、丁、戊、己、庚、辛……,只要有足够的文档和样例代码,就能自学掌握。如此,则说明在学习编程语言甲时,已经掌握了“编程语言”这个东西的内涵、外延和重点。
ii)算法
广义的算法是一个很宽泛的概念,只要是有始有终有结果的过程,都可以被叫做算法。
狭义到仅限于计算机领域的算法也有很多,解决任何一个计算机执行的任务的过程,都可以被称作是一个算法。
提给自己的问题
既然事关教育,那么最主要的利弊当然就是分析:小朋友学编程到底有什么用?// 问题-1
其实问题-1 之前还有一个问题:学编程到底是学什么?//问题-2
而要回答问题-2,还需要先回答另一个问题:怎么样就算学会了编程?//问题-3
怎样算是学会了编程?
对于 问题-3,我认为可以分为三个维度:学编程就是要学会 i)编程语言;ii)算法;iii)工具。
i)编程语言
编程语言是程序表述的形式,是编程这件事的表达手段。
怎么算学会了编程语言呢?很简单,学会了编程语言甲的标志就是,从今往后,再有编程语言乙、丙、丁、戊、己、庚、辛……,只要有足够的文档和样例代码,就能自学掌握。如此,则说明在学习编程语言甲时,已经掌握了“编程语言”这个东西的内涵、外延和重点。
ii)算法
广义的算法是一个很宽泛的概念,只要是有始有终有结果的过程,都可以被叫做算法。
狭义到仅限于计算机领域的算法也有很多,解决任何一个计算机执行的任务的过程,都可以被称作是一个算法。