AP CSA 4.2:数据集
上一课我们讨论了数据收集及其影响。这一课开始关注:收集到的数据如何组织起来,又如何利用这些数据解决问题?
例如,学校可以把学生的姓名、邮箱和 GPA 放在一张表格中。这样的数据集合就是一个数据集。
数据集不只是把数据放在一起;我们还可以逐个访问、处理和分析其中的数据,从而回答问题。
核心知识点
1. 什么是数据集(Data Set)?
数据集(data set)就是一组具体的信息或数据。
例如,学校可以用一张表格记录学生信息:
| First Name | Last Name | GPA | |
|---|---|---|---|
| 学生名字 | 学生姓氏 | 邮箱 | 平均绩点 |
每一行记录一名学生的信息,每一列记录一种信息。
数据可以通过表格(table)或图表(chart)表示。像 Excel 和 Google Sheets 这样的电子表格软件,就可以用表格保存、整理和计算数据。
2. 如何分析数据集?
数据集可以被处理和分析,用来解决问题或回答问题。
分析数据时,通常需要:
- 找出要使用的数据。
- 逐个访问数据值。
- 按照目标处理这些数据。
- 得出需要的结果。
例如,如果我们想计算所有学生的平均 GPA,就需要访问每一行中的 GPA,将它们相加,再除以学生人数。
循环(loop)可以帮助我们逐个访问和处理数据集中的数据。
3. 从表格到算法
表格不只是用来展示数据,也可以帮助我们规划算法(algorithm)。
例子一:计算平均 GPA
问题:如何计算表格中所有学生的平均 GPA?
思考过程:
- 先准备一个
sum,初始值为0。 - 逐行访问表格。
- 把每一行的 GPA 加到
sum。 - 所有行处理完后,用
sum除以总行数。
伪代码(pseudocode):
Initialize sum to 0.
Loop through each row in the table:
Add the GPA value of this row to sum.
Divide sum by the number of rows
to get the average GPA.
注意缩进:累加 GPA 的步骤必须放在循环内部,因为每一行都需要处理;计算平均值则应在循环结束后进行。
例子二:找出荣誉榜学生
问题:学校想打印出 GPA 达到 3.5 或以上的学生姓名,应该怎样设计算法?
这次需要同时使用两种结构:
- Repetition(重复):循环访问每一行学生数据。
- Selection(选择):判断当前学生的 GPA 是否达到 3.5。
伪代码:
Loop through each row in the table:
If the student's GPA is 3.5 or higher:
Print the student's name.
这里不需要把所有学生分别写出来。循环负责逐个检查,if 负责筛选符合条件的学生。
4. AP Exam Focus:三个核心考点
| AP 知识点 | 必须理解的内容 |
|---|---|
| AP 4.2.A.1 | 数据集是一组具体的信息或数据。 |
| AP 4.2.A.2 | 数据集可以被处理和分析来解决问题;分析时逐个访问数据值,并根据目标进行处理。 |
| AP 4.2.A.3 | 数据可以用表格或图表表示,这些可视化形式能够帮助我们规划处理数据的算法。 |
5. Mini Practice:小练习
Practice 1:理解数据集
学校用一张表格记录学生的姓名、邮箱和 GPA。下列哪项最准确地描述了这张表格?
A. 它是一个数据集,可以用来分析学生信息。
B. 它只是文字的集合,不能用于解决问题。
C. 只有把数据转换成 Java 代码后,才算数据集。
答案:A
解释:数据集是一组具体的信息或数据,可以用表格表示,并用于分析和回答问题。
Practice 2:设计算法
学校需要计算所有学生的平均 GPA。下面哪种算法顺序正确?
A. 先把 sum 除以学生人数,再逐个加上 GPA。
B. 将 sum 初始化为 0,循环累加每位学生的 GPA,最后除以学生人数。
C. 只读取第一位学生的 GPA,再除以学生人数。
答案:B
解释:必须先访问并累加所有学生的 GPA,循环结束后再计算平均值。
Practice 3:循环与条件判断
学校要打印 GPA 达到 3.5 或以上的学生姓名。算法需要使用什么?
A. 只需要一个 if。
B. 只需要一个循环。
C. 使用循环逐个检查学生,并用 if 判断 GPA 是否达到 3.5。
答案:C
解释:循环负责检查每一行,条件判断负责筛选符合要求的学生。
Unit 4.2 核心词汇(Vocabulary)
| Vocabulary | 中文理解 |
|---|---|
| data set | 数据集;一组具体的信息或数据 |
| table | 表格;按行和列组织数据 |
| chart | 图表;数据的可视化表示 |
| analyze | 分析;检查并处理数据以回答问题 |
| algorithm | 算法;解决问题的一系列步骤 |
| pseudocode | 伪代码;用接近自然语言的方式描述算法 |
| repetition | 重复;反复执行步骤,例如使用循环 |
| selection | 选择;根据条件决定执行哪些步骤 |
下一课预告: 接下来我们将学习 Java 数组(array),了解如何在程序中存储一组数据,并使用循环访问和处理这些数据。