产品自荐:小学生都在用这个软件学 C++, AdaCpp 堪称算法学习的颠覆式体验。

107 天前
 yushuxin

🌟 为什么会有 AdaCpp

嗨,我是 catnull ,一个热衷于写题的 ACMer (最好成绩:ACM-ICPC World Final 27th Place)。因为一些个人原因,去年开始带一些小学生学习信奥赛,没想到十几年过去了,现在的学生竟然还是在用 dev-c++。

倒不是说 Dev-C++不好,只是觉得有点跟不上时代落伍了

这么多年了 Dev-C++版本乱七八糟的,第一次上课给学生装软件就花了不少时间。还有明明就是少一个分号的事情,Dev-C++非要把那个编译错误搞成好几行的"英文乱码",小孩子第一次接触这个可不是崩溃嘛,家长就只好花大钱找我们这种竞赛生来辅导。

虽然我的课时费是一小时 1800 ,但我还是觉得上课来回答这种分号问题真的是互相浪费,现在 AI 都这么发达了,明明可以让 AI 来人话回答这些超简单的问题,干嘛非要大价钱请个老师呢?现在这个时代就应该用 AI 来重塑编程学习的方法才对呀!

于是,AdaCpp 就诞生了,用一句话来说就是:

AdaCpp 是一款零安装、浏览器即用的在线 C++ 学习环境。学习过程中,AI 会用"人话"拆解思路、指出错误并给出改进建议。

体验地址: https://www.adacpp.com

这里插一句,为什么我要做网页版的 IDE ,因为工作之后我就一直在用 mac 电脑了, 结果找了半天都没找到一个在 mac 上编写 C++的轻量级的 IDE ,最后临时借了一台 surface 去上课,所以我觉得 AdaCpp 真的是可以救我这种小老师的狗命啊。

光这么说可能有点抽象,来看一下 AdaCpp 的实战结果,你马上就明白为什么 AI 可以赋能 C++编程学习了。

⚡ 亮点 1:开箱即用

如前文所述,AdaCpp 是一款零安装、浏览器即用的在线 C++ 学习环境。无需下载、无需登录、无需配置!打开浏览器就是你的 C++开发环境!

这里引用宋丹丹灵魂提问:使用 AdaCpp 一共需要几步? 答:3 步!

第一步:浏览器中输入网址:adacpp.com 第二步:在 Monaco Editor 中输入代码 第三步:点击编译运行

🧐 亮点 2:人话解析编译错误

来来来,我们我们一起来找茬,这段代码到底有几个编译错误都是啥?

眼尖的朋友是不是一秒钟就能发现:错误是变量名写错了,这个name1没给定义直接用了,把前面定义改成name1或者后面这个name1改成name都行。可是这下面编译这编译错误给写的啥子呀?

error: 'name1' was not declared in this scope
   15 |     cout << "Hello " << name1 << endl;
      |                        ^~~~~

这东西最早反正我是看了超级头大的。这个时候,咱这个解析编译错误的功能不就派上用场了吗?

点击终端这个解析编译错误的按键,就可以在右侧的 AI 助手这个面板看到详细解析:

✍️ 亮点 3:一键注释让复杂语法秒变简单

刚接触 C++的学生最大的疑问就是这些代码都是什么意思啊?为什么要有include,为什么要有using namespace,为什么这个<<符号是输出等等等等无穷无尽的问题。

这个时候就可以使用我们的一键注释功能了!可以让每一行代码都变成有意义的内容!

🧩亮点 4:代码体检辅助理解代码逻辑

很多学生在学习算法的时候有个超级大的问题,是理不清除算法逻辑,比如下面这个很简单的二分算法

那这个时候就可以来使用我们的代码体检功能啦🚀️

上面视频里有几个关键点:

  1. 首先点击这个代码体检,就会给我们一个大致的代码分析,告诉我们这段代码要干什么,使用的核心算法是什么
  2. 然后重点来了,这里还会生成一个流程图帮我们梳理代码逻辑,图形化的方式去理解这个代码大致含义到底是什么。
  3. 另外还有时间复杂度、空间复杂度的分析,以及代码可能存在的潜在问题分析。因为这段代码没什么问题,所以这里就说写的很规范啦,那如果写这个二分出现明显的逻辑错误,也会在代码体检里面提示我们有些错误啦。

🛠亮点 5:辅助排障增加关键输出

学过 C++,写过题的一定都知道!代码要是出问题了,我们得加输出去看到底是哪儿的输出不对劲儿,才能来找出写错的逻辑啊。

虽然这是个好方法, 但是写输出删输出这个事儿就比较麻烦,找到错误了还好,然后一激动输出没删除干净就直接提交,又喜提一个 WA ,然后 WAWAWA ,WA 半天发现是没删掉输出,一整个大吐血。所以我就加了一个自己超级心水的功能叫做辅助排障❤️!

这里就是点击那个辅助排障,就可以让 AI 给我狂加输出信息,各种[debug info] 都给我加上,还怕找不出错误吗?

然后想删掉的时候也很简单,再点一下这个按钮可以了!一键删除所有调试信息,又获得一份清清爽爽的代码。

💁结语

以上就是 AdaCpp 最核心的一些功能,当然一些基础的存储文件等等那不都是必须的嘛?另外以后还想要加上的内容包括但不限于题目解析、云端存储等等。

目前 AI 的调用限制是 1 分钟 1 次(基本上等于全免费啦)欢迎大家使用体验呀!大家要是有什么关于新功能的想法我太太太太太太欢迎投喂了! 感恩的心,先比个心ღ( ´・ᴗ・` )~

再来一次体验地址: https://www.adacpp.com

最后,我猜肯定会有人问,为什么只做 C++版本的,别的语言不做吗?

因为现在这个世道,AI 早就可以写出任何的代码了,掌握一种语言的语法根本不是什么核心竞争力。但是!掌握算法是呀!

学写 C++,学的不是 C++的语法,而是 C++背后所代表的算法,只有把算法的逻辑完整地写成可运行的代码,才能真正理解并检验它的思想。这种对算法思维的锤炼,比熟悉任何语言的细节都更能提升解决复杂问题的能力。这也是为什么我在毕业多年之后依旧热衷写题的原因,每一次用 C++ 写出高效算法,都像重新发现思考的乐趣。

最后的最后,谨以“Ada”致敬那位开启机器运算时代的第一位程序员——埃达·洛芙莱斯,愿 AdaCpp 可以助力每一位学习 C++/计算机算法的伙伴~

1477 次点击
所在节点    分享创造
5 条回复
midpoint
107 天前
这个很适合初学者,大佬可以把它拓展一下,可用于多种语言编程,例如 java 、python……
yushuxin
107 天前
@midpoint 谢谢
bao3
107 天前
哇,真很赞,我感觉一些高阶的功能可以收费,普通的练习可以全免费。由于输出是说人话,光是这一点,就足够吸引人了。
Johnyoung
106 天前
体验了下,真的很棒,很赞同你的理念,语法会变语言会换,但背后的思想是永恒的
WebKit
106 天前
感觉不错,为什么我实际使用跟你截图的配色不一样。还有再开发个学 rust 的吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1141206

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX