33 posts tagged with "编程学习"

View All Tags

CodeLab【交互计算】课程发布

课程概览

什么是【交互计算】?

【交互计算】(Interactive Computing) 是 CodeLab 设计的一门 Python 编程入门课程。【交互计算】围绕动画、音乐、游戏等主题的创作,在 Scratch 和 JupyterLab 这种交互式编程环境中进行测试、探索、迭代,在和 Scratch 角色、 Python 程序互动的过程中表达自己的想法,实现自己的创意。

Bash 指南译后记

最近很多时间都花在翻译部署 四篇 bash 指南上,虽然名为 bash 指南,但 bash 本身既不是我做这些工作的出发点也不是最终的落脚点,而是最近理解计算机和编程的载体。只是恰好基于它,这份指南的作者帮我厘清了许多经常出现在视野范围内却始终晕晕乎的概念;同时,作者头脑犀利到简直性感,讲解漂亮近乎表演,具体讲的是 bash 或是其他,反倒次等重要了。如此说来好像不把 bash 当回事,不是的。我对学习与使用 Linux 系统是有执念的,bash 自然就绕不过去,四篇指南翻译完,也觉得熟悉亲近起来。这不,又要专门写一篇后记来为它发声。

CodeLab实习记

YO!我是虹穆,国内高校(华农)计算机专业大四学生一名,刚刚结束为期两个月的 CodeLab 实习。趁热打铁,写写在 CodeLab 为期两个月的实习。

这段实习经历更像是一场热恋,是因为呆在 CodeLab,会不停地接触和产生新想法,每次与新想法遇见的过程,就像置身初恋之中的每一次相见,都会让心疯狂地乱跳,是那么的惊喜,令人狂热又神往,而每临分别之际,又总是热烈迫切地期待下一次的相遇。

在这篇实习记中,主要记录的是在 CodeLab 中实习的感受,也会列出在此过程中收获的一些问题以及看待事物的不同视角,即便有了不同以往的视角看待原有的问题(如什么是计算机和编程?),也没有一个确切的答案,反而带来更多的问号“????”。

编程少年再加一


前言

zph是种瓜之前就认识的一位少年朋友,喜欢且擅长编程。上次编程少年1+1访谈之后,种瓜又联系了zph,也请他分享一下自己学习编程的经历,于是有了此续篇

我们虽全以“编程少年”概括之,但他们鲜明的个性跃然屏幕之上。随数量增加,他们之间的共性与差异会呈现出什么样貌?引人好奇与期待。海阔凭鱼跃,天高任鸟飞

当我们谈论编程时,其实是在谈论玩乐与创作


前天晚上与种瓜就官网改版发散式地讨论了一番,核心问题是我们要如何向外部讲述CodeLab想做什么、在做什么。讨论到最后,落脚到基于编程的表达与创作,正如CodeLab的使命是,“传递编程的乐趣,鼓励孩子成为数字时代的创作者”。

讨论过程中,关于个人自发的表达与创作,我们发现或许有股令人期待的浪潮正在蓄势。Scratch、Micro:bit、树莓派等志在鼓励数字表达、创作、赋权的非盈利组织,自不必说。值得注意的是,软件提供商如微软和苹果,当下都有编程教育相关的产品或项目;玩具厂商正设计、生产更多种类的智能玩具,典型如机器人;游戏厂商推出了可编程控制游戏过程的版本。这些意味着什么?软件的使用者可能成为开发者;玩具的玩法可由自己想象与发明;游戏玩家可能成为游戏设计开发者。我们由被动地接受转为主动地创作表达。

CodeLab DynamicTable: A Seeing World

当心灵和手不默契,艺术将不存在 -- 达·芬奇

在设计这样一个系统时,我们使用的一个隐喻是乐器,比如长笛,它是用户拥有的,并对用户的愿望作出即时和一致的响应。想象一下,在吹出一个音符和听到它之间的一秒钟的延迟是多么荒谬! --Alan Kay & Adele Goldberg 《Personal Dynamic Media》

编程少年1+1访谈


缘起

去年12月,CodeLab正式决定于每周二、周四下午以及周六全天对外免费开放,静待少年朋友们的到来。年后受疫情影响,开放活动现仍处于暂停状态。惊喜的是,一位来自北京某初中的少年朋友Hanson,在以Scratch与Python为关键词进行网上搜索时,发现了种瓜围绕CodeLab Adapter所做的系列工作,由此开始了活跃的联系。就这样意外地,CodeLab在线上等到了少年朋友的到来。

可喜的是,少年不止一位,Hanson还有一位同样热衷编程的小伙伴——在梦里。他们自发创建了博客,并在其上活跃地写作与分享。他们对编程自发的热情主动学习的能力,令我们欣喜又振奋,忍不住想对他们了解更多,于是有了下面的访谈。

静态网站初创笔记

不知道多少人曾有过或依然有创建自己的独立博客、或是围绕某一主题做一个网站的想法?

基于如GitHub免费提供的服务器,独立创建、部署、维护一个静态网站,就好比在交通发达且免费的地皮上自己动手盖一座房子,这是在网络世界内自立门户的好办法。更棒的是,关于这座房子要如何盖、盖在哪里、别人怎样找过来,网上满是答案与教程。在此,我也记录并分享一份写给朋友的盖房笔记,供大家参考。

之所以说“初创”,一方面是因为我本新手;另一方面是限于篇幅,这篇笔记没有涉及静态网站建成后剩余的完善性工作,这部分内容且留待另一篇笔记。

Scratch 拓展最佳实践 -- 以 Cozmo 为例

Keep It Simple, Stupid (KISS)

背景

本文写作有 3 个背景。

其一是 教育从业者 @jinlei 基于 Cozmo 已经顺利实施了很长时间的 AI 教育,学生们热爱 Cozmo,他们使用它构建项目时, 对 AI 领域的许多基础概念有了直观的认识,过程愉快而有趣。Cozmo 作为教育机器人,如 CMU 的 David S. Touretzky 教授所言: 一骑绝尘 ,这正是诸多组织,从 CMU、MIT、Google 到AI4ALL 将其用于 AI 教育的原因。@jinlei 希望使用 CodeLab Adapter 和 CodeLab Scratch 将 Cozmo 从官方 APP 中解放出来,使其能够可以与 STEM 领域的更多其他事物互动,以便于实施更广阔的教育场景。由于 @jinlei 团队比 CodeLab 更理解 Cozmo 在 AI 教育所能发挥的作用,所以我们计划将 Cozmo 接入 Scratch 相关的所有源码都开放出来(包括 Adapter cozmo extensionScratch cozmo extension),并在本文里说明设计思路,以便于 @jinlei 团队能够基于我们的工作继续前进,使 Cozmo 在 AI 教育上走得更远。

CodeLab暗号之可编程空间

当我们谈论可编程空间这个概念的时候,至少在当前阶段,具体的落脚点其实是物理空间内嵌入或容纳的软、硬件,如镜头之下CodeLab空间内集结的这些智能玩具、设备,以及因不便取下而无法入镜的智能窗帘、顶灯等。图中,除去少量书、积木、魔杖等物件,其余的看似造型、功能、用途、玩法五花八门,但都可归属于智能设备(或智能硬件)。也就是说,通电开机后,他们内部都有编写好的程序在运行,这和我们平时用的电脑其实本质相同。也可类比于生物,虽然具有多样性,但“生命”的特性相通。

如果继续沿用智能设备的生物类比,那么可编程空间或许就像生态系统,是一种动态的环境。如此想来,只是单纯陈列各种物件于空间中是远远不够的,他们之间应该存在交流互动,空间内由此生长叠加出丰富的关系,这样,才像个系统。

CodeLab暗号之Scratch

熟悉CodeLab的朋友应该都了解,我们常会提起很多名词与概念,人名、书名、项目名、产品名、还有科学与技术领域中的术语或专有名词。这些从具体事物中抽象出的概括性词汇,对于有相似背景或兴趣的人来说,就像接头暗号,双方交替报上几个,可能就心领神会了。但还有很多人,听完我们报的暗号,可能会一头雾水,搞不懂我们在嘟囔什么。

所以,今天我们从CodeLab口袋中只掏一个出来,希望使它尽可能地显形,最好能在朋友们的头脑中挤出一个落脚点,而不是一阵风后,没影了。

CodeLab Insight 发布 Alpha 版

介绍

CodeLab Insight 是 CodeLab 推出的 数据分析/可视化探索 服务。

服务于 少儿编程/STEM教育 领域的 教育者、学习者、研究员、运营人员 和 开发者。 当然也服务于我们自己(CodeLab的成员),以及CodeLab的合作伙伴。

旨在为他们提供从社区大规模数据中提取洞见(insight)建议的工具和服务。

CodeLab Adapter 接入 Teachable Machine

通过教计算机怎样思考,孩子们开始探索自己的思考方式。这种体验颇不寻常,甚至很多成年人也很难拥有--思考关于思考的问题。 -- Seymour Papert 《Mindstorms》

CodeLab Adapter 的目标之一是:

连接一切,降低建构和创造的门槛。

Teachable Machine是全球最酷的 AI 项目之一,所以我们准定接入它。

CodeLab Adapter 深度连接 micro:bit 生态

前言

因为开放性和出色的基础工作,micro:bit 现在拥有无与伦比的生态。

上周参加了Maker Faire shenzhen,现场有各类新的 STEM 教育套件,大多数基于 micro:bit: DIY 编程套件、类乐高编程套件、各类拓展板、麦克纳姆轮遥控车、可穿戴手表、循迹小车、平衡小车、机械臂...

去淘宝上搜一搜,琳琅满目。

时间回退到几年前,Maker Faire 上的编程/STEM 套件,几乎被 arduino 统治。去年,两者不相伯仲,而今年,micro:bit 生态已经明显胜出。micro:bit 似乎正处于 STEM 编程套件领域的中心。

Scratch项目解析器

Scratch增强计划

此前在Scratch增强计划中提到:

由于需要解析sb3文件,所以会顺手打造一些通用的小工具...简单写了一个脚本, 允许用户解压sb3文件,本地编辑之后,再重新生成sb3,之后在scratch3.0编辑器中依然能加载它. 这有什么用呢?还挺有用的,比如说我目前的一个用例: 之前保存的一些sb3项目在新的scratch3.0编辑器中打不开了(可能是新的平台不存在旧的extension),我通过移除sb3中对应的extension block就可以重新加载项目...脚本源码和使用方法在这里:sb3_compress.py

Scratch增强计划

There are many ways to live your life. That's may be the most important thing you can realize in your life is that every aspect of your life is a choice...
You can choose to accept the world as it is but you don't have to.
If there is something in the world you feel the wrong and you have a vision for what a better world could be, you can find your guiding principle and you can fight for a cause.
So after the talk I'd like you to take a little time and think about what matters to you?what you believe in? what you might fight for? -- Bret Victor《Inventing on Principle》

Revolution Robotics Challenge Kit: 为STEM教育注入变革的力量

ROBOTICS IS FOR EVERYONE!

想象一下

设想这样一款STEM编程套件:

  1. 类似乐高积木的结构件和控制主机(网口)
  2. 使用树莓派作为大脑,运行Linux
  3. 新手友好的APP
    • 3D视图的项目搭建引导
    • 图形化编程界面(同时显示Python代码)
    • 内置手柄、摇杆等控制器
  4. 使用蓝牙连接,方便在课堂、户外等环境中使用
  5. 爱好者们在社区中交流讨论并分享作品
  6. 以上这些全部开源!

我想,这是许多STEM教育从业者梦寐以求的开放套件。个中原因容易理解。

开源项目与开源社区

一个在封闭项目中只靠自己的开发者,将远远落后于这种开发者:他们知道如何创建一个开放的、有改进能力的环境,在这个环境中,上百人(甚至上千人)反馈并提供设计空间拓展、代码贡献、bug 定位以及软件的其他改进 -- 埃里克·雷蒙《大教堂与集市》

前言

最近@曾老师在学校里为大二学生开设了一门选修课:开源软件开发技术(2019 年秋季项目设计),这门课将带着大家接触开源文化、构建开源项目、参与开源社区。

课程计划采用类似编程马拉松的形式在三个周末完成项目。

CodeLab Adapter ❤️ Jupyter/Python

前言

上周与@曾老师一起在杭州湾参加为期四天的AI夏令营,做一些技术支持和辅导的工作,体验颇似黑客马拉松。

活动中教育者与学习者们皆十分用心,有些同学为了做好手头项目彻夜未眠。

由于Alan Kay和Seymour Papert的影响,活动过程中,我的视角一直放在编程/软件环境等基础设施上。大家都在使用Python编程(下个十年的编程教育应该都会基于它),触及的编程环境五花八门,许多工具恶劣而狂野,以至于教育者和学习者所做的努力中起码有一半用于与糟糕的技术环境搏斗。

toio: 她有轮子!

可是,她的轮子在哪里? -- 爱因斯坦(2岁半)

前言

爱因斯坦2岁半的时候,他的妹妹出生,父母抱给他看,他以为是要给他一个玩具,问到:"可是,她的轮子在哪里?"

孩子似乎对有轮子的东西情有独钟,连特立独行的爱因斯坦都不能免俗。

toio是孩子会喜欢那种玩具。

toio是个惊人的玩具,不只是有轮子。

[译]儿童学习的背景

原文地址:Background On How Children Learn, 作者: Alan Kay, 翻译: snownstone(CodeLab志愿者)

绝大多数传统文化都没有设立学校,也无此必要。儿童天生就是通过观察模仿成人的活动,来认识他们周围的世界。成为传统文化的一员意味着什么,如何在其中生存,这些命题相关的核心内容都是向儿童敞开的,以模仿游戏进行学习足矣。

空间编程、物理计算与密室逃脱

就象一个躺在黑房间里但是醒在床上的人,忽然看见窗帘上透进一道光线,心里知道只要拉开窗帘,眼前就会展开一片晨光朗照的原野似的。 -- 毛姆 《刀锋》

前言

本文来自今早与@李懿的交流。

交流中,@李懿提到与朋友介绍Neverland,这个朋友喜欢解谜游戏,提议说解谜的元素是否可能加入到Nevlernad空间里

我朋友提到说,既然我们可以联动空间里的任何物体,有可能实现的场景如:① 通过操作机关,将灯的颜色按特定顺序排列后,激活投影仪,在墙壁上投影出提示信息;② 带有四位数字的密码锁,允许通过简单编程来暴力破解 ③ 在空间中寻找 Scratch 的拼图积木来解密(机器视觉识别出拼出的图案,运行对应逻辑)。

游戏化编程是个好主意吗?

你把一粒石子投入池中,宇宙就不完全是它先前那样子。 -- 毛姆《刀锋》

前言

随着互联网+AI+5G+这些词汇变得时髦, 加上政策导向, 编程教育变得炙手可热。在这些时髦词汇中,游戏化编程常被提及。

前天晚上和@曾老师(CodeLab理事之一)聊到游戏化编程这个话题,聊到很多有趣的观点,!--明早@曾老师有个做游戏的师弟对这个话题感兴趣(国内最大的游戏公司之一),准备来Neverland交流,也计划用于明天的沟通-- 本文对此做一番梳理。

Scratch3.0、micro:bit与Windows7

前言

Scratch3.0在2019.1.2推出后,社区一下子热了起来。从Scratch2.0到Scratch3.0的更新中,显著的一个变化就是增加了对micro:bit的官方支持。

micro:bit是非常优秀的开源硬件,Scratch3.0对其进行支持,无疑能够帮助用户作出更加有趣的创造,也提高了Scratch的天花板。

基于兴趣的学习面临的诘难

我们在公众号的第一篇文章:教育游戏化中抛出了一个对「基于兴趣的学习」的典型诘难:

如果你从儿童的冲动和兴趣出发,一切都是如此粗率,如此不规则,如此散乱,如此没有经过提炼、没有精神上的意义,他将怎样获得必要的训练、陶冶和知识呢?

我在文章结尾处说:

杜威引述的这个问题十分尖锐,杜威自己给出了很不错的答案,Scratch也给出了令人满意的答卷,我们留待之后讨论热情(Passion)的部分来讨论它。

我们在上篇文章:hard fun里讨论了热情(Passion),本文将开始讨论基于兴趣的学习面临的诘难。

scratch社区一览

原文地址:scratch社区一览
主页

Imagine, Program, Share

维基百科的scratch词条里提到:

Scratch 设立了一个线上社群,其口号为“想像・程序・分享”,分享和创意是 Scratch 最重要的理念...线上社群中有不同类型的项目,范围包括游戏、动画、演示稿和聊天机器人。所有项目都以知识共享的特许方式发布

scratch社区是目前编程领域最庞大也最为活跃的社区之一,在少儿编程领域,更是一骑绝尘

本文将对scratch社区做一番介绍,带领大家一览社区风采;同时我们也关心scratch社区的一些量化数据,并据此做一些解读和分析

本文不是一篇scratch入门教程,入门引导可以参考开始使用 Scratch。 如果你对scratch的诞生和背后故事感兴趣,可以参考: Scratch的前世今生

两种硬件编程风格的比较

人的心智活动透过简单的概念而发挥它的力量,方法主要可分为三种:第一,把数个简单的概念组合成一个复合的概念,于是所有复杂的概念成焉。第二,将两个概念,不论简单或复杂,不将它们结合,而是同时并列在一起观察,如此就能得知何为相互关联。第三,把某些概念,与伴随它们其他真实存在的概念区隔出来,称为这抽象艺术化,所有一般化,概化的概念皆是由此而生 - 约翰·洛克《人类理解论》

scratch3.0 + micro:bit中,我们提到

在少儿编程/硬件编程教育领域,硬件编程有两种风格,我将这两种风格分别称为灌入式交互式

我相信就编程教育而言,交互式优于灌入式

这篇文章我们将讨论这两种编程风格给学习者的编程体验 以及心理状态所带来的影响。所谈论的很多内容,在编程语言的发展历史中都被反复讨论过。

本文中,我们只讨论图形化硬件编程,但得出的结论并不局限于此