Link Search Menu Expand Document

课程大纲与政策

目录

  1. 概览
  2. 课程政策
    1. 关于作弊
    2. 课程作业
    3. 编程作业
    4. 期末考试
    5. 奖励分数
    6. 分数计算
  3. 课程资源

概览

在本课程中,我们的目标是为众多“标准”算法问题展示各种算法。我们将讲解算法设计技巧以及算法分析方法。此外,鉴于本课程为高年级本科生设计,我们还将介绍算法研究中的一些前沿分支领域,为进一步学习提供可能的方向。

在本课程结束后,学生们将学会:

  • 基本的算法设计技巧及其应用
  • 算法分析中使用的主要理论工具。
  • 针对特定问题设计算法的能力
  • 分析给定算法复杂性的能力
  • 对算法的前沿分支领域的基本了解。

课程政策

关于作弊

这门课鼓励大家互相讨论,并从网上获取相关资源来完成作业。当然你也可以直接来询问老师。 然而,直接复制粘贴代码或者答案是被禁止的。 如果我询问时无法解释清楚你的作业是如何完成的,那我便会判断你是抄袭的。不要冒这个风险。

课程作业

课程作业HW将每周发布一次。 作业提交可以通过电子邮件或者纸质版的形式提交。 但请注意,发送电子邮件的时候,请务必将完成作业以pdf的形式并命名为学号-姓名-算法第k次平时作业放入邮件附件,并将邮件以学号-姓名-算法第k次平时作业命名成邮件名进行提交到邮箱 qzyang@shnu.edu.cn

  • 关于邮件提交,如果和编程作业一起提交的话,请将邮件名命名为学号-姓名-算法第k次作业,并分别放入平时作业和编程作业的附件,即以学号-姓名-算法第k次平时作业学号-姓名-算法第k次编程作业命名的pdf文件。

请注意,迟交作业将受到25%的成绩惩罚。

编程作业

编程作业PA也将每周发布一次。 我们将选取Leet Code上的题目. 同学们需要完成一份报告,报告至少包含如下四部分:

  • 题目描述:相应题目的描述。
  • 算法介绍:用自然的语言描述你的算法思路,可采用伪代码或者自然语言的描述方式。
  • 代码实现:你在Leet Code上提交的代码。
  • 测试结果:你在Leet Code上提交代码后的测试结果截图,包含运行时间和内存消耗。你也可以对其结果有自己进一步的讨论。

相应报告请提pdf的形式并命名为学号-姓名-算法第k次编程作业放入邮件附件,并将邮件以学号-姓名-算法第k次编程作业命名成邮件名进行提交到邮箱 qzyang@shnu.edu.cn。这里提供了一个提交示例 示例.

关于编程作业,还请大家注意以下两点:

  • 我不要求每位同学每次都交编程作业,我只要求大家至少完成8次即可。因此,你可以选择你感兴趣的题目来完成。 但请注意,编程作业的发布应该是第十四周会是最后一次。第十五周开始就没有编程作业发布了。也请大家不要扎堆提交。

  • 每次编程作业提交后,我将随机选择一名提交作业的学生请他来分享自己的解决思路,也欢迎同学自主报名分享,主动报名并分享的学生将获得总评1分的奖励分(每位同学限一次)。 当然有个例外情况,如果这次作业没有提交,那我就会随机的选择一位同学来进行分享,当然这会被算进去一次作业提交次数,但是不会有奖励分。

请注意,迟交作业将受到25%的成绩惩罚。

期末考试

本课程只有一次期末考试,有关期末考试的信息将在之后再公布。

奖励分数

TBA.

分数计算

学生的最终成绩Grade将由下列四部分决定:

  • 课程作业HW,
  • 编程作业PA ,
  • 期末考试Exam,
  • 奖励分Bonus.
最终的成绩是上述四部分的加权平均:

Grade = MIN{25%* HW + 15%* PA+ 60%* Exam +5%* Bonus ,100}

课程资源

本网站算法设计与分析将包含本课程所需的所有课程资源,包括课程通知、课程课件、课程作业以及课程作业的解答。

LeetCode

Leet Code是一个提供大量编程挑战和问题的在线平台,主要旨在帮助个人提高编程和解决问题的能力。我们将使用该网站来完成我们的程序作业。

参考资料

下面是一些推荐的书籍: