利用 Amazon CodeWhisperer 激发孩子的编程兴趣

news2024/11/24 7:01:50

我是一个程序员,也是一个父亲。工作之余我会经常和儿子聊他们小学信息技术课学习的 Scratch 和 Kitten 这两款图形化的少儿编程工具。

image.png

image.png

我儿子有一次指着书房里显示器上显示的 Visual Studio Code 问我,“为什么我们上课用的开发界面,和爸爸你每天工作用的样子不一样?”

所以我也在想一个问题,什么时候可以让我儿子,从 Scratch,Kitten 这种少儿图形化编程工具,过渡到 Visual Studio Code 这种更专业的编程工具去?

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

最近火出圈的 ChatGPT,被很多程序员用来作为自己工作中的代码生成辅助工具。我也在思考如何将 ChatGPT 用到少儿编程领域。由于众所周知的原因,ChatGPT 在国内使用有一定的门槛。但我最近了解到另一款基于人工智能的代码生成器,叫做 Amazon Code Whisperer, 我已经将它用来辅导我儿子学习编程了。

我和儿子用的开发工具是 Visual Studio Code,我教他在里面写一些最基础的 Python 和 Node.js 代码。

Amazon CodeWhisperer 属于 Amazon Toolkit 的一部分,在 Visual Studio Code 打开 Extension Marketplace 面板,通过搜索关键字 Amazon tool 即可安装。

image.png

安装完毕后,在 Visual Studio Code 左侧多出一个 Developer Tools 的面板,展开 CodeWhisperer 下拉列表,点击 Start,然后选择 Use a personal email to sign up and sign in with AWS Builder ID 即可在亚马逊云科技网站上注册一个帐号并登录:

image.png

image.png

等到我们看到 Developer Tools 面板里,CodeWhisperer 下面显示出 Pause Auto-Suggestions 显示,说明这个基于 AI 的代码生成器已经成功启用了。

image.png

下面就是孩子们发挥自己的想象,随意向 CodeWhisperer 发出指令进行编程学习了。

为什么 CodeWhisperer 可以用来辅助孩子学习编程?职业程序员都清楚,包括 ChatGPT,CodeWhisperer 这些 AI 工具,生成的代码仅仅用来作为参考,绝对不能直接用在生产系统里,因此这些 AI 自动生成的代码,可能存在安全风险,缺乏足够的出错处理等等。而相对来说,孩子通过工具自学编程,不需要考虑这些软件产品开发需要注意的产品标准,只需要把注意力放在工具生成代码的语法,编程逻辑和 API 的调用上就行了。

另一方面,CodeWhisperer 的安装和配置非常方便,也不需要像 ChatGPT 那样科学上网。

下面是一些具体的使用例子。

假设小朋友想用 Python 编程,打印出当前目录下所有文件的列表。

在 Visual Studio Code 里新建一个 1.py 文件,然后录入如下注释,可以类比成是 ChatGPT 里的 Prompt:

list all files in current folder

我孩子的英语学习我是全程陪伴的,我觉得现在少儿英语的教育比我上学的时候卷多了。现在小学五年级就已经开始学很多我以前初中才学到的复杂语法,什么定语从句,被动语态,各种完成时等等。这种内卷倒也有一个好处:小朋友用英语编写简单的 Prompt 没有什么障碍:这些 Prompt 都是简单的命令式短句,无非是动词+名词即谓语+宾语的搭配结构。

我们在 1.py 里输入 # 开头的 Prompt,回车之后,稍等片刻,CodeWhisperer就会以灰色的字体颜色,显示出完成这个 Prompt 所需的第一行代码:import os

image.png

如果我们觉得这行代码能够接受,敲击键盘 Tab 键,就能将其正式书写在 1.py 文件里。

image.png

这种一行一行交互式的代码生成方式,适合家长和小朋友坐在一起,出来一行,给孩子讲解一行,也就是逐行理解。

我们在 import os 之后点击回车,稍后片刻,会看到 CodeWhisperer 给我们生成的下一行代码:for file in os.listdir("."):

image.png

同理,点击 tab 按钮之后,for file in os.listdir(".") 这行代码也被我们选定。继续按回车,就会出现下一行代码提示:print(file)

image.png

就这样,三次回车和三次 Tab 键,就完成了这个需求的编码工作。直接使用 python 命令执行这个编辑好的文件,能得到期望的正确输出。

image.png

我又继续做了测试,针对 Node.js,使用同样的 Prompt,也能得到令人满意的代码和执行结果:

image.png

总结

CodeWhisperer 作为一款免费使用的基于 AI 的代码生成工具,不仅能够帮助专业的程序员减少机械的代码编写时间,同时也能作为少儿图形化编程的一个补充,给那些学有余力又对编程感兴趣的小朋友,打开一扇新的通往编程世界的大门。

文章来源:
https://dev.amazoncloud.cn/column/article/64f874782a1d01763ead6eab?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN

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

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

相关文章

巴以冲突中暴露的摄像头正对安全构成威胁

巴以冲突爆发后,许多配置不当的安全摄像头正暴露给黑客活动分子,使其周遭人员面临巨大安全风险。 Cyber​​news 研究人员发现,在以色列至少有165 个暴露的联网 RTSP 摄像头,在巴勒斯坦有 29 个暴露的 RTSP 摄像头。在巴勒斯坦&am…

CCPlotR | 轻松拿捏单细胞分析之细胞交互!~

1写在前面 周末了各位,昨天去看了奥本海默,不得不说,大神就是大神。😘 比起我们的电影,似乎诺兰更好地还原了奥本海默的真实。🧐 言归正传,今天分享的是CCPlotR包,用于基于scRNAseq数…

SwiftUI Swift CoreData 计算某实体某属性总和

有一个名为 Item 的实体,它有一个名为 amount 的 Double 属性,向你的 View 添加一个计算属性: Code: struct ContentView: View {Environment(\.managedObjectContext) private var viewContextFetchRequest(sortDescriptors: [NSSortDescri…

Codeforces Round 903 (Div. 3) C(矩形旋转之后对应的坐标)

题目链接:Codeforces Round 903 (Div. 3) C 题目: 思想: 旋转之后对应的坐标: (i,j)(n1-j,i)(n1-i,n1-j)(j…

CSS的布局 Day03

一、显示模式: 网页中HTML的标签多种多样,具有不同的特征。而我们学习盒子模型、使用定位和弹性布局把内容分块,利用CSS布局使内容脱离文本流,使用定位或弹性布局让每块内容摆放在想摆放的位置,让网站页面布局更合理、…

VCAP-DCV VMware vSphere: 运维、扩展和安全防护 [V8.0]

VMware官方授权合作机构,全国招生! VCP-DCV VMware vSphere:安装、配置和管理[V8.x]-CSDN博客本课程重点讲授如何安装、配置和理 VMware vSphere 8.0(包括 VMware ESXi™ 8.0 和 VMware vCenter Server™ 8.0)。使用 …

代码随想录算法训练营第二十天丨 二叉树part07

530.二叉搜索树的最小绝对差 思路 题目中要求在二叉搜索树上任意两节点的差的绝对值的最小值。 注意是二叉搜索树,二叉搜索树是有序的。 遇到在二叉搜索树上求什么最值啊,差值之类的,就把它想成在一个有序数组上求最值,求差值…

出游热潮再起,IPIDEA代理IP帮你应对旅游数据采集的挑战

随着互联网的快速发展,旅游行业也随之迅速发展。在线旅游预订已经成为人们出行前的必要步骤,然而,旅游信息的采集却是一项具有挑战性的任务。为了从酒店和航空公司网站、在线旅行社和其他类似来源收集数据,企业需要克服许多障碍。…

Spring源码解析——@Transactional注解的声明式事物介绍

正文 面的几个章节已经分析了spring基于AspectJ的源码,那么接下来我们分析一下Aop的另一个重要功能,事物管理。最全面的Java面试网站 事务的介绍 1.数据库事物特性 原子性 多个数据库操作是不可分割的,只有所有的操作都执行成功&#xff…

腾讯云我的世界mc服务器配置怎么选择?

使用腾讯云服务器开Minecraft我的世界服务器配置怎么选择?10人以内玩2核4G就够用了,开我的世界服务器选择轻量应用服务器就够了,腾讯云轻量CPU采用至强白金处理器,大型整合包一般1.12版本的,轻量2核4G配置都差不多的&a…

基于供需优化的BP神经网络(分类应用) - 附代码

基于供需优化的BP神经网络(分类应用) - 附代码 文章目录 基于供需优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.供需优化BP神经网络3.1 BP神经网络参数设置3.2 供需算法应用 4.测试结果:5.M…

css样式导入模板

直入主题 添加<link>标签到标题下面&#xff0c;输入rel"stylesheet",type"text/css",在href属性里写入路径 <title>标题</title> <link rel"stylesheet" type"text/css" href"xxx.css" /> 像这样就…

接口测试(含文档)

1、简介 测试系统组件之间的接口。 2、分类 2.1 外部接口 被测系统和外部系统之间的接口。&#xff08;例如电商与支付宝之间的支付接口&#xff0c;只需要测试正例即可&#xff09; 2.2 内部接口 2.2.1 提供给内部系统使用的内部接口。&#xff08;只需要测试正例即可&a…

Android Handler/Looper视角看UI线程的原理

概述 Handler/Looper机制是android系统非重要且基础的机制&#xff0c;即使在rtos或者linux操作系统上开发应用框架时&#xff0c;也经常借鉴这个机制。通过该机制机制可以让一个线程循环处理事件&#xff0c;事件处理逻辑即在Handler的handleMessge种。本文建议android8.1源码…

Step 1 搭建一个简单的渲染框架

Step 1 搭建一个简单的渲染框架 万事开头难。从萌生到自己到处看源码手抄一个mini engine出来的想法&#xff0c;到真正敲键盘去抄&#xff0c;转眼过去了很久的时间。这次大概的确是抱着认真的想法&#xff0c;打开VS从零开始抄代码。不知道能坚持多久呢。。。 本次的主题是搭…

一文让你玩转Linux多进程开发

Linux多进程开发 主要介绍多进程开发时的要点 进程状态转换 进程反应了进程执行的变化。 进程的状态分为三种 ,运行态,阻塞态,就绪态 在五态模型中分为以下几种,新建态&#xff0c;就绪态&#xff0c;运行态&#xff0c;阻塞态,终止态。 运行态&#xff1a;进程占用处理器正在运…

CSS结构选择器的使用

结构选择器 style>ul li:first-child {//选出第一个孩子进行变色background-color: blue;}</style><ul><li>我是第1个孩子</li><li>我是第2个孩子</li><li>我是第3个孩子</li><li>我是第4个孩子</li><li>…

基于linux的基础线程知识大总结

文章目录 1.线程的基础概念认知1.1什么是线程1.2线程的优缺点1.3一些页表知识的额外补充1.4进程和线程的对比 2.线程的基本控制2.1POSIX线程库2.2创建一个新的线程2.3有关线程id的解释和线程栈区的地址空间布局2.4线程终止2.5线程等待2.6线程分离 3.线程间互斥3.1基本概念3.2互…

多城镇信息发布付费置顶公众号开源版开发

多城镇信息发布付费置顶公众号开源版开发 以下是多城镇信息发布付费置顶公众号的功能列表&#xff1a; 信息发布&#xff1a;用户可以在公众号上发布各类信息&#xff0c;如房屋租售、二手物品交易、招聘信息等。 信息置顶&#xff1a;用户可以选择付费将自己的信息置顶在公众…

《PyTorch深度学习实践》第三讲 梯度下降算法

《PyTorch深度学习实践》第三讲 梯度下降算法 问题描述梯度下降问题分析编程实现代码实现效果 随机梯度下降问题分析编程实现代码实现效果 参考资料 问题描述 梯度下降 问题分析 编程实现 代码 import matplotlib.pyplot as plt# 训练集数据 x_data [1.0, 2.0, 3.0] y_data …