好的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.mzph.cn/diannao/50273.shtml

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

相关文章

【管控业财一体化】

1. 引言 大型集团在现代企业管理中扮演着举足轻重的角色,其管控业财一体化解决方案是实现企业高效运营的关键。随着数字化转型的加速,业财一体化不再局限于财务与业务流程的简单融合,而是向着更深层次的数据驱动、智能化决策和价值创造方向发…

SpringMVC中的常用注解

目录 SpringMVC的定义 SpringMVC的常用注解 获取Cookie和Session SpringMVC的定义 Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它…

百某应JS逆向

https://ying.baichuan-ai.com/ 目录 一、发起提问 二、观察发现有两个加密参数:X-Bc-Sig和X-Bc-Ts ​三、观察JS调用栈 四、从JS中搜索 X-Bc-Sig和X-Bc-Ts 五、断点并分析参数的生成方式 六、分析入参 七、发现关键的o方法调用了一个i()方法 八、验证结果 …

前后端项目打包对比——关于Spring Boot Maven Plugin配置的问题

Spring Boot Maven Plugin 配置详解 Spring Boot Maven Plugin 配置详解1. 添加插件到 pom.xml2. 插件配置2.1 基本配置2.2 配置参数详解默认行为说明简单配置示例为什么这样的配置能工作?进一步说明 2.3 高级配置 3. 使用插件打包应用程序3.1 打包成 JAR 文件3.2 打…

ElasticSearch(六)— 全文检索

一、match系列查询 前面讲到的query中的查询,都是精准查询。可以理解成跟在关系型数据库中的查询类似。match系列的查询,是全文检索的查询。会通过分词进行评分,匹配,再返回搜索结果。 1.1 match 查询 "query": {&qu…

c++笔记4

目录 深度优先搜索DFS DFS的复杂度 DFS与递归 递归与暴力枚举 递归树 DFS与栈 DFS的搜索剪枝 搜索剪枝与优化 可行性剪枝 最优化剪枝 减少等效的分支 优化搜索顺序 搜索的记忆化 搜索的复杂度 大多时候,搜索的复杂度都是指数级的。各种剪枝方案&#…

Flink 技术与应用(一)

Flink技术与应用(初级篇) 起源 Apache Flink 是一个开源的大数据处理框架,其起源可以追溯到一个名为 Stratosphere 的研究项目,旨在建立下一代大数据分析引擎,2010 年,从 Stratosphere 项目中分化出了 Fl…

「Unity3D」场景中的距离单位Unit与相关设置PixelsToUnits、PixelsPerUnit

GameObject在场景的位置Position,并没有明确是什么具体单位——如:Transform的x、y、z,或RectTransform的PosX、PosY、PosZ。而RectTransform在面板上显示的Width和Height,也没有具体单位,其实并不是像素。 事实上&am…

百易云资产管理运营系统 comfileup.php 文件上传致RCE漏洞复现(XVE-2024-18154)

0x01 产品简介 百易云资产管理运营系统,是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理,包括资产的登记、盘点、评估、处置等多个环节,同时提供强大的运营分析功能,帮助企业优化资产配置,提升运营效率。 0x02 漏…

C++内存管理(候捷)第五讲 笔记

GNU C对allocators的描述 new_allocator 和malloc_allocator,它们都没有特别的动作,无非底部调用operator new和malloc。它们没有用内存池 区别:::operator new是可重载的 智能型的allocator,使用内存池,分一大块然后…

【PyTorch】基于YOLO的多目标检测项目(一)

【PyTorch】基于YOLO的多目标检测项目(一) 【PyTorch】基于YOLO的多目标检测项目(二) 目标检测是对图像中的现有目标进行定位和分类的过程。识别的对象在图像中显示有边界框。一般的目标检测方法有两种:基于区域提议的…

如何找到最快解析速度的DNS

如何找到最快解析速度的DNS DNS,即域名系统(Domain Name System),是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网,而不用记住能够被机器直接读取的IP数…

6.乳腺癌良性恶性预测(二分类、逻辑回归、PCA降维、SVD奇异值分解)

乳腺癌良性恶性预测 1. 特征工程1.1 特征筛选1.2 特征降维 PCA1.3 SVD奇异值分解 2. 代码2.1 逻辑回归、二分类问题2.2 特征降维 PCA2.3 SVD奇异值分解 1. 特征工程 专业上:30个人特征来自于临床一线专家,每个特征和都有医学内涵;数据上&…

7月25日JavaSE学习笔记

线程的生命周期中,等待是主动的,阻塞是被动的 锁对象 创建锁对象,锁对象同一时间只允许一个线程进入 //创建锁对象Lock locknew ReentrantLock(true);//创建可重入锁 可重入锁:在嵌套代码块中,锁对象一样就可以直接…

进销存系统开发,进销存源码解析,添加商品选择商品

点击添加商品信息(可以) (关键字范围:商品名称,简拼,条形码,SKU,规格,参数,尺寸,接口,CPU,品牌) function cwpd_selSaleGoodsNewMore_Vtax2024(domid,width…

sed利用脚本处理文件

一、sed是什么 sed 命令是利用脚本来处理文本文件。它可以依照脚本的指令来处理、编辑文本文件。主要用来自动编 辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 二、sed的原理 读入新的一行内容到缓存空间; 从指定的操作指令中取出第一条指令&…

【时时三省】(C语言基础)分支语句2

山不在高,有仙则名。水不在深,有龙则灵。 ——csdn时时三省 多分支语句 if(表达式1) 语句1; else if(表达式2) 语句2; else 语句3; 如果表达式1成立语句1会执行 如果不成立表达式2执行 如果表达式2成…

【运维笔记】数据库无法启动,数据库炸后备份恢复数据

事情起因 在做docker作业的时候,把卷映射到了宿主机原来的mysql数据库目录上,宿主机原来的mysql版本为8.0,docker容器版本为5.6,导致翻车。 具体操作 备份目录 将/var/lib/mysql备份到~/mysql_backup:cp /var/lib/…

Multiview LM-ICP 配准算法

Multiview LM-ICP 配准算法针对一些大型的物体(比如建筑物)或者需要精细化建模的物体(比如某个文物),仅仅进行成对的配准难以还原物体的全貌和细节。所以,多个视角的配准十分关键。 多视角的配准存在以下两…

[STM32]FlyMcu同时烧写BootLoader和APP文件-HEX文件组成

目录 一、前言 二、HEX文件的格式 三、组合HEX文件 四、使用FlyMcu烧录 一、前言 如题,BootLoader每次烧写都是全部擦除,当我们烧写APP程序的时候,BootLoader程序将不复存在,很多开发者或许只有USB转TTL模块,没有其…