UNSW课程简评:COMP3121/9101
课程名称:
- COMP3121: Algorithms and Programming Techniques (本科生)
- COMP9101: Design and Analysis of Algorithms (研究生)
前置课程:
- 本科生:COMP1927 或 COMP2521
- 研究生:COMP9024
每周上课时长:
作业布置与评估:
- 每两周布置一次书面作业(biweekly written assignment),共4次,每次占10%
- 期末考试(final exam),占60%
讲师:
- A.Prof. Aleksandar Ignjatovic
课程难度:3.5/5
课程简评:
课程内容与特色:
- 专注方法论与算法思想:这门课与其他计算机科学课程显著不同的是,它主要聚焦于算法的分析与设计方法,而非编程实践。整个课程下来,学生几乎不需要编写一行代码。
- 全面的算法覆盖:课程大纲涵盖了算法分析的基础(如时间和空间复杂度分析)、经典算法(如分治法、贪心法、动态规划、网络流算法、字符串匹配算法等),以及线性规划和难解问题与近似算法等高级主题。尽管最后两个主题讲解较少且未在作业和考试中考察,但整体内容仍相当全面。
学习体验与难度:
- 理论与实践结合:老师通过丰富的例题来讲解每个算法的应用,帮助学生理解算法背后的思想和解决问题的策略。即使某些算法(如最大流算法)较为复杂,学生也能通过套用lecture中的模板来解决问题。
- 作业与考试形式:作业和考试均要求学生用英文描述解法,并交代时间和空间复杂度,无需编写代码。这种形式既考察了学生的算法理解能力,又锻炼了他们的英文表达能力。然而,据后来者反映,作业难度有所增加,需要更多的思考和讨论。
学习建议:
- 加入课程交流群:强烈建议学生加入课程的messenger group chat,以便与同学讨论作业、分享资源和解题技巧。这些讨论往往能提供额外的解题思路,甚至找到与作业题目相似的tutorial questions及其解答,作为写作业时的参考。
- 重视例题与模板:由于课程侧重于算法思想早竖而非编程实践,学生应重视lecture中的例陵睁激题和解题模板。通过反复练习和模仿,可以加深对算法的理解和应用能力。
- 合理安排时间:虽然作业不需要编写代码,但思考和描述解法同样需要时间。因此,学生应合理安排时间,确保有足够的时间来思考和完成作业。
总结:COMP3121/9101是一门专注于算法分析与设计的课程,适合对算法尺袜理论感兴趣的计算机科学学生和软件工程学生选修。通过这门课程,学生可以深入了解各种经典和高级算法的思想和应用,提升算法分析和设计能力。虽然课程难度较高,但通过加入课程交流群、重视例题与模板以及合理安排时间等方法,学生可以成功掌握课程内容并取得好成绩。