在如今这个时代,在不少领域中,编程能力已经逐渐成为一项很是重要的基本能力,编程教学也已经愈来愈广泛。许多专业将程序设计课程做为大学一年级的必修课,甚至青少年教育目前也在掀起一股学习编程的浪潮。面试
然而,对于第一次接触编程的同窗,如何让他们更快速的入门仍然是一个须要编程教育者去思考的问题。许多同窗在接触编程初期,因为编程经验不足,常常会出现各类各样的问题,而这些问题很难直接反映在代码编译或运行的输出结果中,致使一部分同窗在学习初期学习进度迟缓,编程学习热情也不足。若是能有一个智能的平台,它能帮助编程初学者(或者是某种新语言的初学者)更快地去跨越学习初期的种种障碍,那么对于编程教育者和编程学习者来讲,都能起到很是大的帮助,而咱们这个项目就是但愿去实现这样的一个AI Coach。算法
场景 | 毫无编程经验的家庭主妇 |
---|---|
编程知识与能力 | 历来没有接触过 |
动机 | 平时比较空,没什么事情作 |
目的 | 但愿能会一些基本的编程语言和编程思惟,能写一些简单基础的程序 |
困难 | 一点基础都没有,看网上的编程课程看不懂 |
用户偏好 | 但愿简单一点,学的时候能跟得上 |
用户比例 | 约占人群的30% |
典型场景 | 登录AI Coach网站,根据本身的能力图与计算机水平来选择合适的题目,天天花一些时间来完成题目,学到相应的一部分知识 |
场景 | 当代大学生 |
---|---|
编程知识与能力 | 学过若干门编程语言,有必定的基础 |
动机 | 要学习新的语言 |
目的 | 但愿能尽快学会一门新语言以运用 |
困难 | 对新语言语法不熟悉,容易将新旧语言弄叉 |
用户偏好 | 但愿能快速上手,越快越好 |
用户比例 | 约占人群的70% |
典型场景 | 登录AI Coach网站,根据本身的实际需求来选择要学的语言,而且一天能够花大量时间来快速学习,以求达到速成效果 |
一些网络上对于编程难的广泛描述:编程
能够基本分析出目前学习编程问题:后端
目前的同类竞争产品分析:网络
例子 | 优势 | 缺点 | |
---|---|---|---|
网上课程 | https://courses.edx.org/courses/HarveyMuddX/CS002x/1T2015/course/ https://code.org/ | 和学校是课程差很少相似。可是设置更加先进。同时还配有练习题,能让学生熟练。 | 与学校上课的缺点相似,教师和助教有限,并不能一对一辅助学生理解bug中晦涩难懂的信息。 |
OJ | http://acm.pku.edu.cn/JudgeOnline/ https://leetcode-cn.com/problemset/all/ | 可能是针对面试人群和acm选手。提供大量算法题目,功能实现正确且复杂度在规定范围内的代码能够经过试题。可以达到练习的目的 | 这些题目是针对有较强编程基础的学生的。对于变成自学的编程小白基本没法下手。 |
网上自学教程 | https://www.liaoxuefeng.com/wiki/1016959663602400 https://www.runoob.com/ | 知识描述详细易懂,有的教程还配有习题。 | 习题量不足,不足以使初学者上手一门语言。同时没法实时跟进学习者的进度。Debug信息初学者没法理解的问题仍是没有得以解决。 |
针对以上的现状和各种产品的优缺点,咱们产品的优点在于:编程语言
1, 给用户提供友好的debug提示函数
咱们的AI coach有如下几大关键特性,旨在解决当前编程教学行业的一些痛点:单元测试
智能化的交互方式:对编程小白来说,从头写一个完整的程序是一个费时费力而收效甚微的工做。AI coach经过给从题库中选取的代码段智能挖空,能对使用者进行有针对性的训练,能在短期内帮助使用者学习、强化编程。学习
人性化的编程指导:不少编程入门者或者某种语言的初学者,在编写代码时会遇到各类各样的syntax error或者runtime error, 而他们获得的提示信息却比较晦涩难懂或不够智能精确。AI coach可以为编程者对错误进行智能分析,准肯定位错误,且提供更为人性化的天然语言提示。测试
个性化的学习跟踪:不少编程小白对本身当前的编程水平并不能有全局的认知,这让他们在学习过程当中感到很迷茫。AI coach为用户提供了个性化的学习进度的跟踪,经过对于用户在编程知识的不一样方面的分析,刻画用户画像,并提供个性化的学习曲线,协助用户对本身编程能力进行评估,以便安排后续的学习。
友好的分类与搜索:不少入门者想作针对性练习时,面对茫茫题海感到无从下手。AI coach一方面提供了与高校教学接轨的题库分类,方便校内使用者进行课后的对应强化训练。另外一方面,咱们提供了支持天然语言的搜索,为但愿对某种能力进行练习却没法准确描述函数名或功能名的用户提供了优秀的使用体验。