COMP3600/6466这两门课程,无论你是本科生或者硕士都非常建议学生选修算法,算法可以说是程序员的必备技能之一。

  课程内容

  准确来说这门课应该是算法和数据结构,前半学期主要讲算法分析,包括算法分析,渐进表示法,复杂度分析,以及排序算法等。下半学期主要学习树结构,哈希表,堆,图,动态规划。前半学期是一位伊朗教授,下半学期是香港教授。两个教授讲课风格不同,整体来说中规中矩,鉴于内容本身难度不算太大,因此讲师讲课水平高低对理解知识点本身影响不大。

  考试和评分方式

  课程总成绩分为三部分:期中考试占40%,期末考试占55%,其余5%来自于两个小测验。两位老师各负责半学期教学,因此考试也分别由他们命题,风格差异非常明显。

  期中考由伊朗教授出题,偏重理论和分析,难度相对较高,尤其是最后一道设计题往往开放性较强,需要学生具备较强的逻辑能力和算法思维。很多同学在这一部分吃了苦头。

  相比之下,期末考试则更侧重操作和计算,只要对算法步骤足够熟悉,比如红黑树插入与删除的规则、Dijkstra算法的执行流程等,基本可以按部就班作答,难度适中,有不少同学拿到了满分。

  值得一提的是,选择题也大多是需要计算过程的,不像传统意义上的客观题。很多时候,即使你不完全理解算法本质,只要流程没错,分数也不会低。

  课程整体难度适中。

  总体评价

  很推荐这门课,推荐的原因在于算法是计算机学习中非常重要的一环,同时它本身充满乐趣,对计算机思维的培养也起到重要的作用。ANU计算机课程考试难度貌似有出现上升趋势,比如往年友好的python,database情况已经变得不同了。所以,考试难度很大程度上取决于教授个人,换个convener难度或许就有巨大波动。