大家好,我们正在做一个开放性实验项目,原始方向和 C++ 算法题、分层测试数据、自动评测、性能分析、Git/Docker 实验环境 有关。
目前我们考虑把它做成一个面向算法学习的在线平台,暂定定位是:
学习型 OJ + 算法思路总结 + 多方案性能对比
基本流程是:
用户选择一道算法题;
编写并提交 C++ 代码;
系统进行样例运行和正式评测,返回 AC、WA、TLE、CE 等状态;
通过后填写结构化算法总结,包括核心思路、复杂度和易错点;
对比朴素解法和优化解法的运行时间、内存占用;
将题目、代码版本、测试数据、运行结果和总结保存到个人知识库。
我们希望它不只是“代码通过就结束”的普通 OJ,而是能把:
题目
测试数据
题解代码
评测结果
性能实验
算法总结
统一管理起来,形成一条可追溯、可复现的学习记录。
目前我们比较困惑的问题有:
项目定位是否合理?
做成“学习型 OJ + 算法实验平台”是否比单纯做数据托管系统更有展示价值?
MVP 应该保留哪些功能?
如果时间有限,是否只做 C++17、标准输入输出题、基础评测、思路总结和性能对比即可?
系统架构应该怎么拆分?
目前考虑分成前端、题目与数据管理、判题服务、性能实验服务、知识库几个模块,这样是否合适?
测试数据如何组织比较好?
是否应该区分样例数据、边界数据、随机数据和极限数据,并且给每个数据集做版本管理?
在线执行 C++ 代码有什么比较合适的方案?
是先用模拟评测完成原型,还是直接基于 Docker/沙箱实现一个简化版判题服务?
性能对比如何保证公平?
多次运行取平均值、固定编译参数和固定数据集是否足够?
目前我们已经做了一个静态交互原型,主要验证“提交评测 → 思路总结 → 性能分析 → 知识库”的完整流程。希望有做过 OJ、算法教学平台、代码沙箱或实验管理系统的同学,帮忙看看这个方向是否可行,以及哪些功能应该删减或调整。
如果只能优先完成一个学期项目版本,大家建议我们把重点放在:判题功能、实验数据管理,还是算法学习闭环上?
非常感谢大家的建议。