好的STEM编程语言有哪些?

STEM是科学(Science),技术(Technology),工程(Engineering),数学(Mathematics)四门学科英文首字母的缩写,STEM教育简单来说就是在通过在解决真实的工程问题中学习和掌握相关能力。在高度信息化的AI时代,编程语言更是成了STEM教育中最为核心的一环,那么目前最好的STEM编程语言有哪些呢?

作为一个有着20多年编程经验的老码农,也因为要给家里小朋友编程启蒙开始关注这个话题。我觉得好的STEM编程语言需要满足几个基本条件:首先是简单有趣让小朋友可以快速上手玩起来;其次是在语言启蒙后可以用于解决复杂问题;第三是要有本土友好的社区和支持。当然如果觉得自己有能力解决其中问题的家长可以根据自己的理解选择。我们先看看有哪些面相小朋友的语言。

1. 谷歌:Blockly积木编程

Blockly是谷歌赞助研究的基于可视化积木的编程基础组件,正是它打开了近10多年儿童编程单热潮。目前市面上全部分的积木编程启蒙语言都是基于谷歌的Blockly构建,比如大家熟知的Scratch就是拿Blocky再来组装为产品售卖。

https://developers.google.cn/blockly

7bc8bd81cdc06a3f2c8c14a2bf3b57c0.jpeg

Blockly的研究确实是开启了可视化编程领域的新探索。但作为STEM编程语言也有其限制,可视化编程在描述复杂问题时面临调整,或者说拿Blockly语言来解决复杂的问题理论上可行但实际操作太难。最终的结果就是启蒙后就要抛弃Blockly的知识了。

2. 微软:MakeCode

Microsoft MakeCode 是一个免费开源平台,旨在打造有吸引力的计算机科学学习体验,为实际编程奠定基础。作为平台,MakeCode提供了将编程语言和真实的电子积木结合的能力。比如通过程序控制虚拟开发板的LED灯:

51650b798d2f81c397fe2c28c7c545e4.png

作为平台MakeCode提供了Blockly、静态TypeScript、静态Python等多种编程语言(https://makecode.com/language)。但有时候选择太多并非是好事情,特别是这些语言可能让家长更难选择。

3. 苹果:Swift Playground

苹果公司从2012年发布了自己的Swift编程语言,目前iPhone和iPad上新的App大部分是Swift开发,因此这其实是一个绝对的工业级语言。后来苹果公司针对iPad出品了Swift playground应用,用于辅助青少年、儿童编程启蒙,同时也可以开发真实的App。

5ab6c3056b42674da13ddd935fc3e5c3.png

从这里可以看出,Swift playground不仅仅是针对儿童,还包括了青少年甚至是成人。Swift playground是一个非常出色的启蒙编程应用,但是目前甚至未来它只能支持苹果的平台。作为全场景的工业语言,Swift语言有一定的复杂度,如果有一定的编程基础可以体验下。

4. 社区:Processing & JavaScript & Arduino

Processing主要是一种面相创意编程的理念,最初是以Python语言给出示例。但是最流行的其实是 JavaScript 和 Arduino 这些不语言和平台的实现。其中JavaScript的实现是p5.js,提供了在浏览器画画的编程体验。

8bc77f742d846ace1a46da03eeb31796.jpeg

p5js是面相设计背景的爱好者,主要是在画布上交互式画画和创作。而Arduino则是针对电子积木的版本:

de3843a468e6a5021e13ae532a6323c3.png

通过类似的编程结构,通过程序控制LED闪烁或LCD显示字母。总体而言,Processing理念结合不同语言的思路是可以借鉴吃。特别是p5js是一个非常优秀的作品,其背后的javascript目前是前端理由最流行语言,特别适合于启蒙。

5. 社区:Processing & 凹语言

凹语言(凹读音wa第一声,主页 https://wa-lang.org/ )是国内爱好者设计的面相WebAssembly设计的通用编程语言。据说凹语言发起人也是因为自己面临STEM编程教育的问题,所以语言设计时就考虑了内置对儿童编程的支持。凹语言目前提供了p5js风格但更为静态化的友好界面。

9a63e16c344165c0506888e208edb224.png

虽然是新的编程语言,但是凹语言的表达力也很强。开发团队提供了一个FC红白机模拟器实现:

19a887b111201bfb6cca43ce916ed427.png

凹语言是一个非常有潜力的STEM语言。

6. 总结

STEM只是一种理念,适合的编程语言不止一个。其中背靠JavaScript的p5js、向苹果生态的Swift Playground、和国产的凹语言都是非常不错的候选。也欢迎大家提供更多的参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/386961.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过✅ IPIDEA代理IP,轻松实现数据采集和市场拓展工作(下)

如何通过✅ IPIDEA代理IP,轻松实现数据采集和市场拓展工作 如何通过✅ IPIDEA代理IP,轻松实现数据采集和市场拓展工作前言IPIDEA爬虫实战实战Demo演示总结 如何通过✅ IPIDEA代理IP,轻松实现数据采集和市场拓展工作 前言 在当今全球化市场的…

微信小游戏之三消(三)道具相关方法

设计一个 game class。负责了游戏的核心控制逻辑,包括游戏状态管理、方块和道具的生成与效果处理,以及游戏的重新开始和复活流程。通过这些方法,脚本实现了游戏的基本玩法和用户交互。 主要游戏控制方法 gameStart():开始游戏&am…

MySQL常见指令

MySQL中的数据类型 大致分为五种:数值,日期和时间,字符串,json,空间类型 每种类型也包括也一些不同的子类型,根据需要来选择。 如数值类型包括整数类型和浮点数类型 整数类型根据占用的存储空间的不同 又…

Cocos Creator2D游戏开发(7)-飞机大战(5)-让子弹飞

飞机大战(5)-碰撞及积分 参考敌机的生成 子弹由飞机生成,放在player_node节点子弹重复使用,要使用预制体;子弹新增了动画 ①创建一个预制体 命名为playerBullet_prefab ② 双击预制体将bullet1图片拖入预制体 保存,关闭(场景编辑器里面的) ③ 发射子弹 player加入代码 prop…

听说它可以让代码更优雅

一提到静态代码检查工具这个词应该比较好理解,所谓静态代码检查工具就是检查静态代码的工具,完美~ 言归正传,相信很多程序员朋友都听说过静态代码检查工具这个概念,它可能是我们IDE里的某一个插件,可能是计算机中的一…

RK3588+MIPI+GMSL+AI摄像机:自动车载4/8通道GMSL采集/边缘计算盒解决方案

RK3588作为目前市面能买到的最强国产SOC,有强大的硬件配置。在智能汽车飞速发展,对图像数据矿场要求越来越多的环境下,如何高效采集数据,或者运行AI应用,成为刚需。 推出的4/8通道GMSL采集/边缘计算盒产品满足这些需求…

Spring验证码

前言:使用Hutool 1.什么是Hutool? 2.代码复制到test类中 3.代码爆红,说明需要引入依赖 4.根据名取Maven仓库相关依赖 5.在pom.xml文件中进行配置 6.引入成功 7. 运行程序 打开d盘,发现已经生成了验证码的图片,路径在…

Codeforces Round 654 (Div. 2) C. A Cookie for You (模拟)

我认为这道题就是个脑筋急转弯。 首先我们知道当a b < n m的时候&#xff0c;饼干总数都不够人的总数&#xff0c;那肯定是NO。 并且注意题干&#xff0c;我们可以得知当a b的时候&#xff0c;第一类和第二类人可以任意选两种饼干中的一种。 之后我们可以分类讨论一下。 …

网格布局 HTML CSS grid layout demo

文章目录 页面效果代码 (HTML CSS)参考 页面效果 代码 (HTML CSS) <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…

[ BLE4.0 ] 伦茨ST17H66开发-串口UART0的接收与发送

目录 一、前言 二、实现步骤 1.设置回调函数 2.关闭睡眠模式 三、效果展示 四、工程源代码 一、前言 串口通信在任何一款单片机开发中都是尤为重要的。本文涉及的开发所使用的例程依然是基于[ BLE4.0 ] 伦茨ST17H66开发-OSAL系统中添加自己的Task任务文章的工程源码&#x…

windows@powershell@任务计划@自动任务计划@taskschd.msc.md

文章目录 使用任务计划windows中的任务计划任务计划命令行程序开发windows 应用中相关api传统图形界面FAQ schtasks 命令常见用法创建计划任务删除计划任务查询计划任务修改计划任务运行计划任务 PowerShell ScheduledTasks常用 cmdlet 简介1. Get-ScheduledTask2. Register-Sc…

Git远程仓库推送

这里我只连接了两个站点的远程仓库&#xff0c;一个是国内的Gitee&#xff0c;另一个是Github&#xff0c;这两个站点的连接方式主要有两种&#xff0c;第一种就是通过https来连接远程仓库&#xff0c;另一种是通过ssh公钥来连接&#xff0c;这两个站点练接的大致过程都是一样的…

我出一道面试题,看看你能拿 3k 还是 30k!

大家好&#xff0c;我是程序员鱼皮。欢迎屏幕前的各位来到今天的模拟面试现场&#xff0c;接下来我会出一道经典的后端面试题&#xff0c;你只需要进行 4 个简单的选择&#xff0c;就能判断出来你的水平是新手&#xff08;3k&#xff09;、初级&#xff08;10k&#xff09;、中…

4 款最佳 C# 无头浏览器

摘要&#xff1a; 在当今大数据时代&#xff0c;高效的数据采集成为众多项目的关键一环。对于偏好C#语言的开发者而言&#xff0c;无头浏览器是实现网页自动化交互、数据抓取的强大工具。本文将深入探讨四款顶尖的C#无头浏览器库&#xff0c;分析它们的特性和应用场景&#xf…

怎么把C盘分成两个盘?让C盘分区更简单,赶快试试!

在日常使用电脑的过程中&#xff0c;有时我们可能希望将C盘分割成两个独立的分区&#xff0c;以便更好地管理文件和数据。这种操作需要谨慎进行&#xff0c;因为错误的分区操作可能导致数据丢失。那么&#xff0c;我们该怎么把C盘分成两个盘呢&#xff1f;下面&#xff0c;我将…

lua 游戏架构 之 游戏 AI (六)ai_auto_skill

定义一个为ai_auto_skill的类&#xff0c;继承自ai_base类。ai_auto_skill类的目的是在AI自动战斗模式下&#xff0c;根据配置和条件自动选择并使用技能。 lua 游戏架构 之 游戏 AI &#xff08;一&#xff09;ai_base-CSDN博客文章浏览阅读379次。定义了一套接口和属性&#…

vue3在元素上绑定自定义事件弹出虚拟键盘

最近开发中遇到一个需求: 焊接机器人的屏幕上集成web前端网页, 但是没有接入键盘。这就需要web端开发一个虚拟键盘,在网上找个很多虚拟键盘没有特别适合,索性自己写个简单的 图片: 代码: (代码可能比较垃圾冗余,也没时间优化,凑合看吧) 第一步:创建键盘组件 为了方便使用…

3.2.微调

微调 ​ 对于一些样本数量有限的数据集&#xff0c;如果使用较大的模型&#xff0c;可能很快过拟合&#xff0c;较小的模型可能效果不好。这个问题的一个解决方案是收集更多数据&#xff0c;但其实在很多情况下这是很难做到的。 ​ 另一种方法就是迁移学习(transfer learning…

c++如何理解多态与虚函数

目录 **前言****1. 何为多态**1.1 **编译时多态**1.1.1 函数重载1.1.2 模板 **1.2 运行时多态****1.2.1 虚函数****1.2.2 为什么要用父类指针去调用子类函数** **2. 注意****2.1 基类的析构函数应写为虚函数****2.2 构造函数不能设为虚函数** **本文参考** 前言 在学习 c 的虚…

打造重庆市数字化教育“新名片”,广阳湾珊瑚中学凭实力“出圈”!

分布于教学楼连廊顶部的智能照明设备,根据不同的时间和场景需求自动调节灯光亮度和开关状态;安装于各个教室内的智能黑板、学校同步时钟、学生互动设备,在极简以太全光网的赋能下,为师生提供丰富的教学体验与学习支持......行走于重庆市广阳湾珊瑚中学,像是与充满科技感的“校园…