美文网首页计算思维
编程教育漫谈(一)

编程教育漫谈(一)

作者: Karen隆 | 来源:发表于2020-02-11 22:41 被阅读0次

    编程教育的目的应该是给学生一个环境,去体验如何完整的,独立的解决一个问题,或者完成一个任务。

    1. 遇到问题应该要有一个良好的心态:只要是一个明确的问题,我就一定能解决它。
    2. 接着是学会去分析这个问题。最基本的就是大化小,小化无。这个过程我认为有两个重点,一个是明面上的分解,另外一个,是框架,也就是我们是按照一个什么样的逻辑去分解问题的,分解完的小问题是如何结合起来最终解决大问题的。
    3. 再接着就是从过去的经验总结中找到解决分解好的各个小问题,小任务的方法。
    4. 然后呢,把我们的解决思路用计算机能够理解的语言描述出来,也就是编程。其实这一步还是分成两个部分,一部分是把小问题分块编程,反应到python里呢,就是写函数,写类。第二部分呢,也就是步骤2中,所谓的框架,对应的就是主函数部分。
    5. 大部分学生写完程序,心理上就放松了,其实包括我自己也经常会这样。然而,路漫漫兮,程序看起来写完了,可是我们的目的是解决问题完成任务呀,程序写完也要运行测试一下看看能不能解决问题。也就是我们debug的过程。(其实在这之前,每完成一个小问题的程序,都应该要想办法测试一下)
    6. 在debug的过程中,其实又是一个新的发现问题,解决问题的过程。
      这一步很重要的是,描述清楚问题,然后定位问题。当然,最最关键的还是要有一个解决问题的心态。

    上面6个步骤是我认为,编程教学中,非常核心的一个流程。结合学生的情况,每个步骤应该有不同的侧重。

    1. 目前大部分学生都是新接触编程,或者了解不深,这样的情况下,他们本身就是一头雾水,更谈何去有一个好的心态,谈何去分析问题。此时,应该关注的是,引发学生对编程的兴趣,激发他们探索的欲望。我现在在教学中,用scratch入门,以游戏项目的形式去引起兴趣,对于不喜欢游戏的孩子,以鼓励他们通过编程来创作表达自己的想法为主。后续将引入python,分成两个阶段,先是游戏项目作为过渡,然后设计几个真实有用的项目。
    2. 分解问题。这是个比较需要费脑费时的过程,要让学生们有这样的意识,还是需要一定时间的,过去的经验告诉我,一学期或者一年的学习,一个班上的孩子会有两种:一个是处于一头雾水,因为没有太大兴趣,所以也不太愿意去思考,这部分学生的问题要在第一点解决;另外一种是表现不错,逻辑比较强,这部分学生呢,往往自我感觉能力强,凭感觉去写程序,不愿意花时间在有条理的分析上,喜欢拿到任务就去写程序,而不是分析。
    3. 因为目前接触的学生都是在给他们打基础,所以分解问题的步骤是我在课上会着重带着他们去分析下去的,而分析到了最后的时候,也就是子问题的时候,他们大部分同学都会觉得,原来看似复杂的任务,最后可以这么简单。说这一点的目的也是在提醒自己,不能急,不断重复这个过程之后,学生就会有这样的习惯,慢慢的就会自己下意识的去采用。
    4. 在写程序这一步,我觉得需要批评一下我自己,在过去的教学中,往往是过去强调前面的分析,把自己的思路带进去了,总觉得学生听完就应该都会了,而不是详细的再把程序给他们过一遍,或者说,没有把“分析的过程”与“程序”一一对应的关系教给学生。这就导致看起来学生知道了这个任务,但是开始下手写程序的时候总是“老师老师我不会”的叫着。后面的教学,要谨记这个环节。
    5. debug环节,其实是我认为编程教学特别需要线下教学的这样一个过程。很多人觉得,学生遇到问题的时候,直接告诉他怎么解决就行了,实际上不是,在线下上课的过程中,我很强调让学生把问题描述给我听,然后不断的在一问一答之间帮助他定位到问题,然后再引导他发现可能的修改。这个过程中,很重要的是,要通过语言和行动让学生觉得,有问题没关系,也不能急,要相信他自己一定能够解决问题,同时也在这个过程中让他感受解决问题的流程和思路。

    相关文章

      网友评论

        本文标题:编程教育漫谈(一)

        本文链接:https://www.haomeiwen.com/subject/neoxfhtx.html