https://www.zhihu.com/question/355560585/answer/3157234855
英文里“程序”是 program,这个词的含义很广。
去年的构思,也许不一定有机会实践了,小结在此。几个主要思路:
回顾日常生活中的各种过程,如上学、做早饭等,大纸画流程图。增进互相了解,促进表达。
编程要素:分支、循环等
问题分析与解决,应用之前的程序知识
编程相关要素:复杂分支、循环,优化等
综合素质:全体合作
编程相关要素:模式匹配,语法设计,内容生成,随机量,结合之前知识
全程不需电子设备。准备材料有大幅纸张,胶带,马克笔,瓶水和空杯,粉笔(如果地上可以画)或者拼插泡沫地砖。
设想是teach coding without computer,不需电子设备,室外室内都可以。在介绍编程相关基本要素的同时注重问题分析解决、交流表达能力。
过程中会尽量减少枯燥说教和专业术语,尽量鼓励孩子动手和互动。回头给您看个示例可以更直观一些。每节课应该都会有一定成果。整体课程设计可以根据这一周的课时安排而定。
【教学案例】第一课:字的写法
我自我介绍“吴老师”,对学生:请大家把“吴”写在纸上。如果没人会写,则自己写在白板后让(可以只给一部分大龄学生看)照着写。
请现在会写了的学生A描述写法给其他还不会写的学生B听(只说,不比划),看B写出来的是否像。学生A说:一个口,一个天。假设B写成了: 口天,就可以让A想想如何再次更精确地描述以达到B可以重现的目的,并将每次描述写下,作对比分析。
(假如是单人授课,则可以由我说各种写法让学生听着尝试写)
接下来,让学生用自己的姓名中的字或者喜欢的字,作相同练习。
比如“赵”,如果里面的部分不知叫什么,可以用笔画描述,如果仅“一撇,一捺”,可以提问如何和“人”区分。之后,可问如何更简约地描述,如“一个叉”。
后半段,综合各学生对所有字的表述,小结出描述写法的一套格式,这就是描述中文字符写法的一个DSL设计。最后试着将此DSL用于描述其他字,看看是否合用,反馈信息可能有哪些(比如A说“走字底,一个叉”,B听了问“叉怎么写?”),有何可改进之处。
(此DSL已在这里开始初步原型尝试:https://gitee.com/zhishi/chinese_characters_words/blob/master/src/chinese_characters_words/%E8%AF%AD%E8%A8%80.py )
【教学案例二】一水二分
把一瓶水等分成两杯。一个方案的程序概要是: 1、把水倒入两杯
2、比较两杯水位高低
3、如果一杯更高,则倒一点到另一杯;否则结束,完成等分。
4、回到第2步进行循环
这个课题非常贴近生活,适合孩子自行设计方案之后动手逐步操作,还可以发散思考其他方案进行比较,从执行步骤多少、难易等等分析优化效果。
同样可以分析各描述小结 DSL。
【教学案例三】对话机器人
先分组进行聊天,并记录下过程。基于聊天内容,设计对话机器人。通过纸上演算,对输入进行parse,并生成对应回话。将这个算法记下。最后综合各组的算法,得出一个或多个合作品。作为展示,基于这些算法生成几个对话过程,让家长猜哪个是真人。