AP Computer Science A课程大纲

陈 欣发布

I. 面向对象程序设计(Objected-Oriented Program Design)

设计软件(计算机程序)的总体目标是正确解决问题。与此同时,这一目标需要涵盖定义并设计可被理解可被修改以应用到不断变化的外部环境的程序。设计的过程需要构筑在对待解决问题的充分了解上。

A. 程序与类设计
1. 问题分析
2. 数据抽象与封装
3. 类定义,接口定义,关系(是/包含),利用继承扩展
4. 代码重用
5. 数据表示与算法
6. 功能分解

II. 程序实现(Program Implementation)

解决问题过程的一部分是清晰表述问题解法以便于考察和分析。使用Java编程语言实现解法能够巩固相关概念,测试可能的解法并鼓励讨论各种可能的方案。

A. 实现技巧
1. 自顶而下
2. 自底而上
3. 面向对象
4. 封装与信息隐藏
5. 过程抽象
B. 程序构造
1. 内置类型与引用类型
2. 声明
    a. 常数
    b. 变量
    c. 方法与参数
    d. 类
    e. 接口
3. 使用System.out.printSystem.out.println输出文本
4. 控制
    a. 方法调用
    b. 顺序执行
    c. 条件执行
    d. 迭代
    e. 递归
5. 表达式求解
    a. 数值表达式
    b. 字符串表达式
    c. 布尔表达式,短路求解,德摩根定律

C. AP Java子集中的Java库类与接口

III. 程序分析(Program Analysis)

程序分析包含审查测试程序以决定它们是否正确实现了需求。它还包括分析程序或算法以理解应用到不同原数据集时的时间与存储空间需求。

A. 测试
1. 开发合适的测试用例,包括边界用例
2. 单元测试
3. 集成测试
B. 调试
1. 错误分类:编译时,运行时,逻辑
2. 错误发现与纠正
3. 使用调试器,添加额外输出语句或肉眼代码审查等技巧

C. 运行时异常

D. 程序正确性
1. 前置条件与后置条件
2. 断言
E. 算法分析
1. 语句执行计数
2. 非正式的运行时长比较
F. 整数的数值表示
1. 不同基數的非负整数表示
2. 整数上下限的影响

IV. 标准数据结构(Standard Data Structures)

数据结构被用于在程序中表示信息。在数据结构的开发与应用中,抽象是一个重要主题。

A. 内置数据类型(int, boolean,double)
B. 字符串
C. 类
D. 线性表
E. 数组(一维与二维)

V. 标准操作与算法(Standard Operations and Algorithms)

标准算法是标准问题的优秀示范解法。许多算法也和标准数据结构共存共荣。这些算法为分析程序效率提供了例子。

A. 数据结构操作
1. 遍历
2. 插入
3. 删除
B. 查找
1. 顺序
2. 折半
C. 排序
1. 选择
2. 插入
3. 归并排序

VI. 计算与社会(Computing in Context)

对计算机系统的道德与社会影响对计算机科学的学习是极有必要的。下列主题并不要求详细展开,但应该纵贯整个课程。

A. 系统可靠性
B. 隐私
C. 法律问题与知识产权
D. 计算机使用的社会与道德后果


陈 欣

AADPS创始人