跳转至

参考资料

我仍然不会写部分算法,我能借鉴别人的代码吗?

阅读、理解并模仿别人的代码是一种有效的学习方式。但是,由于这门课大部分算法是在上课讲过的,笔者非常建议:

  • 不要直接学习“最正确”的完成方式,这会导致你不知道其他方式存在的问题。
  • 哪怕用最土最低效的方式,也要在不看别人代码的前提下,自己从头写一遍。

请注意,我们的查重标准原则是禁止提交复制粘贴的代码,或者和复制粘贴几乎等价的代码。

以下行为将被认为是抄袭:

  • 未注明所有在实现该题时讨论过的同学,与参考过的代码。
  • 除了题目给定的模板与参考实现外,存在显著的复制粘贴他人代码的痕迹;
  • 与复制粘贴几乎等价的重写代码:
    • 调整排版;
    • 替换变量名;
    • 加减注释、无用代码;
    • 重排序语句、函数;
  • 刻意降低代码可读性:
    • 混淆代码;
    • 使用编译器处理代码,如大量使用内联汇编。

因此,我们对判定非抄袭的最低要求是:

  • 除了教材、课件、下发文件外,关闭和题目直接相关的参考内容和代码,从头开始自己写一遍。
  • 在代码中标记与你讨论过的同学、参考过的额外资料。如果有公开的网页链接,请在代码中指明。
    • 请注明所有和算法实现直接相关的资料和内容。
    • 一个例外是和语言、环境相关的内容:你可以查阅 C/C++ 中如何使用某功能,或者搜索编译错误信息的原因,或者搜索 IDE 如何配置,而无需额外注明。
  • 在提交正确前,不要完整阅读对应题目的代码实现;在提交正确后,也不要将代码直接提供给未完成作业的同学。

推荐网络资料

  • The Missing Semester of Your CS Education:正统的环境配置、调试、工具使用等。
    • 一个包含这个的 CS 自学指南 中有大量 CS 相关的内容,不局限于算法和编程相关。
  • 搜索引擎:Google, Bing
    • 不推荐百度的原因是首页有大量 CSDN 和类似的复制粘贴内容,质量实在不行。
    • 实在要使用百度,有同学推荐了 https://kaifa.baidu.com/
    • 你可以通过搜索引擎直接在结果里找到这些网站的内容,通常是具有参考价值的:
  • OI Wiki:提供了大量算法教程与 OI 向环境配置,文风更偏向竞赛风格。
  • ChatGPT:遇到了搜索引擎解决不了的问题,为什么不先问问神奇海螺呢?
    • 当然,你需要对 AI 写出的代码负责。如果 AI 代替你抄袭了,也算是你抄袭。