Results 590 comments of Xuan Wu

2019年 4 月末开通["用中文编程"微信公众号和今日头条号](https://zhuanlan.zhihu.com/p/64079707)。还有其他一些自媒体号(企鹅、大鱼等等)。最近的推广相关详细数据请见公众号文章。 下一篇会报告至今的”收入”金额 ;)

[Gitee《开源指北 1.0》之——开源项目必须用英文命名标识符吗?](https://zhuanlan.zhihu.com/p/347701292)

借助在线翻译略读了一下官方教育指导, 初步理解是以类似Scratch的日文版为编程环境(可以另选环境). 下一段有点意思: > また、文字により記述する言語(テキスト型プログラミング言語)にも様々なものがあります。キーボード操作が多く、それぞれの言語の文法の理解も必要となりますが、**_英数字だけでなく日本語で記述できるものや_**、文法的な誤りがあった場合には間違いを指摘してくれるものなど、児童でも比較的取り組みやすい言語もあります。ある程度の授業時数を確保して取り組む場合や、プログラミングに強い興味・関心を示す児童については、こうした言語を活用することも考えられます。 阐述了其他还有很多基于文字的编程语言, 粗体部分大概是"不仅可以用英文/数字, 也可以用日语表述". 如果理解无误, 这应该是明确点出了在主流编程语言中进行日语命名的可行性. 下面几个与核心学科结合的例子: 画多边形, 感觉是类似LOGO的功能, 也许是扩展了Scratch: ![screen shot 2018-10-21 at 10 52 24 pm](https://user-images.githubusercontent.com/392497/47279170-19cc0300-d584-11e8-90d2-7ca2ba5bf970.png) 通过测量到物体的距离的传感器控制通电创建连接的发光二极管的照明电路, 应该也添加了日语的物理学相关API(图中文字不认识): ![screen shot 2018-10-18 at 3 02...

@ZoomQuiet 近来少儿编程逐渐兴起, 感觉此类拖拽式编程被普及不少. 前不久看到的[编程猫IDE体验:对Scratch的改进](https://zhuanlan.zhihu.com/p/33650956), 在关键词和API中文化的基础上还增加了一些功能. 对比之前对实用编程语言/IDE的[特性讨论](https://github.com/program-in-chinese/overview/issues/11), 感觉它现在比较欠缺的是对团队开发/代码重用(API封装)/版本控制/测试/调试的支持, 以及功能API的欠缺. 个人认为, 此类编程环境虽然现在仅以教育用途为主, 但也许有潜力由非专业IT人员开发使用. 从最近看到的[财经应用](https://zhuanlan.zhihu.com/p/36426258)和之前的[游戏脚本设计例子](https://github.com/program-in-chinese/overview/issues/9#issuecomment-320517568)看, 拖拽式开发可以满足不少小应用的流程控制和复杂度, 而且有语法出错相对较少的优势. 这帖主要探讨少儿编程与核心学科的结合. 对于[楼上](https://github.com/program-in-chinese/overview/issues/97#issuecomment-431747783)的想法, 在现在的编程工具中, 感觉似乎用Python3实现最有可行性, 不知有没有其他建议? > 之前的一个想法, 将尽可能多的教科书知识(从小学开始)用程序+数据整理表达, 比如梯形定义,面积, 主谓宾语法, 电流公式, 煤矿富集的省份, 1930年发生的历史事件等等. 感觉与上面的学科结合手段有点接近, 范围也许更广.

尝试从人教版小学数学一年级上册开始, 但已经觉得也许从更高年级开始更有可行性(更容易程序化). 感觉这样的项目做大了就会接近[wolfram知识库](https://www.wolfram.com/knowledgebase/), 区别似乎只是开源和中文化. #### 准备课 认知部分, 如认识上下左右前后, 算法识别不现实. 比多少的部分, 在**没有加减能力的前提**下, 通过将两组物品进行1:1的摆放, 定义了"同样多", "A比B多/少"的概念. 因此也模拟此过程, 避免使用加减法和数字大小比较, python3实现如下: ```python3 from enum import Enum class 比较结果(Enum): 多 = "多" 少 = "少"...

@ZoomQuiet 虽然wolfram提供[API](https://products.wolframalpha.com/api/), 但并不免费. 而且, 毕竟数据不是开放的, 而且查询结果也是全英文(翻译量会非常大). 刚试了不支持中文查询(不过拼音可以:`cao cao`): ![screen shot 2018-10-24 at 9 41 54 am](https://user-images.githubusercontent.com/392497/47446906-1ba6e980-d771-11e8-9f8f-16901ac93a52.png) 暂时没有发现开源的知识库(数据), 尤其是中文的应该更少. 个人觉得和中国相关的部分特别值得数据化, 比如历史/地理(之前[打听过此类数据库](https://www.zhihu.com/question/61607216), 唯一一个发现的也是国外维护的). 在此基础上可以衍生出很多周边项目, 比如基于历史史实的互动类游戏.

尝试了一下用Python3编写历史数据, 感觉有几个优势: - 数据都是文本格式, 易于合作编辑 - 易于扩展和重构, 相比数据库, 可以更方便地增减/修改数据之间的关系 - 编辑时可以借助IDE的自动补全, 语法错误等功能, 减少笔误 - 易于编写自动测试以保证一些基本检验规则, 比如朝代没有重合部分, 先辈出生日期肯定早于后辈, 等等. - 易于直接使用数据进行分析: 比如这样: ```python3 消失国家 = list(set(国家所属时期[朝代.春秋]) - set(国家所属时期[朝代.战国])) print("春秋消失的国家: " +...

@ZoomQuiet 文中提出的几个要素基本上是往对开发者更可读, 在基本概念上更与核心知识(比如数学)一致的方向走. https://github.com/program-in-chinese/overview/issues/33#issuecomment-328754310 中的设想有点相似. 不过这个issue关注的重点并非编程语言本身, 而是构建基础知识库. 文章最后一句很应景: > Unlike the languages that come and go with the fashion, the things that matter do deserve constant reinvention. 无论人机交互方式如何变化(编程语言只是[其中一条途径](https://zhuanlan.zhihu.com/p/35058489)), 核心知识是相对稳定的(公理/自然规律/历史/地理等等).

@ZoomQuiet > 所以, 尝试通过将文本界面变成中文, 并不能本质的提高这类相对稳定的工程经验获得效率... 如[楼上](https://github.com/program-in-chinese/overview/issues/97#issuecomment-432862303)演示, 这里首先要积累的是中文知识库, 相关查询语言/界面只是副产物 > 学习的核心过程, 是自身知识树的重构...信赖大量的专注的有结构的训练... 所以, 可能中文编程 这个概念本身的提出以及实现, 受益最大的, 不是学习者, 而是实现者... 如果对"中文编程"本身有疑问, 请移步https://github.com/program-in-chinese/overview/issues/44 . 如果对知识库或者中文知识库本身的作用有疑问, 也许可以参考各种英文知识库的使用情况.

@SilverLeaves 之前做过[中文版logo](https://zhuanlan.zhihu.com/p/32571516)的原型. 但这里针对的是传统学科/基础知识, 主要目的是义务教育阶段的辅助学习(编程只是工具而非目的), 而不是像现在市面上多数少儿编程采用的从游戏中学基本编程(基本与传统学科无关).