适合教孩子编码的 7 款免费编程语言

2023-11-17

21CTO导读:计算机编程是一项需求旺盛且欣欣向荣的事业, 所以这些日子父母们可能都希望他们的孩子长大后也能成为一名软件程序员。如果想教小孩如何编程,该从哪儿开始呢? 可以尝试以下列表中这些对儿童友好的编程语言以及工具。

  1. Scratch

海风教育在线辅导0元一对一试听课等你来领取,领取课程方法:
1、私信留下您的手机号和姓名,需要补习的科目。
2、也可以在海风教育官网留下您的手机号领取www.hfjy.com

Scratch 是由 MIT 终生幼儿园实验室(Lifelong Kindergarten Lab)开发的一个免费的儿童编程语言。该免费语言由入门教程以及给父母们看的课程说明,还有一个强大的用户社区组成的。Scratch 还提供了可以在没有计算机之时供你学习 Scratch 编程概念的卡片。

Scratch 利用了一个构建块形式的可视界面来给孩子们(包括他们的父母)创建一个更加系统的体验。你可以将诸如动作、事件以及操作这样的程序组件堆到一起。

每一个快都有一种形状,只允许其同与它的形状适合的对象结合在一起。 例如 " Repeat loops",是一个像“U”的侧面的形状,你一看到就会知道需要把块放到一个循环的开始和停止之间。

Scratch 可以拿来利用预先填充的图像以及字符或者是上传新的,来制作出真正的动画和游戏。Scratch 无需互联网连接就能为我们所用。孩子们可以选择将他们的作品共享到 Scratch 的在线社区。

因为 Scratch 是免费的且得到了不错的支持,所以它就是我们推荐的适合孩子编程方案的不二之选, 而且清单中其它对孩子友好的编程语言里,我们也很容易能看到 Scratch 的影子, 比如 Blockly。

建议年龄: 8-16岁

需求: 一台运行着 Mac, Windows, 或者 Linux 系统的计算机。

  1. Blockly

www.hfjy.com

Blockly 是 Google 对 Scratch 使用相同的互锁构建块的重构,但它可以输出几种不同编程语言的代码。目前,这包括 JavasScript、Python、PHP、Lua 和 Dart。这使得 Blockly 更像一个可视化的编辑器,而不仅仅是一个儿童友好的编程语言。

事实上,在将块链接到一起之后,你可以在屏幕侧边看到代码,并且可以即时切换编程语言,以查看同一基本程序的语言语法差异。这使得 Blockly 成为理想的适用于多年龄段的学习的代码,包括年龄较大的孩子和成年人,他们可能不太欣赏年轻的歪曲的猫和卡通化的Scratch。

这听起来像是从 Scratch 的一个惊人的过渡,事实上,谷歌正在与 MIT 合作开发基于 Blockly 平台的下一代 Scratch。

Blockly 也用作 Android App Inventor 的支柱,可用于开发 Android 应用程序。MIT 已经接管了以前是 Google 的项目。

不幸的是,Blockly 并没有像 Scratch 那样完全开发 - 现在还没有那么多可用的教程。 因此,我们增加了推荐的年龄或建议增加家长的支持。然而,Blockly 作为一个适合所有年龄段的健壮的编程环境前途远大。

建议年龄: 10+

要求: 可运行 Windows, Mac OS 或者 Linux 的电脑

  1. Alice

Alice 是一个自由的 3D 编程工具,被设计用来教授面向对象编程语言的概念,比如 C++。它使用熟悉且容易获得的建筑积木让孩子通过编程控制摄像机运动,3D 模型,和场景来创建游戏或动画。

拖拽型的交互界面和简单的播放按钮比起草稿型的杂乱界面对某些孩子来说可以减少困惑。在 Alice中程序或“方法”能被转换传入 Java IDE 比如 NetBeans,因此学编程的学生能够从可视化的积木界面过渡到标准的编程语言。

Alice 是卡内基梅隆大学开发的,你必须去系统设置-安全和隐私-允许应用下载从:任何地方。(一旦安装完成你就可以改回你的安全设置)

建议年龄:10 岁以上

要求:运行 Mac,Windows,Linux 的电脑

  1. Swift Playgrounds

Swift 是一种用于构建 iOS 应用程序的编程语言。Swift Playgrounds 是一款 iPad 游戏,旨在教孩子如何在 Swift 中编程。 该游戏可从苹果免费下载的,不需要任何先前的编码知识。
该应用程序包含了许多关于 Swift 不同命令的教程,举个例子,在 3D 世界中移动一个名为 Byte 的字符。虽然并不需要什么编程知识,但孩子们需要知道如何阅读教程,并有一些解决问题的毅力。拖放代码可以消除打字错误,但 Swift Playgrounds 没有使用联锁块界面。

一旦你的孩子精通 Swift Playgrounds,他们就可以开始用 Swift 开发了。

建议年龄: 10+

要求: iPad

  1. Twine

对于那些对创建游戏和讲故事更感兴趣的,而不太喜欢编程技术细节的孩子,尝试下 Twine。
Twine 是一个免费的非线性叙事性应用程序,被所有年龄段的用户使用,包括大量的成年人和教育家。使用 Twine,你不需要学习任何代码。它的目的不是教用户如何编码,而是教他们如何组织、呈现非线性的游戏和故事。

Twine 的故事包括页面文本和图像,如网站类似。设计界面中显示了连接的页面,每个页面都可以使用文本、链接和图像进行修改。它特别适合“选择自己的冒险”类型的游戏,在其中每个玩家的选择都可以触发一个新的故事分支。

虽然这个应用程序不会教孩子编码,但它教了很多规划和设计技能,这些对游戏设计师和故事讲述者至关重要。该应用程序通过 wiki、教程和活跃的用户社区而取得了很好的支持。
你可以通过托管应用在线创建 Twine 故事,也可以下载用于离线编辑的应用。

建议年龄: 12+ (大量读者推荐)

要求: Windows、Mac OS 或者 Linux

  1. LEGO Mindstorm Robotics (乐高头脑风暴机器人)

另一种学习编程的方法是模仿机器人。许多孩子积极尝试现实世界中编程性事物。这里有各种各样的机器人套件和语言,你可以使用它们来编程,而 LEGO Mindstorms 系统是拥有最大的用户社区之一,是儿童友好的可视化编程应用程序。你可以免费下载编程环境,但是你还需要获得 LEGO Mindstorms 工具包才能使程序运行。这并不意味着你必须购买一个。一些学校和公共图书馆有提供给学生使用的套件,或者您可能想在你附近找到一个First LEGO League(第一乐高联盟)。

LEGO EV3 编程软件可以在平板电脑和计算机上运行,它使用了一个构件块(一个乐高积木)的比喻,就像 Scratch 和 Blockly 一样,虽然 LEGO 版本更倾向于水平地构建程序,看起来更像一个流程图。学生门组合不同的动作、变量和事件来操纵他们的 LEGO Mindstorms 创作。编程语言对于年轻的孩子来说是很简单的,然而对年龄较大的孩子甚至成年人也算是一个挑战(我们曾经在一个面向程序员的技术会议上发现了一个 Google 赞助的 LEGO 编程活动。)

除了 LEGO Mindstorms 编程环境之外,LEGO 还使用一个开源的 Linux 内核,可以通过更传统的编程语言(如 Python 或 C++)对其进行修改和编程。

技术要求:EV3编程语言在Mac、Windows、Android和iOS上均可运行。

运行程序(而不是仅仅调试它们)可控制一个或多个乐高 EV3 机器人。(对于更复杂的程序,最多可以使用菊花链连接六台机器人。)

建议年龄: 10+ (年龄越小的孩子需要越多指导)

要求: 一台可运行 Windows 或者 Mac OS 的台式机或者运行 Android、iOS 的平板电脑。

  1. Kodu

Kodu 是微软为 Xbox 360 设计的游戏编程应用程序。对应的 Windows 版本是免费的,但 Xbox 360 版本需要 4.99 美元。孩子们可以使用该应用程序在 3D 世界中探索和设计游戏。

Kodu 的图形界面很有吸引力,Xbox 版本的编程可以完全在游戏控制器完成。如果你有硬件支持它,Kodu 是一个更旧但仍然可靠的选择。
不幸的是,没有 Xbox One 版本的 Kodu,未来的发展看起来不太一样。 然而,Xbox 和 Windows版本是完全开发的,这就是为什么它是这个列表上唯一的“被遗弃”的儿童编程语言。

建议年龄: 8-14

要求: Windows 7 及其以下版本或者 Xbox 360

更多建议

对于年龄较大的孩子,你可能想直接学习标准的编程语言,如 Python、Java 或 Ruby。 完全不需要任何儿童编程语言。可汗学院和 Codecademy 都提供免费的编程入门的在线教程。

有动机的中学生和高中生可能想尝试他们的亲手制作 Minecraft MODs。 Minecraft 社区充满活力,并提供了很多教程,但也有主题露营和虚拟课程。

Unity 3D 游戏界面是另一个伟大的学习 3D 游戏编程的方式,有很多在线资源。 只要记住,编程本质上是充满挑战的。 它涉及大量的故障排除和验证和错误处理。父母能提供给初学编程的孩子最好工具就是耐心和决心。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适合教孩子编码的 7 款免费编程语言 的相关文章

  • debug调试神器pysnooper

    异常bug定位 print 函数也可以 但效率上还是慢 后来发现了一个叫PySnooper的装饰器 一般debug调试 都是在我们可能觉得会有问题的地方 去打印输出 看下实际输出了什么 然后思考问题所在 下载库 pip install py
  • python3 练习题100例 (十二)

    题目十二 打印出所有的 水仙花数 所谓 水仙花数 是指一个三位数 其各位数字立方和等于该数本身 例如 153是一个 水仙花数 因为153 1的三次方 5的三次方 3的三次方 usr bin env python3 coding utf 8
  • “ModuleNotFoundError: No module named sklearn”解决办法

    最近在跑实验的时候 需要导入sklearn 但是运行代码一直提示 ModuleNotFoundError No module named sklearn 实验中导入sklearn的代码 from sklearn import metrics
  • Linux CentOS7 中 完美解决VMTools失效,windows 与 Liunx间完美复制文件,无报错的解决方案

    问题 我也是才刚使用CentOS7没多久 搭建好环境后出现比较头疼的问题就是 Windows 和 Linux 之间无法复制粘贴文本和文件 这个问题只要在虚拟机中安装 VMTools 就能解决 但是不知道什么原因导致 我在CentOS 6 8
  • Linux 狂神说学习笔记

    狂神说linux Linux 基本目录 目录相关命令 文件属性 查看文件 硬链接和软链接 vim 账号管理 用户组管理 磁盘管理 进程管理 环境安装 基本目录 目录相关命令 ls al 列出目录 a所有文件包括隐藏文件 l列出所有文件包括文
  • MyBatis ognl.NoSuchPropertyException 或者 Invalid bound statement (not found)

    描述 SpringBoot Mybatis plus 项目 运行时出现如下错误 ognl NoSuchPropertyException 没有对应属性异常 Invalid bound statement not found 绑定语句无效 未
  • 问题小结(3)-dialog标题居中

    dialog标题居中问题 用系统的AlertDialog Builder创建dialog时 如果需要将dialog的title居中显示 需要调用 setCustomTitle View view 方法 对需要设置的view设置居中的相关属性
  • zookeeper 分布式共享锁的流程图

    1分布式共享锁的流程图 原理 package cn itcast bigdata zklock import java util Collections import java util List import java util Rand
  • 水球图 及各种参数设置

    水球图 Liquid Fill Chart 是Echarts的一个插件 在官方文档中没有 可以用来优雅的展示百分比数据 水球图 gif 安装 HTML中引入水球图
  • docker基础1——架构组成、安装配置

    文章目录 一 发展起源 1 1 传统虚拟化与容器虚拟化 1 2 docker底层核心技术 1 2 1 命名空间 1 2 2 控制组 1 3 docker工作方式 1 4 docker容器编排 1 5 docker优劣势 1 6 docker
  • iframe的替代品

    面试题 使用过iframe框架 那你对于iframe框架的优缺点知道多少 并且由于iframe的一些缺点 国内外针对这个框架的替代品你知道有哪些呢 知识点1 iframe框架的优缺点 优点 1 可以跨域请求其他网站 并将网站完整展示出来 2
  • [课程复习] 数据结构之线性表、树、图、查找、排序经典算法复习

    作者最近在复习考博 乘此机会分享一些计算机科学与技术 软件工程等相关专业课程考题 一方面分享给考研 考博 找工作的博友 另一方面也是自己今后完成这些课程的复习资料 同时也是在线笔记 基础知识 希望对您有所帮助 不喜勿喷 无知 乐观 低调 谦
  • 【Qt Modbus通信】QModbus实现modbus的主机功能 源码分享

    前言 modbus在上下位机数据交互时被广泛使用 因此写了这篇笔记和大家一起学习 Qt Modbus通信 libmodbus实现modbus的主机功能 从机功能 源码分享 之前使用libmodbus实现了modbus的主从功能 但发现主机查
  • docker frp 搭建内网穿透

    docker frp 搭建内网穿透 可运行的云服务器 docker pull snowdreamtech frps mkdir p root docker frp cd root docker frp touch frps ini comm
  • 企业微信如何简单实现定时发送文件到群:企业微信群机器人操作(Java代码实现)

    前言 不知道小伙伴们的公司组织架构通勤用的啥软件 我公司用的企业微信 然后业务销售部那边需要每天统计销售数据报表然后发在群里 我是开发 我不配在群里 知道这个背景以后 产品给我们的需求是 直接统计数据按照业务那边的报表模板直接生成销售报表
  • ARM-A架构入门基础(三)MMU

    14天学习训练营导师课程 周贺贺 ARMv8 ARMv9架构 快速入门 1 MMU Memory Management Unit 内存管理单元 MMU的意义在于将软件程序的虚拟地址转换为真实的物理地址 2 MMU种类 Secure EL1
  • 数据结构——图解循环队列长度计算问题

    队列定义是这样的 define MAXSIZE 10 typedef struct ElemType data MAXSIZE int front rear SeqQueue 一个队列 一个存放元素的数组 一个队头指针 一个队尾指针 fro
  • np.array与list的内存大小比较

    1 np array与list 比较 a 1 2 3 4 需要4个指针和四个数据 增加了存储和消耗cpu a np array 1 2 3 4 只需要存放四个数据 读取和计算更加方便 2 np array与list所占内存 def test
  • sqlserver语言转mysql_SQLSERVER 脚本转MYSQL 脚本的方法总结

    标签 1 MYSQL中SQL脚步都要以分号 结尾 这点比SQLSERVER要严谨 2 所有关键字都要加上 比如 Status 替换成 Status 按是有个 的键 3 SQLSERVER的dbo 在mysql中不支持 都要去掉 4 isnu
  • java field static_Java基础之关键字static

    static是Java中的一个关键字 用来修饰成员变量与成员方法 还可以用于编写静态代码块 对于被static修饰的东西 JVM在加载类的时候 就给这些变量在内存中分配了一定的空间 即在编译阶段时就为这些成员变量的实例分配了空间 一 静态变

随机推荐

  • 机器学习入门之流浪地球

    机器学习入门之流浪地球 1 引言 2 问题描述 3 问题分析 4 问题求解 4 1 数据集 4 2 模型构造 4 3 损失函数 4 4 梯度下降 4 5 模型训练 4 6 预测 4 7 完整实现代码 5 总结与思考 1 引言 我国里程碑式科
  • 求n边形周长的k等分点坐标(今日头条)

    题目 本题来自今天头条的笔试 有一个n边形 P0 P1 Pn 每一条边皆为垂直或水平线段 现给定数值k 以P0为起点将n边形的周长分为k段 每段的长度相等 请打印出k等分点的坐标 T0 T1 Tk 的坐标 分析 1 可以计算出从第0个点 到
  • 线程池ExecutorService

    1 线程池创建方式 1 通过Executors创建线程池 import java util concurrent ExecutorService import java util concurrent Executors public cl
  • Ubuntu18.04未安装Qt报qt.qpa.plugin could not load the Qt platform plugin xcb问题的解决方法

    在Ubuntu 18 04开发机上安装了Qt 5 14 2 当将其可执行程序拷贝到另一台未安装Qt的Ubuntu 18 04上报错 拷贝可执行程序前 使用ldd将此执行程序依赖的动态库也一起拷贝过去 包括Qt5 14 2 5 14 2 gc
  • JS ES6 单链表2种插入尾部方式

    一种是类里加一个指向尾部最后一个元素指针 通过他添加一个元素到队列最后 一种是每次增一个元素都从头开始遍历直到最后一个 然后添加 打开出来有单链表结构是一样的 除了上面的 多了一个队尾指针 class Node 单个结点 data next
  • Cadence 生成gerber文件,嘉立创下单助手解析不了PCB板的问题

    概述 最近由于公司的原因 使用Cadence EDA工具绘制一块 TMC2300电机驱动板 遇到一些问题 在这记录一下坑 也方便遇到这个问题的硬件攻城狮得到解决 1 EDA Cadence 17 4 在生成gerber文件时 使用CAM35
  • type_traits技术与C++

    引言 一个方法实现过程中 业务逻辑很多都是相似的 但是与具体的特化类型的不同有一定的差异 这个时候可以采用特化模板的方式实现 不同的类型使用不同的特化实现 但是这种情况造成一定的业务逻辑的冗余 而trait技术可以将特化类型通过封装 以一个
  • windows10进行Colmap配置

    colmap下载 https demuc de colmap 新的colmap按照官网的编译方式仅需要预装好CMake Boost QT5 CUDA和CGAL 1 CMake CMake安装最简单 去官网下载好压缩包解压即可 建议下载新版
  • 使用sentencepiece模型替换词表

    最近在用DeBERTa模型跑一些下游任务 了解到了sentencepiece模型 用于替代预训练模型中的词表 sentencepiece 是google开源的文本Tokenzier工具 本身提供四种切分方法 包括 char word byt
  • Python爬虫三国演义

    爬取三国全篇内容 定位目标 https www shicimingju com book sanguoyanyi html 在这里插入代码片import requests from bs4 import BeautifulSoup f op
  • 100天精通Python(可视化篇)——第86天:matplotlib绘制不同种类炫酷热力图参数说明+代码实战

    文章目录 专栏导读 一 热力图介绍 1 介绍 2 参数说明 二 绘制热力图 1 普通热力图 2 添加坐标轴和标题 3 添加热力标尺 4 添加色块数值
  • 虚析构和纯虚析构

    问题 多态使用时 如果子类中有属性开辟到堆区 那么父类指针在释放时无法调用到子类的析构代码 解决方式 将父类的析构改为虚析构或纯虚析构 可以解决父类指针释放子类对象 都需要具体的实现函数 虚析构和纯虚析构的区别 如果是纯虚析构 该类属于抽象
  • 【踩坑】解决maven的编译报错Cannot connect to the Maven process. Try again later

    背景 新公司新项目 同事拷给我maven的setting配置文件 跑项目编译发现maven报 Cannot connect to the Maven process Try again later If the problem persis
  • 你了解Spring BeanFactoryAware嘛

    其实再写这篇文章之前呢 我是看Spring IOC源码 可是老师啃不动 那么就从外围开始吧 在Spring生命周期的探索当中 其中网上主流的做法就是让我们的Bean实现一大波接口 到目前为止 这些接口的名称一个也没有记住 Spring的这个
  • Redis分片

    目录 一 Redis为什么要分片 二 分布式存储的特性 三 分片方案 1 范围分片 优点 缺点 2 hash节点取余分区 3 一致性hash分区 一 Redis为什么要分片 一般你系统核心缓存的命中率需维持在99 甚至99 9 哪怕下降1
  • JavaScript函数 - 简介与示例代码

    JavaScript是一种广泛应用于Web开发的脚本语言 它具备强大的函数功能 函数是JavaScript中的一个核心概念 它允许您封装可重复使用的代码块 并通过调用函数来执行特定的操作 本文将介绍JavaScript函数的基本概念 并提供
  • java程序员经典错误,请速速收藏

    大家好 我是鱼尾 作为一名 java 开发程序员 不知道大家有没有遇到过一些匪夷所思的bug 有时候在我们碰到错误的时候 可能会花几个小时才能解决 然而当你找到它们的时候 你可能会默默地骂自己是个傻瓜 因为这些可笑的 bug 基本上都是你忽
  • Entry输入框实现登录用户名冷却验证小案例(Tkinter)

    本篇讲一下Entry冷却验证的用法 其实我们在登录注册的时候用户名是否存在的验证一般不能等到全部都填写完后 点击注册再进行判断 最好的办法是在输入用户名时就立刻判断是否存在 这篇内容是在上一篇合法性验证的基础上的升级版 点击查看上一篇 实现
  • XSS数据接收平台——蓝莲花(BlueLotus)

    文章目录 一 前言 二 安装 三 使用 1 我的JS创建一个模板 2 使用创建的模板攻击 3 打开攻击的目标 这里选择pikachu靶场的存储型XSS模块测试 4 查看返回的数据 一 前言 蓝莲花平台是清华大学曾经的蓝莲花战队搭建的平台 该
  • 适合教孩子编码的 7 款免费编程语言

    21CTO导读 计算机编程是一项需求旺盛且欣欣向荣的事业 所以这些日子父母们可能都希望他们的孩子长大后也能成为一名软件程序员 如果想教小孩如何编程 该从哪儿开始呢 可以尝试以下列表中这些对儿童友好的编程语言以及工具 Scratch 海风教育