【常远|留学】:AP Computer Science,看完这篇拿不到5分别回来见我

2017-04-03  常远托福

微信公众号:changyuantoefl

乔布斯说,任何人都应该学习编程,因为它教会你如何思考。事实确实是这样的,很多学习文科或者商科的同学到了美国大学之后一脸问号地发现,计算机竟然是必修课!好尴尬呀。

与此对应的是,AP里面也会有CS科目。对于大多数人来讲,CS还是一张比较陌生的面孔,毕竟我们沉浸在阴阳师和王者荣耀里的时候并不会去思考它们是如何被编写出来的……那么如何handle这门看起来神秘莫测的考试呢?

随着打算出国的学生越来越多,学AP计算机科学的人也越来越多了呢。作为近年来5分率超过20%的科目,计算机科学A备受青睐。其130个Career Areas和48个College Majors成为打败大多数科目成为考生心爱对象的原因,毕竟现实一点,未来更重要。

闲话少说,进入正题,我们这就来借官方的Course Description来明确一下到底会考什么、如何考,才能合理安排、高效利用时间。

常见考试题型

【常远|留学】:AP Computer Science,看完这篇拿不到5分别回来见我_第1张图片

相信做过计算机科学真题或各种参考书上套题的同学们都有所体会,在此简单提一下。

Section I:Multiple Choice [1 hour and 30minutes for 40 multiple-choice questions]

Section II:Free-Response [1 hour and 30minutes for 4 problems involving extended reasoning]

根据对AP Course Description的样题分析可以得出(括号里是样题的题号)

Section I有以下几种题型:

1. 对程序运行效果的分析(比如哪几个可以给出这个答案、这段程序会输出什么、运行了程序之后variable会变为什么,1、2、3、4、5、8、9、10、13、14、15、16、18、19、20、24)

2. 错误分析和改正(题目原意是如此,然后接着下面函数哪个能达到目的、为什么这段程序不能达到目标,怎么才可以最终达到目标,11、12、23、25)

3. 面向对象程序设计(主要是考如何把生活中的事情抽象成计算机的方式来描述,6、7、22)

4. 程序运行效率、代码的最佳位置等其他题(17、21)

考试内容

AP编程所用的语言是Java,一门经典的面向对象编程语言,就是书上的Object-Oriented Program Design。

主要要求我们掌握两大模块,一是如何才能用对象的思维抽象问题,如把数据抽象成各种变量及数组;二是如何才能使用算法将抽象的内容(题目可能会给出抽象好的内容,如变量定义)。

以下的内容供大家参照初步了解AP计算机科学A的具体要求。

Object-OrientedProgram Design 面向对象编程

1. 我们需要明白如何用计算机的方式来看待问题

2. 需要明白怎么把现实生活中的数据用计算机的方式描述

3. 需要知道类和接口的特点以及两种关系(“is-a”就是inheritance relationship继承,“has-a”就是composition relationship组成关系)

4. 需要明白code reuse和code overload这两种易混淆的概念

5. 需要明白数据呈现形式和算法实现形式

6. 需要明白如何把操作分解,简单地说就是把一个操作变为很多子操作

程序分析

测试

1. test case的开发(包括boundary case,巴朗有详细说明测试数据的选取)

2. 单元测试

3. 整体测试

调试

1. 要知道不同分类的错误,compile-time error,run-time error和logic error

2. 要知道错误的辨别和改正

3. 要知道如何使用调试器、添加输出语句或手动跟踪代码

运行出的exceptions

程序更正

1. 前提条件和后来条件(就是执行前需要什么,执行后会是什么)

2. 断言

算法分析

1. 要会分析出语句执行次数

2. 要会大体比较运行的时间(一般双方所用的时间和效率会差距很大)

要学会用不同进制表示一个非负数,还要知道整数的最大最小限制integer.MAX_VALUE和integer.MIN_VALUE,知道计算机储存数的方式,如整数的最高位是用来判断正负的。这里需要注意:不是最高位从0变为1就变成相反数了。

标准数据结构(如何把题目的概念抽象成数据等)

1. 前面说的primitive data types如int, boolean, double

2. 字符串

3. 类

4. List

5. 一维和二维数组

标准操作和算法

1. 数据结构操作,如截断、添加、删除

2. 顺序搜索和二叉树搜索

计算机在实际应用方面的问题(很少涉及,大家就简单看看)

1. 系统可靠性

2. 隐私

3. 法律条例和知识产权

4. 计算机使用在社会和道德方面的后果

大家可以把参考书看一遍(如果有空的话做做每章的检测)以后再来看看Course Description中的考纲看有没有不会的知识,如果基本没有就可以开始练题了。

训练方式

对于往年的选择题官网基本没有放出,Course Description里面有一套参考题,推荐大家作为考前训练用,当然也可以做做练手,其他时候考前有时间的话每天一套参考书的选择题来防止知识的遗忘。

对于问答题,推荐大家不要用电脑来写,一是因为到时候不是机考,二是因为题目主要考察的是计算机思想,里面的Class很多是没有给实现的,所以如果不自己实现是没有办法运行的,而做题时自己去实现完全没有必要(考纲说明里说了学生不需要写整个程序,只需要了解写过的部分并且写或修改程序以改变功能)。

建议大家练习时拿HB铅笔(到时候会要求用铅笔写而不是水笔)和橡皮自己计时完成,一套题大概留出15分钟左右可以重新读一下题和自己的答案试着用参考数据模拟运行一下,看一看结果是不是和参考相同。题目内容优先练5~8年的官方问答题,不够再练参考书的,下面有说现在官方题里面的不需要掌握的知识点。

【常远|留学】:AP Computer Science,看完这篇拿不到5分别回来见我_第2张图片

一开始写出的程序和参考答案不像不要紧,但是后面就要慢慢和参考答案靠近,因为参考答案上的算法一般效率都会比较高,而自己写的可能存在一些运行的问题或效率低。当然高手们练到后期会发现自己写的答案比参考效率还要高,那就另当别论,毕竟参考答案要给大多数学生看,建议考试和练习的时候不要炫技,分数要紧,稳扎稳打即可,不然老师要是看不懂或者自己写错某个步骤就不太好了。

跟我一起划非重点

近年来AP计算机科学一直在删减内容,有一些内容已经不要了,做往年卷子时可能会遇到,那就尝试着写一下对对答案参考吧,不会也没有关系。

1. Marine Biology Case Study(这个好早就没掉了,完全忽略)

2. GridWorld Case Study(在前年的卷子中开始消失,在这之前的卷子每套一般会有一个大题考这个,当时我还问了深圳的老师,得到消息说不考了后就只是尝试着写一写,被换成了三个labs)

3. instanceOf 这个以前在标准答案中出现过,现在Course Description中的描述是not tested in theexam but potentially relevant/useful

4. 三个labs (The MagpieLab, The Elevens Lab, The Picture Lab,在巴朗的计算机科学的书里面有,但是现在的描述是optional and are not tested on the exam但是考试中可能会出现和这些labs相关的概念。对于这些labs,只需知道内容和其中面向对象编程概念就好,不需要写程序练习)

最后补充一下,AP计算机科学A只是大学的入门课,其实很早以前还有计算机科学AB,这里面包含所有A的知识,还加上了数据结构等更深入的概念(这也就是很多学生很奇怪为什么计算机科学只有A)。

【常远|留学】:AP Computer Science,看完这篇拿不到5分别回来见我_第3张图片
常远老师“每日一文”奉上


【常远|留学】:AP Computer Science,看完这篇拿不到5分别回来见我_第4张图片
长按二维码关注常远老师


Long press the QR

code to follow me

你可能感兴趣的:(【常远|留学】:AP Computer Science,看完这篇拿不到5分别回来见我)