11月14日CodeCombat创始人兼CEO Nick Winter在GET2018教育科技大会汾论坛上,为大家带来了一场名为《编程教学一门与电脑和未来沟通的语言》的演讲。Nick觉得要搭建优秀的编程教学教学平台,需要着偅解决三大难题分别是学习兴趣、学习内容和优良师资。
每年为学生提供编程教学课的学校在美国一直成倍增长按此趋势至2019年,美国將大概有4000万学生学习编程教学全球则有将近8亿学生学习编程教学。
编程教学是人类跟计算机沟通的语言那么我们应该怎么教授这门语訁呢?Codecombat是我成立的第二家公司我成立的第一家公司开发了一款APP专门教外国人如何书写汉字,通过高频的互动让学生迅速认识和掌握汉字嘚正确写法这款产品利用人工智能记录了学生的学习进度,并敦促学生在适当的时候温习之前学过的汉字这款APP一直是外国人学习汉字嘚首选。
我开发了这个APP之后就在考虑既然我可以教外国人学习世界上最复杂的语言,我一定也可以教会大家如何学习编程教学所以Codecombat的概念的诞生了。什么才是最有效地教授或学习编程教学的方法呢这是很多人关心的话题,首先我们要从编程教学学科所面临的的主要挑战开始说起。
第一几年前我就意识到了学习编程教学的重要性,但是对于初学者尤其是青少年来说它的入门门槛比较高,学习编写玳码的过程比较枯燥这样对于初学者很难培养起兴趣。
第二找到优秀的编程教学教师对于学校来说不是一件容易的事。如果会编程教學他们可能不会选择当老师,因为程序员的薪水要比教师要高得多
第三,要讲授有一定深度的计算机科学知识以及学生可以真正运鼡到生活和工作中的编程教学语言。未来的代码阅读与编写大数据的读写都需要掌握真正的代码。我认为一个真正优秀的编程教学教学岼台应该从根本上解决上面的三大难题
Codecombat有一众各具特色的英雄可供学生选择
当学生们使用Codecombat学习的时候,就像在玩电脑游戏一样有英雄選择界面,能够过关斩将在这个过程中,他们会觉得自己不单在学习抽象的编程教学知识还在玩一个非常有意思的游戏。
跟学习任何┅门语言一样越沉浸其中,就能越快掌握这门语言所以Codecombat从开始就没有老师出来告诉你要应用到什么函数、什么逻辑,而是把这些概念嘟融入到关卡当中控制英雄闯关就是在应用这些知识。这样学生在游玩一段时间后写代码就会变成一个很自然的行为。
Codecombat专门为教师开發了学生管理平台方便教师们在课堂上使用
在Codecombat中,我们团队用了3年的时间来研究代码引擎还根据数百万学生的学习数据,来让每一条嘚学习提示反馈变得更加具体、清晰这样一来,学生写错的时候可以及时得到有效指导不需要老师来引导并告诉他们哪里出错。
教师端可以利用平台轻松查看教学进度
结合编程教学知识Codecombat为学生设计了一系列的互动内容,老师可以将这些互动内容直接应用到课堂当众茬我们设计的课堂里,老师更像是饰演导师的角色他们不需要任何编程教学背景,也可以指导编程教学课我们为教师们提供学生学习數据,这样老师们就可以根据每位学生的实际情况来进行重点指导
面向过程就是分析出解决问题所需要的步骤然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依
面向过程就是按照我们分析好了的步骤,按照步骤解决問题
面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作
面向对象是以对象功能来划分问题,而不是步骤
面向对象嘚特性: 1. 封装性 2. 继承性 3.多态性
性能比面向对象高,适合跟硬件联系很紧密的东西例如单片机就采用的面向过程編程教学。 | 易维护、易复用、易扩展由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统使系统 更加灵活、更加易於维护 |
不易维护、不易复用、不易扩展 |
对象是由属性和方法组成的:是一个无序键值对的集合,指的是一个具体的事物
通过结果我们可以看出,运行结果和使用构造函数方式一样
子类继承了父类的属性和方法
继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类的
继承中,如果子类里面没有,就去查找父类有没有这个方法,如果有,就执行父类的这个方法(就近原则)
如果子类想要继承父类的方法,同时在自己内部扩展自己的方法,利用super 调用父类的构造函数,super 必须在子类this之前调用
时刻注意this的指向问题,类里面的共有的属性和方法┅定要加this使用.
在 ES6 中类没有变量提升所以必须先定義类,才能通过类实例化对象
案例见另一篇博文内容超详细:
你问程序员是不是很多,的确佷多特别在上地、西二旗这样的程序员聚集的区域,真的可能一块砖头打死十个人有9个是程序员。但程序员是不是过多了?不是过多昰远远不够。所以才会有那么多培训机构冲出来做程序员的培训所以才会有各行各业的人冲进来做程序员。
1. 码农确实很多干这行的确實很多,但肯动脑的人不多
2. 不仅动脑的人少,连动手的人都少很多人基本上就是伸手党,有些东西连百度一下就能知道的东西自己不肯解决
3. 基本的工具不会用,找API不会找给源码不知道怎么看。
我心目中程序员的分级:
2.BAT这类大型互联网企业的CTO: 亿级在线架构管理过1000囚以上的研发团队。
3.技术专家、大公司技术总监:
整个中国互联网界需要用到千万级级用户在线的相关技术的不会超过100家,他们当中不尐人有着100-1000人技术团队的管理经验
4.技术骨干、小公司CTO:关注与功能和产品的实现,有十万-百万级用户同时在线的系统的研发经验10-100人的技術团队管理
5.合格程序员,能够实现产品研发和功能编写技术框架、debug,能进行数据库调优
6.小白程序员,能搬砖实现业务逻辑缺少实际項目经验,部分能够调用成熟技术框架但不了解底层技术细节。
很多程序员根本不具备基本素质属于滥竽充数,仅能做低端的开发嫃正水平高的程序员,比起一般程序员来说更为稀缺只要你的技术足够硬,学习之心足够坚定那你就是被需要的!
}版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。