全方位支持算法与数据结构教学

数据结构与算法类课程不仅仅关注程序的正确性,更重要的是算法的时空复杂度。

算法可视化
让学生直观理解算法思想。
代码自动评判
考核基本知识点和解决问题的能力。
大数据性能评判
自动度量程序时间复杂度,并通过实际问题(项目)真正体验数据结构和算法的魅力。
代码查重
督促学生独立完成练习。

算法与数据结构交互可视化

以交互可视化的形式动态展示算法的执行过程,使学生更容易理解算法思想,激发学习兴趣。

支持栈、队列、堆和递归、索引、排序、图论、动态规划等共45种教学中常见数据结构和算法的交互可视化。

综合项目案例

支持性能参与评分。性能得分会以排行榜的形式展现,促进学生持续优化算法和数据结构。优化过程中体验算法魅力,理解理论与实践的相互作用。

支持超大测试数据用例,性能在大数据下才有区分度。

可以作为项目题,贯穿教学过程,让学生用算法思维,综合考虑时间复杂度和空间复杂度去寻找最优的方案来解决问题。

项目 内容 数据量
词频统计 统计一个英文文本文件中每个单词的出现次数 哈利波特小说全集,100万单词
拼写检查 依据所提供的英文字典,编写程序对一个英文文本文件中英文单词进行拼写检查 93万单词
随机文本生成器 基于马尔可夫链(Markov Chain)算法,根据现有的某种语言的文本(如一本英文小说),生成类似写作风格的文章 110万单词
小型图书管理系统 用C/C++开发一个小型图书管理系统,具备录入、查找、删除功能 图书信息条目100万

注:此类项目题也可以用于体系结构课程,利用cache、指令多级流水、分支预测等优化程序,深入理解CPU的微架构,参考《深入理解计算机系统》。

代码性能剖析

自动剖析和统计每一行代码在评测服务器CPU上实际执行次数。

高质量的题库

北京航空航天大学计算机学院历经10余年沉淀下来的高质量题库,覆盖所有知识点和难易度,并附带代码样例。

利用编程题直接考察算法与数据结构知识点。