AP计算机科学A复习:概述 | AP Computer Science A Review

前言

这是一份针对AP计算机科学A课程总结而来的学习、复习材料,主要目的是掌握Java编程基础。时隔两年又因为疾控政策导致我们学校只能线上授课,我恰好有机会来完成这个材料。

编写过程中主要参考了AP计算机科学A课程和考试描述(考纲)、廖雪峰的官方网站上的Java教程、其他相关的网络资源,并且结合我自己的学习感受,所以也当然有我学校老师的影响在里面。比较像是整理过的一份笔记和习题收集册。如果你愿意使用这份资料,不论是准备用来学习AP计算机科学还是单纯入门简单的Java编程,在下面的部分我会阐述AP课程内容的框架(各个单元的内容和联系)然后从我自己的感受来介绍一些学习这些内容的实践操作方式。

在此之前,需要先说明的是,除了简单的上过一点信竞课以外,我并没有接受过其他计算机编程的专业培训。学习Java编程只是因为兴趣,顺便蹭一门AP课的分数。所以这份材料大概率会在某些地方出现描述不准确、甚至纰漏。如果你觉得什么地方不对劲,那么请一定要和我取得联系,好让我在第一时间勘误。(我的邮箱是[email protected]

有关AP全球统考

计算机科学A课程的AP全球统考包括选择题和问答题两个部分。选择题共40小题,分值占整场考试的一半,时限90分钟,答对得分、答错不倒扣分数。问答题共四个大题,第一个大题考Method和控制结构;第二个大题考Class的操作;第三个大题针对数组Array、动态数组ArrayList出题;第四个大题针对二维数组2D Array出题。每个大题的分值占考试分数的1/8,问答题部分时限90分钟,建议每道大题的用时控制在22分钟以内。一般来说,取得5分需要拿到85%的分数。

方法

那么从这里开始。你已经了解,这门课的主要内容是「Java 编程」,作为一门编程语言,要学习的知识点是它的语法,也就是如何把一堆词语组合成有意义的程序语句。在尝试理解这些概念的途中,你可能因为感到困难而非常焦虑,甚至想原地摆烂。在这种情况下,尝试先忽略你不能理解的知识点,先按照以下三步把当前单元的其他知识点学完,大概率你会在半途中自己悟了;或者你还是不能理解。如果仍然不能理解,试试谷歌百度,直接发邮件告诉我也是个非常不错的解决方法,这样做可以帮助我优化叙述的语言,让这份资料更容易理解。为了更好的理解各种概念,得到一个好看的AP成绩,这里用一个实例来介绍一种学习方法。让我们开始?。

学习一个新的语法时,我们首先要理解字面上的定义,例如声明变量就是从电脑内存里开辟一块位置,来存放要用到的内容。

int i = 0;

随后我们就可以尝试理解一个具体的例子,比如上方这个语句有五个元素,以下按顺序从左往右介绍。int 是变量类型,在AP考试中常见的类型有 int(整数)、double(小数)、boolean(布尔量)、以及 String(字符串)。它们将决定被开辟的这块位置有能力存储什么样格式的内容。刚才提到的例子中,用到int来修饰一个名称为i的变量,因此i存储的内容都是整数,可以是114514;也可以是 -123456;或者是0,但无法存储 3.1415926 这个小数;或者“我不想上学”这个字符串。至于这个空间有多大,能装下多少内容,在第一单元第5部分内容中会了解到。那么int i就是开辟了一块名称为i的内存,用来存放整数,而i既然作为名称,你当然可以取一个自己顺眼的,例如「name」,「counter」等等,但不能使用空格等方式来分隔单词。如果有多个单词,一般使用驼峰原则进行书写,即第一个单词小写开头,后面的单词首字母大写表示分割,例如「studentName」。随后,=符号在Java中的含义是赋值,这个例子中,就是把0作为i的初始内容。句尾用 ; 表示一句话的结束。至此, 就有了一个叫做i的位置,有能力存储整数,并且存储了0作为初始值。

结合了一个例子学习定义变量的语法知识点,最后我们还需要在其他应用场景里试着书写、应用这个知识点。如果你发现,你已经理解了构成这个语法的各个元素都有什么意义,并且可以自由的在需要时使用这个知识点,那么就完成了对这个知识点的学习过程。试试定义一个变量,用来存储你的昵称。

准备工作

你不需要学习任何前置课程作为准备,前置知识会在Unit 0介绍。但是最好从现在起,使用任何电脑程序时都尝试解读各种功能的操作逻辑。比如,为什么登陆QQ时软件能判断你输入的账号和密码是对应的?这样可以帮助你在学习了计算机科学的知识后更好的把知识点与应用场景联系起来。

那么,代码要在那里书写?代码又如何变成被运行的程序呢?在这份材料里,我们使用Eclipse IDE做示范,在下方的「资料」板块里有下载Eclipse IDE的链接。IDE即集成开发环境,简单的理解为,我们用这个软件编写代码;写好代码后,就可以用IDE的编译功能来运行代码,使用你自己创作的程序。所以,为了学习Java编程,你需要准备好你的工具:在电脑上安装好Eclipse IDE。如果愿意,你也可以选择其他顺手的IDE。

课程大纲

*下面展示的「学校课程进度」根据我自己学校的授课进度计算,供参考。

Unit 0 – Introduction 开始学习AP计算机科学A课程

考试分数占比:N/A

主要内容:这是介绍单元,并非AP官方考纲的内容,也没有出现在学校的课程中。但是对于理解后续知识点有必要。

  • U0.0 准备编写程序
  • U0.1 理解「输出」- 例如,屏幕是计算机输出内容的载体之一。
  • U0.2 理解「输入」- 例如,键盘是把内容输入进计算机的工具之一。
  • U0.3 理解「存储」- 变量、常量都储存在计算机的内存里。

Unit 1 – 基本数据类型

考试分数占比:2.5%-5%
学校课程进度
100%

主要内容:输出语句的书写;基本的变量类型;在编程中使用运算符号;变量类型强制转换 等。学习第一单元可以掌握在Java编程中操作变量的技能,例如变量参与的计算。

Unit 2 – 面对对象编程

考试分数占比:5%-7.5%
学校课程进度
100%

主要内容:理解「对象」的含义,掌握使用「Constructor」初始化「对象」的方法;理解Class, Method, Object等相互间联系的方式,比如创建和调用Method、操作Objects、在Method之间传递参数,并学会它们在Java里的写法。

Unit 3 – 选择结构

考试分数占比:15%-17.5%
学校课程进度
100%

主要内容:学习boolean表达式和 if 语句。让程序根据具体情况执行不同的方案。比如,判断某公交乘客是否大于等于65岁。如果大于等于65岁则按老年卡票价处理,否则按正常票价处理。第3单元里的语法知识点可以满足这个例子中的需求。

Unit 4 – 循环

考试分数占比:17.5%-22.5%
学校课程进度
100%

主要内容:计算机非常擅长重复的工作。我们只需要设置循环的条件,就可以重复执行某一部分程序语句(即,在满足设置的条件时,不同的重复执行这部分语句)。第四单元将会介绍AP考试要求的两种循环语句:while循环和 for 循环。比如,让计算机帮你算1到10000所有整数的累加。

Unit 5 – Class的操作

考试分数占比:5%-7.5%
学校课程进度
100%

主要内容:进一步理解Class和Method之间的层级关系,你可以把真实世界的事物比作Class或者Method从而加深理解。在第五单元,还会学习限制Class、Method、Constructor等的访问范围的关键字,例如public或者private;Constructor的书写要求;程序的注释;并介绍一些功能比较常用到的Method。

Unit 6 – 数组Array

考试分数占比:10%-15%
学校课程进度
100%

主要内容:学习使用数组来存取大量的数据,了解操作数组的语句的写法。例如,找到一个数组中的最大最小值、找出具有某些特征的数组 等等。

Unit 7 – 动态数组ArrayList

考试分数占比:2.5%-7.5%
学校课程进度
100%

主要内容:ArrayList相对于Array的特点是,ArrayList不需要在一开始就确定数组的长度。还提供了一系列预设的Method供使用,例如删除、插入数值、以及数组排序等。特别的,这个单元引入了隐私数据保护的意识。

Unit 8 – 二维数组2D Array

考试分数占比:7.5%-10%
学校课程进度
100%

主要内容:如果Array是一排用于存储数据的盒子,这个单元介绍的2D Array就可以被比作一个表格,有横、竖两个维度。你可以把九九乘法表存进2D Array吗?存取二维数组会用到嵌套的循环语句。

Unit 9 – 继承Inheritance

考试分数占比:5%-10%
学校课程进度
100%

主要内容:这是Java的一大特色。你可以把一个已经存在的Class作为蓝图,产生很多subclasses,然后对这些subclasses单独添加需要的功能, 这不需要用到复制粘贴,而是用到extends关键词。例如,办理普通公交卡需要姓名和身份证号。学生卡除此之外还需要学生证;老年卡还需要社区证明;军警免费就需要工作证;员工卡需要人事部的文件…… 那么你可以把普通卡的Class作为蓝图来创建subclass,再根据具体的需要对继承来的subclass添加需要的功能。

Unit 10 – 递归Recursion

考试分数占比:5%-7.5%
学校课程进度
100%

主要内容:Method可以通过调用自己,达到形似循环的效果。这个单元还介绍了二分法排序和归并排序。但不要求在编程实践中运用。

资料

  1. 下载Eclipse IDE https://www.eclipse.org/downloads/
  2. 【官方考纲】AP计算机科学A课程和考试摘要 https://apcentral.collegeboard.org/media/pdf/ap-computer-science-a-course-and-exam-description.pdf
  3. 【官方简介】AP计算机科学A课程内容描述页面 https://apstudents.collegeboard.org/courses/ap-computer-science-a
by Oscar.L
E-mail [email protected]

Comments

  1. HCJ
    Windows Edge
    2 years ago
    2022-9-22 8:51:36

    还行

    • Owner
      HCJ
      Macintosh Safari
      2 years ago
      2022-9-22 20:07:56

      ?

    • *
      HCJ
      Macintosh Safari
      2 years ago
      2022-10-25 7:55:59

      还是比较挑剔哦

  2. x
    Windows Chrome
    7 months ago
    2023-10-09 0:12:15

    谢谢你

Send Comment Edit Comment

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next