我最常被老师和家长所问到的一些问题是:我应该选择哪一种编程语言来教孩子编程呢?坚持选择像Scratch这样的图形化编程语言作为开端很重要吗?应该在什么年龄转换到学习代码编程呢?还有我应该如何在Python,Java,还有JavaScript之间选择呢?海风教育退费

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

经过将近10年,对成百上千个学生教授编程,我经常出席各种会议,或为刚接触计算机科学的老师举办讲习班。许多老师都是第一次尝试在他们学校里建立计算机科学课程,所以他们对于选择编程语言的谨慎,是可以理解的。除了试图找出最适合他们学生的东西外,教师讲授的内容还必须在授课舒适度,以及校园、学生、家长四者之间取得平衡。

那“合适”的编程语言,真的存在吗?

编程语言不是重点,编程中的概念才是!

就像你猜的那样,答案自然是否定的。编程语言不是重点,但教导孩子如何利用编程去解决问题才是重点。理解如何一步一步地建立算法,从而搞定作业,再想出最佳的思路来编写代码,这可能才是最困难的部分。

学习相当少量的关键词和特定编程语言的简单语法很简单——比学习一门真正的口语语言要容易得多!相比而言,为了独立完成编程,必须了解编程中变量、列表、条件、循环,还有函数中的基本概念,然后才能知道何时,何地,如何使用它们将算法转换为代码。

一个学生一旦掌握了以上这些概念,并且以一种语言编程成功,这时再用另一种语言来编程就不难了。转换编程语言并非打个响指一样容易,但确实可以做到。

话说回来,掌握的第一种编程语言会改变将来思考和编程的方式吗?学习当下行业里最流行的语言重要吗?

2018年美国热门编程语言Top10【图源: YoungWonks】

编程语言变化不定,你终将适应

编程语言的流行度会变,没有人敢保证我们今天教会孩子的东西,在他们进入职场的时候还适用。我学习的第一门编程语言是Pascal(对,你可能得百度一下)。

多年以来,我使用过不同的设备来学习不同的语言——其中不乏一些晦涩难懂的。在作为教育工作者的这10年里,我学习了Logo,Scratch,Processing,JavaScript,Arduino和Python的一大堆知识,好让我能在课堂上大展拳脚。

6年前,我建议孩子们从学习Logo开始,一门最早应用于计算机科学教育当中的编程语言,而我相信,它就算放在今天,也依然是一个颇具影响力的选项。划重点:如果你能教会孩子们基本的编程概念,他们也能在一门语言上花上足够的时间,他们理论上就已具备了日后转换语言的基本条件。

这还有一条经常提到的问题:我们总是应该优先教会孩子图形化编程,而非代码编程吗?

图形还是代码?

差不多10年前,在一节六年级数字设计课上,我开始使用Scratch,一门也许是最流行也是对孩子最友好的图形化编程语言。我随后将这门编程语言拓展到所有年级。我对不久前刚发布的Scratch 3.0中新功能感到兴奋——尤其是文字转语音和文字翻译这两个拓展功能。

图形化编程的出现,极大减轻了青少年对编程的挫败感,诸如漏掉一个逗号或者忘了把右括号补上之类,反而让他们留有更多时间来理解当中的概念。另外,Scratch对于创新的鼓励以及在图像创作、声音编辑、分享和项目混制方面的功能优化,让它在成为各年龄段孩子首选编程语言上变得理所当然。较之被称为“编程语言”,它更希望被定位为一个绘图工具,一个动画制作工具,或是一个故事与游戏创作工具,这些元素综合起来,让Scratch变得更友好而不唬人。

我发现在使用Scratch几年后,学生更愿意去尝试代码编程,因为他们觉得那意味着长大,只有“真正的编程”才会被行业采纳。我还见证过语言的转换中,有时只需要给孩子们回顾一下例如变量和循环的概念。

我的中学学生们愿意为学习代码编程付出额外的努力,通常他们会放慢速度,以保证在处理Python,JavaScript,Arduino和Processing挑战时不犯下拼写和语法错误。不过,学生一旦能够通过刚开始时“我得看着点有没有打错字”阶段,他们常会爱上代码编程的灵活性和可塑性,尤其是当他们发现复制、粘贴,协作和修改在代码编程中有多方便时,偶会发出“也没想象中那么糟嘛”类似的感慨。

每年夏天,我在Foothill College KCI计算机科学合作课程上,都会分别用Scratch和Python两种语言,为教师展示同一个项目。他们爱看把两种语言放一起比较。我们甚至会以伪代码,或者叫流程图作为开始,把完整算法在开始编程前先写下来。

这是一个检查密码的迷你项目,它在流程图,Scratch,和Python中,分别长这样:

密码检查器流程图

用Scratch展示的密码检查器

用Python展示的密码检查器

我课堂中的老师和学生在没接触过图形化编程的前提下,都能轻松学习Python,这说明好项目在前,从代码编程开始学习同样行得通。

是什么让一门编程语言,变成适合孩子学习的编程语言?选择一门语言的标准是什么?

虽然知道教授编程,更多是关于它的概念,你也知道不需要再为作出完美的第一次选择而慌乱,但问题依然没有得到解答:什么因素让一门编程语言成为孩子学习编程的好选择呢?通常由以下几点来衡量:速度,应用,可用的库,行业支持。下面我再来说说我认为重要的几个标准。

它有强大的教育者社区吗?

我频繁提到Scratch和Python的其中一个原因是他们都有附属的线上教育者社区。他们拥有如此庞大社区,背后的原因是他们总是以免费的形式,开放的姿态,接纳来自世界每个角落的用户。拥有庞大的社区,意味着你能找到更多资源,诸如项目、教案、教程、视频和书籍一系列为课堂而设的材料。

学起来好上手吗?

有许多代码式编程语言可供选择,一些在当今的科技行业中更吃香,一些有特别的功能方便他们创造特定的项目。虽然说许多高中生最终不得不为通过计算机科学进阶入学考试(AP Computer Science A)而学习Java,但这一定不是最简单的语言。Python目前看起来更简单,并且凭借着它简洁直白的逻辑,在教育界中越来越受欢迎。在我将Python用作计算机科学选修课语言3年后,我依旧会被它完成工作的效率,以及中学生用它编写代码的速度所震惊。受到Python在教育孩子编程方面的启发,我花时间写了一本关于它的书。

它背后的设计理念是什么?它是为这个年龄段的用户所设计的吗?

为用户设计适合其年龄的工具很重要,编程语言可以根据它不同年龄段的用户展示或者隐藏相应的功能。Scratch,扎根在培养孩子的创造力表达上,刻意将一些功能性代码以封装的形式呈现出来。ScratchJr.是为还在识字的孩子而设计的,所以它没有变量和条件这些对这个年龄段孩子来说太难理解的功能。Python为不同类型的项目提供扩展支持,但这些额外的扩展都需要你亲手把它们添加进来,这样它们就不会在你不需要的时候出来干扰视线。为更大的学生所用语言一定要含括对debugging的支持,基本操作了。如果讲授“面向对象”编程是重点环节,那使用Java教学就是一个好选择。

容易安装吗?能跨平台运行吗?

这些都是要记在心里的东西,尤其当学生需要回家编程时显得更为重要。一些语言只能在特定环境中工作,譬如Apple的Swift编程语言。如果学生在Chromebook上编程,那么有一个稳定的,基于浏览器的工具就更加关键。需要考虑的另一个问题:这个语言能让学生回到家中也免费使用吗?还是有一些隐藏的扩展需要付费方才解锁?

能否轻松地在社区中分享项目?

Scratch背后其中一个基本元素就是社区,让孩子们互相分享,相互学习。这个社区对教师们来说也同样重要。不过,分享也要有计划:何时分享,允许学生分享多少内容,评论和修改他人的作品等。也许把JavaScript作为第一门代码式编程语言进行学习会让你大皱眉头,虽在易用性和上手难度上都不如Python,但它的优势在于它是属于网络的脚本语言,只要把项目发布到校园网服务器上就能展示给大家看,方便又快捷。

撑起Scratch的一个重要基本元素——社区

选择编程语言时要考虑的方面还有很多。这个项目能用到什么语言?不同的语言可能支持不同类型的项目。举例来说,Processing和P5.js让制作动画变得更轻松;Python把复杂的数据分析甚至是机器学习变为可能。老师们也可能更倾向一个强大的课堂工具,便于管理作业和批改成绩,尤其对小组项目而言。

一个最经常被问到的问题是:“这门编程语言现在流行吗?”流行度对于学生选择学习一门编程语言来说有很深影响,也不难理解家长希望孩子能掌握对未来职业有利的技能那种心情。无论如何,教授良好的编程习惯胜过教授流行编程语言。

虽然我们可以强调要找到“完美”的编程语言,但我们不要忘记,最终的目标是让学生探索基本的编程概念。他们或许在你的课后就不再插手编程,你教的语言在他们长大后也可能变得过时,重要的是,教授编程将会帮助学生理解计算机是如何解决问题,收获批判性思维技能,并希望他们有朝一日洞察到,用代码创造东西的乐趣。

孩子学编程,作为教育者该如何选择编程语言?相关推荐

  1. 编程入门python语言是多大孩子学的-包头孩子学编程python好吗

    包头孩子学编程python好吗,学习少儿编程就选童程童美,童程童美专注3-18岁少儿编程教育.历时多年,形成了以创意启蒙课程.人工智能编程.智能机器人编程.信息学奥赛编程等课程为核心的一站式编程教育平 ...

  2. python多大孩子可以学_孩子学编程最佳年龄是多大

    儿童编程教育已经悄悄地掀起了编程低龄化的热浪.但是很多人会疑惑,到底孩子学编程最佳年龄是多少呢?下面小编就为大家解答一下. 孩子学编程最佳年龄 首先,孩子的学习黄金时期是非常重要的.从6岁开始,大多数 ...

  3. 5岁自学python编程-一张图告诉你孩子学编程怎么选

    原标题:一张图告诉你孩子学编程怎么选 [5秒Get本文干货] 1. 少儿编程应7岁开始学起. 2. 少儿编程不一定是孩子未来的职业,更应该是一种生活技能和态度,一种思维方式和语言. 3. 正常学习使用 ...

  4. python能参加奥赛吗-【家长必读】孩子学编程能参加哪些高含金量的比赛?

    原标题:[家长必读]孩子学编程能参加哪些高含金量的比赛? 随着人工智能的发展,机器人.智能化越来越普及,获得越来越多的家长关注. 从AlphaGo与棋王柯洁的对弈开始,AI(人工智能)与人的关系就已经 ...

  5. 小孩子学python有什么用途和价值_小码精灵:为什么让孩子学编程是最有价值投资...

    原标题:小码精灵:为什么让孩子学编程是最有价值投资 (小码精灵编程课) 时光永远不会逆行,把握属于自己的每一天. 现在的孩子,除了白天基础课程的学习外,还要奔走在各大培训班之间. 家长们认为,让孩子在 ...

  6. 孩子学计算机编程有用吗,孩子学编程有用吗?

    原标题:孩子学编程有用吗? 当孩子可以轻松自如地修改后台代码,做出让家长为之惊叹的小程序:当我们误以为孩子会痴迷游戏,实则更好奇游戏的实现原理,而对玩游戏本身更加理性:当孩子们通过编程学习,不仅功课没 ...

  7. 孩子学计算机最佳年龄,孩子学编程最佳年龄是几岁

    孩子学编程最佳年龄是几岁2021-01-18 16:58:11文/董玉莹 孩子学习编程的最好是几岁?本文整理了相关内容,欢迎阅读. 孩子学习编程的最好是几岁 6-18岁!从国内外的典型案例来看6-18 ...

  8. 孩子学计算机最佳年龄,孩子学编程最佳年龄是多少

    随着IT技术几十年的发展,编程也正变得越来越简单.易用,而不再是那么复杂.繁琐.那么孩子学编程最佳年龄是多少呢? 孩子学编程的最佳年龄 3-5岁的儿童可以先进行少儿编程语言启蒙,正式学习编程建议在上小 ...

  9. 《趣学JavaScript——教孩子学编程》——第1章 认识JavaScript1.1 认识JavaScript

    本节书摘来自异步社区<趣学JavaScript--教孩子学编程>一书中的第1章,第1.1节,作者: [美]Nick Morgan(摩根)译者: 李强,更多章节内容可以访问云栖社区" ...

  10. 《趣学JavaScript——教孩子学编程》——1.5 本章小结

    本节书摘来自异步社区<趣学JavaScript--教孩子学编程>一书中的第1章,第1.5节,作者: [美]Nick Morgan(摩根)译者: 李强,更多章节内容可以访问云栖社区" ...

最新文章

  1. Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题
  2. 【java】解析JToolBar类的使用
  3. 【Paper】2022_基于无人驾驶地面车辆的多Agent系统仿真平台的设计及编队控制协议的研究
  4. hadoop使用lzo压缩文件笔记
  5. mysql 怎么登陆远程服务器_教你手机怎么远程连接云服务器
  6. 如何在 SAP CRM WebClient UI 里在 Context node 上下文里访问其他 Context Node 的数据
  7. multiprocessing.queue取数据要加锁么_干货 | 小程序多页面接口数据缓存
  8. 帆软地址栏传参,实例
  9. java中timer和timertask_使用Java中的Timer和TimerTask
  10. [JS3] 立即执行JS
  11. mysql索引的创建和删除吗_MySQL索引的创建、删除和查看
  12. mybatis框架搭建学习初步
  13. 【BZOJ】3495: PA2010 Riddle
  14. 码栈使用手册(二)---界面介绍
  15. 云计算就业薪资怎么样 如何加入云计算行列
  16. curl命令及其API 的使用
  17. 快手如何通过算法和算力支撑用户的增长
  18. 几个超赞的颜色搭配网站,非常实用!强烈推荐!!
  19. 基于Web实现网络拓扑图
  20. 我 Spring Boot 贼 6,还有必要学 SpringMVC 么?

热门文章

  1. 互联网档案馆和搜索引擎快照
  2. 解决MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk
  3. 为Bochs添加新的虚拟硬盘格式
  4. matlab入门(三)——矩阵的构造与四则运算、基本程序结构
  5. 第一次去办护照的心得及相关流程
  6. Vue3 文档学习笔记
  7. 解决firefox疯狂读硬盘的问题
  8. js实现小球随机运动
  9. Java开发指导记录表_java 日常学习记录
  10. 激光半主动制导武器半实物仿真系统研究