ap计算机科学考题,把AP计算机A Free Response题做成阅读理解理解翻译题

本文详细解析了APCSA计算机考试中的FreeResponse题目,将其转化为阅读理解和翻译问题。指出这类题目的难度在于对题目要求的理解和编程基础,强调了阅读理解、逻辑思维、耐心和注重细节的重要性。通过实例解析,展示了如何将题目转化为编程代码,并提供了评分标准上的差距。文章提醒考生,编程语言只是工具,逻辑思维才是关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原标题:把AP计算机A Free Response题做成阅读理解理解翻译题

AP CSA 简答题简介

APCSA计算机考试历来是申请美校Computer Science专业的敲门砖,它在众多AP考试中能脱颖而出的原因也非常的简单,就是计算机系超级高的就业率和起始薪水。更重要的是美国众多顶尖IT企业的存在则是给了我们同学们创造了一个摇篮和港湾,学计算机的娃儿们呢可以说是抱着金砖从大学毕业(具体计算机科学相关的信息和问答呢同学们可以参考我另外一篇文章 《原来移民性价比最高的专业是它》点击:原来移民性价比最高的专业是它)。我们这篇文章就是来解析一下我们APCSA计算机考试中最难也是通常无法找到技巧的Free Response题,也就是我们在数学中所说的应用题。

1. 题目真的那么难吗?

以一个在计算机行业从业者的眼光看,这些题目都是编程的基础题,如果用数学的眼光来看这个考试题的话顶多算是小学4、5年级的水平。而CB (College Board) 设计这门课程的初衷也很简单,就是在大学上课之前对编程有所基础,也就是我们通常理解的学前班。

2. FreeResponse到底想考什么?

从知识点来看大概如下几个方面

a) 对java 编程 flow 控制掌控,即我们所说的判断语句和循环语句

b) 对java 面向对象编程的掌握,即类的设计和实现

c) 对java 中简单的数据结构的使用,即数组(二维数组),链表ArrayList的使用等等

当然这个知识点的背后是建立在考生对题目的阅读和理解能力,这个是他们的核心考点,也是在现实行业当中最重要的一项技能,即将Product Manager (就是我们通常所说的产品经理)所写出的文档转换为代码的能力。Free Response题的题干通常非常的冗长,有没有必要,有,因为它是基于对一个问题的概括和用例的解析,这也是我在读现实工作中对文档的基本需求。题目的主题就可以理解为现实中的一个问题,而考生要做的就是通过文档来实现或者补充程序使得程序能够满足我们Product Manager, 也就是CB出题考官的需求 (Requirement),利用计算机程序化的思想解决这个问题。

3. 3分/4分/5分的考生到底有哪些差距?

a) 阅读理解能力, 考生们基本上有几个月到一年多的学习基础,而有的考生就算是时间短也能在读题过程中抓住重点,其实这个能力跟编程已经没有关系,就是我们上面所说的对考官提出的需求的理解能力。

b) 逻辑思维能力,如果考题是用文字叙述一个需求,那么有能力在脑袋中将它转化成场景和画面就是能力,这里完全可以借助于稿纸画出来,有的考生通常忽略了这一步,所以做题的时候很耽误时间。

c) 耐心,如果没有耐心去好好把“产品经理”的需求读完,那么这个考试就是告诉你你不适合做一名程序员。

d) 最后,细节决定成败,有很多时候一个不小心忘记返回值,或者一个不小心忘记了初始化变量,都是非常令人惋惜的失误。

用阅读理解+翻译的方式解题

从上面对于考试的解析我们不难看出,其实我们的Free Response题就可以当阅读理解 + 翻译题来做,翻译的原文是英文,而翻译的译文就是我们java语言,这是一个仅仅在java虚拟机中使用的语言。

下面我们用2018年APCSA Free Response的第一题来当具体的例子来介绍这个技能。

题干:This question involves reasoning about a simulation of a frog hopping in a straight line. The frog attempts to hop to a goal within a specified number of hops. The simulation is encapsulated in

the following FrogSimulation class. You will write two of the methods in this class.

b44e8040490d19b2407d31be7a754047.png

我们开始做阅读理解,读题,题目说

我们要去Reasoning (论证) 一个模仿小青蛙在直线上跳跃的模型, hop这个词要是不认识,你就想青蛙在一条直线上还能干嘛,跳呗。后面接着说小青蛙想要在规定的步数类跳到一个目标。这个实验被封装在了一个FrogSimulation类当中,所以我们要去实现两个其中的方法。

(同学们如果对类这样的基本知识掌握不是很牢固,建议去千聊上听我们坚果教育 - 跟着Sukki老师学 AP计算机 课程)

类的框架呢在下文中已经给出,我们通过阅读来看类的三要素:

第一要素:成员变量(member variables),有两个private int goalDistance,注释中的解释是Distance, in inches, from the starting position to the goal. 即我们小青蛙总共要跳跃的目标距离,以及private int maxHops,即小青蛙能跳跃的总共的步数;

第二要素:构造函数(constructors),这里我们看到题干中也已经提供了constructor来初始化我们上面的两个成员变量;

第三要素:成员函数,这里我们看到有三个,其中第一个是题目给出的,叫hopDistance(),这个我们看到返回值是int整型,上面给出的注释呢是Returns an integer representing the distance, in inches, to be moved when the frog hops. 意思就是我们这个函数会被用来决定每次小青蛙呢要跳跃的步数,你可以把它看做是一个黑盒函数,它返回的是一组随机数。

继续读题,题目要我们去实现的simulate方法,注释里面说到 Simulates a frog attempting to reach the goal as described in part (a), 它Returns true if the frog successfully reached or passed the goal during the simulation; * false otherwise, 简单明了能不能在规定条件呢到达终点就是返回值的真假 (return true; or return false;)

下面一段话,就是我们这题的重点部分,也就是我们第一小题的翻译“原文”,然后我们通过用中文转译的方式来写出最后的译文

The frog hops until one of the following conditions becomes true, 说青蛙在如下几个条件出现之前一直在跳,换句话说,就是青蛙在如下几个条件出现其一的时候停止跳跃。

我们用position来表示当前青蛙的位置、hopCount来代表当前跳跃次数,然后结合自带的goalDistance 和 maxHops变量 。

原文 (English)

转译文(中文)

译文(java)

a. The frog has reached or passed the goal.

青蛙达到或者超过了目标

If (position >= goalDistance )

b. The frog has reached a negative position.

青蛙跳到了一个负数的距离

If (position < 0)

c. The frog has taken the maximum number of hops without reaching the goal.

青蛙已经跳了最多允许的次数但仍没有到达目标

If (hopCount == maxHops && position < goalDistance)

下面我们来看一下最后的答案:

1 public boolean simulate()

2 {

3 int position = 0;

4 while (true)

5 {

6 position += hopDistance();

7 if (position >= goalDistance)

8 {

9 return true;

10 } else if (position < 0) {

11 return false;

12 } else if (hopCount == maxHops) {

13 return false;

14 }

15 }

16 }

答案一共16行,除去括号和函数或变量声明一共9行,其中第7 行就是我们条件a 的译文,第10行就是我们条件b的译文,第12行就是我们的条件c的译文(注意这里我抹去了&& 后面的并列条件,因为它和条件a正好是相反的所以已经隐喻)。而剩余的6、9、10、13行都可以跟据我们之前对文章的阅读和翻译轻松写出。

8dbd619174db036895e34f5c8e04d3d9.png

总之,我们同学对于选择参加这项考试与否的矛盾点主要是在于陌生,但是就像所有其它的考试一样,我们可以运用很多技巧去考取高分,更重要的是这个技能教给我们的并不是所谓的捷径,而是实实在在的作为从业人员应该具备的本领。请记住程序语言永远只是工具,没有了背后的逻辑,它只是一个没有灵魂的躯壳。

f1661a0c0b884fbac0a8c69dfed651d1.png

想看看Steven老师其他的文章吗?请点击:

2018 HiMCM数模大赛最全解析,选题对比分析和注意事项

原来移民性价比最高的专业是它

SAT1

SAT2

托福

一对一课程20小时-30小时起,自适应教学体系,详情请咨询坚哥报名 timeglobal所有学员每日安排坚果词测小助手一对一词测

------------------------------------------------------------------------------返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值