随笔:code.org小小艺术家课程

认识来源于实践。

最近在带小学生学习python编程,但是因为课程设计的有点难,所以学习效果不佳,于是放慢进度,让学生先学习code.org上的图形化编程课程,建立对编程的感性认识。虽然之前做了很久的少儿编程,也设计过课程,但是在认真学习体验code.org课程之后,感觉自己设计的课程,难度跨度还是有些大,讲授环节分解的不够细致。而且为夏令营设计的课程涉及到了太多的数学知识,把所有的学生都当做以后能够走奥赛路线,实际上相当部分学生只是家长让人帮忙看孩子。

能够把知识通俗的讲清楚是很难的,能够把高维度的知识用低维度解释清楚更不容易。所以好的科普作品是少的。ps:吴军的数学之美挺好看的。今天刚好看到有人问怎么评价曾仕强在百家讲坛对周易的解读,有个答案说的特别好,截图如下:


曾仕强

然而不幸的是,作为老师,一定要把自己已经形成的认知,调整到跟学生同一个层次,虽然在学校的时候,学了很多理论,但是真要吧自己调整到跟学生同样的认知层次,一是很难,二是刚开始的时候,会很吐血,甚至由于不习惯,很容易产生,这么简单都不会,显而易见的嘛等等,我这几天就陷入了这个误区,还好跟前前同事,一名优秀的老教师沟通,才改正了这种偏见。而且学生的认知层次是不同的,一定要分层,让每个学生都要有获得感,这个是相当重要的,这个夏令营,通过实践,提高了我对于编程教学的认识。

于是找到code.org,偷师学习。

计算机基础课程

计算机基础

因为我的学生都是四年级及其以上,所以我是从课程3为起点,而且学生的进度还是很快的,一直到课程6的第7关,才有学生反馈有点难。


image.png
起点

但是这一关,学生静下心来,稍加指导,能够通过也是没有问题的,而且不会的只是少部分。
其中课程3开始的小艺术家中的图案,用turtle也可以很方便的绘制,也就是说,学生可以把code.org作为先修课程,然后讲解python turtle的代码编程,有图形化的参考和反馈,学生在编写文本程序的时候,不会因为抽象思维能力不足而无从下手。

拖拽入门

image.png

很有意思的是,针对低龄段的儿童,code.org提供了拖拽游戏,让学生熟悉拖拽操作,很好的学习支架。这要比单纯的在课程中演示,效果直观的多,趣味性和交互性更强。

学生在学习图形化编程或者代码编程的时候,有的时候技能准备不足,不是所有的小学生打字都很快,很多初中生也很慢,所以如果是代码编程,教学生认识键盘,熟悉键位很重要,包括复制、粘贴、新建文件、另存为等基本操作。


light

code.org中的内容,体系非常棒,如果设计代码编程课程,可借鉴性非常高。而且无论是code.org,codecombat还是编程applightbot,在讲解编程的时候,都是先讲顺序编程,函数(codecombat函数在if语句后面),循环(lightbot是递归调用),再然后是逻辑判断,循环一般是在条件判断的前面,我很喜欢的一本python参考书《像计算机科学家一样思考》(think in python)也是将函数循环放到了比较靠前的位置,也许,对于零基础的编程学习者来说,循环确实比判断更加容易理解。函数是把命令放到一块,举刷牙或者三步上篮的例子,来讲解函数和里面的命令是个不错的选择,或者说自定义命令。


image.png

code.org很特别的一点在于,在讲解函数的时候,前面是用了向前走等系统自带的代码块,而后面讲解函数的时候,是在代码区呈现函数定义的代码的:

image.png

但是,只是讲解函数的概念,或者说自定义的命令,而且颜色跟系统自带的蓝色的代码块不同,予以区分,然后用绿色代码块代表的自定义的函数完成各种任务。函数的功能也越来越复杂,需要学生思考的东西也越来越多。


image.png
image.png

后面才慢慢要学生修改自定义函数内部的代码,熟悉函数的定义,而学生从零开始自定义函数,则是很靠后的内容了,这次我让学生定义函数就有些提前,学生学习新的知识,模仿是重要的。

image.png

直到课程6的第7关,学生在经过4/5/6关使用函数的基础上,才会让学生自己定义函数体,仍然没有让学生从零开始定义函数,在python中就是给学生脚手架代码:

def some_function():
      pass
image.png

而且code.org灰色的代码部分,禁止学生删除,避免了不必要的麻烦,要知道如果允许拖动,课堂教学,学生一定会把错误搞出花儿来,让你崩溃吐血的。

对于很多优秀的老师而言,这都是常识,但是对我来说,通过这次夏令营,我才更加深入的认识到这些,对于一个少儿编程从业者来说,这是不应该的,也算是自曝其短,有反思才会有进步。也许没有理论高度,但是好歹都是大实话。这么想来,当初面试某公司的编程部门被拒绝也是情理之中的事情了,现在看来幸好当初没有拿到offer,当时其实已经膨胀了,把平台带来的buff当做自己实际的能力,如今才开始沥干水分,踏实做事了。

Python越来越热,尤其是是在江浙地区,但是机构好开,学生好招,但是好的课程难寻,开发课程耗时耗力,code.org的体系不失为一个好的借鉴,当然微软本身也是K12 CS Framework编写组成员之一,能够研读美帝的计算机框架也是很好的。经验是粗糙的,正好借这段时间冷静的反思少儿编程,从极端的认为人人都应该学编程,见人就推广编程,到迷惘如何说服家长学习编程,到离开少儿编程行业,持悲观态度,有老友孩子5岁问我要不要学习编程,我都说太早了,到承认,编程教育其实真的不适合所有人,哪怕真的每个人都有必要去学,所以心态好了很多,不悲观,也不再狂热,只有很少部分学生可以走的很远,其实信息学奥赛搞了这么多年,教练员们早就看透了这一点。
先借鉴,再成长,加油。今天批评学生太喜欢炫耀,贬低别人,自己有时候何尝不是如此呢,引以为戒。承认别人的优秀和自己的不足,其实可以过的很好。加油。嗯写完了,想了想,题目其实不太合适,没能概括整篇文章的内容,我其实是想说,编程课程设计中的进阶设计来着。

你可能感兴趣的:(随笔:code.org小小艺术家课程)