你好,我在滑铁卢,过几天CS136这门课要考试,想问一下我应该重点复习什么?麻烦老师帮忙总结我们要考的内容,然后能指导我备考,谢谢了。
滑铁卢大学的CS136(基础算法设计与数据抽象)课程基于在CS135中学习的技术和模式,同时延伸到使用命令式语言。课程介绍了算法的设计与分析、信息管理以及实现过程中所需的编程机制和方法。讨论的主题包括迭代和递归排序算法,列表、栈、队列、树及其应用,以及抽象数据类型及其实现。以下是针对CS136考试所总结的复习重点,希望能帮助你充分备考。

一、考前复习重点
1、变异、交互与封装
Scheme中标识符与值的绑定变异。语句的执行顺序。Scheme中的基本输入输出。状态封装(原始对象)。Scheme中结构与列表变异的语义。Box-and-pointer图。
2、内存模型与C语言
内存模型。C 中的变量声明、赋值和中缀表达式。C 中的基本输入/输出。编译。Scheme 中的指针、地址、垃圾回收和内存复用。在 C 中建模函数、过程和递归。C 中递归的限制。循环结构。
3、效率
O 表示法。Scheme 和 C 中简单程序的分析。对数时间复杂度的列表操作。Scheme 和 C 中的向量/数组及其应用。线性搜索和二分搜索。哈希表及其应用。C 中的指针和字符串。
4、内存管理
C语言结构。内存分配与释放。C 中的列表与队列。安全性和可用性问题。
5、抽象数据类型
Scheme中的信息隐藏。模块系统。库。抽象数据类型的定义与实现。C中的独立编译。其他语言(Java、C++、ML、Haskell)中的抽象与代码复用方法。
6、计算机科学史
本课程所涵盖概念的历史发展。
二、考前复习目标
在考试之前,你应该通过复习能够:
1、编写设计合理、格式规范、文档齐全且经过测试的中等规模程序(200 行),能够使用基本输入输出。
2、有效运用命令式编程范式(如变量修改、迭代)。
3、解释并演示 C 语言内存模型,包括内存的显式分配与释放。
4、解释并演示模块化与抽象化的基本原理。
5、实现、使用并比较基本数据结构(结构、数组、列表和树)及抽象数据类型集合(栈、队列、序列、集合、字典)。
6、分析算法实现的效率。
以上就是你在CS136考试之前应该着重复习的内容。如果你在复习过程中遇到问题,可以立即联系考而思的课程顾问,以获得有针对性的滑铁卢大学考前辅导。通过辅导,你将充分掌握考试重点、及时进行查漏补缺、不断提升应试能力,从而在考试中有更好的表现。