AP计算机,难不难?

AP计算机有两个科目:计算机科学A (AP Computer Science A,简称CSA)、计算机科学原理(AP Computer Science Principles,简称CSP),随着计算机的应用越来越广泛,尤其是编程类的科目,是美国许多大学会要求同学们必须学习的内容。

到底两门AP计算机难不难,从8个方面来为大家详细解读

1.  从5分率来看

AP计算机课科学A和计算机科学原理5分率相差比较大。

2023年,AP计算机科学 A 全球5分率高达27%,计算机科学原理的全球5分率仅为12%。

近年来,中国大陆地区同学,AP计算科学A的5分率约为25%,略低于全球的平均水平;计算机科学原理的5分率约为14%,略高于全球水平。

两门AP计算机学科,我们中国同学的考试成绩和全球水平基本相当,没有拉开大的差距。对于绝大多数同学来说,基本的计算机知识是我们的生活常识,操作计算机是我们必备的生活技能。在学习AP计算机之前,同学们大多没有进行过系统的计算机编程内容的相关学习。并且,很多同学选择学习AP计算机,是因为自己对计算机相关内容,尤其是编程感兴趣。所以,大家都是在基本相同的起跑线开始努力,5分率相差不会太大。

很多家长和同学会有这样的疑问,为什么学习计算机科学A和计算机科学原理的人数会差别这么大?

首先,AP计算机科学原理考试的报名有额外的要求,必须是学校开设计算机科学原理课程的同学,才能够报名考试。而AP计算机科学A考试,不管是否在学校有相应课程,同学们都可以报名。并且,AP计算机科学原理是2016年才创立的学科,考纲内容和考试形式依然在不断地变化和改进,相比于AP计算机科学A这门创立已久的学科,同学们在学习中能够利用的资源和总结的规律相对较少,使得一些同学选择去学习相对成熟的AP计算机科学A。

不仅如此,相对于AP计算机科学A,计算机科学原理的考试形式也更复杂,既有传统的选择题笔试,也要求同学们在规定日期前提交编程作品。所以,学习AP计算机科学A的同学,要比学习计算机科学原理的同学会多一些。

2.  容错率

在同学们常考的AP科目中,AP计算机考试对同学们的卷面分数要求比较高。要想在AP计算机考试中获得5分,同学们需要拿到79%以上的卷面分数,对同学们的做题正确率提出了更高的要求。

AP计算机科学A的自由问答题,需要同学们根据的初始代码,结合题目要求,来填写剩下的代码,每道题目大约15-20行代码。我咨询了一些程序员朋友,即使是有一定的经验资历的老码农,也难免会出现遗漏失误,就更别提需要在考场上手写代码的各位同学了.AP计算机科学原理的笔试部分,虽然只有选择题这一种题型,但其中有8道双选题,对于知识细节掌握不够牢固的同学,一不小心就会犯错。
这就要求同学们在扎实掌握知识的基础上,解题作答要更加全面、细心、精准。

3.  考试题型和时间

AP计算机科学A:

选择题部分: 一共40道选择题,都是五选一的单选题,同学们需要在90分钟内完成。选择题分数占考试总分的50%。在这一部分中,涉及到程序设计和算法开发、代码逻辑、代码测试、代码说明等部分的知识,会有多种问法:例如,会让你选择代码填到题目中留出的空白位置;也会是让你选出代码的正确执行结果;还会让你分析这段代码的目的或者bug,都是以实操应用为主。自由问答题:一共4道大题,同学们需要在90分钟内完成。自由问答题部分的分数占考试总分的50%。在这一部分中,涉及到程序设计和算法开发、代码逻辑、代码测试、代码说明等部分的知识,会有多种问法:例如,会让你选择代码填到题目中留出的空白位置;也会是让你选出代码的正确执行结果;还会让你分析这段代码的目的或者bug,都是以实操应用为主。

AP计算机科学原理的考查,由两部分构成:

第一部分:笔试,一共70道选择题,每个题目有4个选项,其中有57道的单选题、5道单选题需要同学们阅读关于计算机创新文章后完成、8道双选题(需要选择出两个正确答案)。笔试部分考试时长为2个小时,分数占最终成绩的70%。其中,涉及第三章编程知识的题目,考查方式和AP计算机科学A类似,题型主要是:选择给定代码的输出结果,或者选择合适代码填入题目的空白位置。涉及其他四章知识的题目主要考查对于理论的理解,题型更加灵活,需通过计算和推理解决给定的一个实际问题。

第二部分:Create Performance Task,占最后成绩的30%。这一部分要求同学们创建自己的一个编程作品,还需要编写文档和录视频,并提交到College Board:

1. Video Requirements

你需要提交程序的视频,说明程序的功能,最好显示程序中最重要的功能。视频的时长不能超过60秒,不能超过30 MB,并且必须转换为.mp4,.wmv,.avi或.mov文件格式。

2. Code

你还需要把整个程序的代码转为PDF格式,提交。

3. Written Response

Written Response是最重要的部分,College Board主要按照这部分的作答进行评分。
考虑到Chatgpt等人工智能工具对同学们完成Create Performance Task的影响,Collgeboard 对 Create Performance Task这部分的考试要求做了一些变化,修改了Written Response的要求,同学们只需要能够描述你的程序是怎么使用list这一数据结构,以及怎么通过使用list降低程序复杂性的;指出程序中的自定义方法,描述它的参数、返回值和作用,理解自定义方法的使用。

AP计算机科学A考试时长为3小时,考试时间比较长,对同学们的体力和耐力是一大考验。AP计算机科学原理笔试部分考试时长为2小时,是考试时间最短的科目之一,完成压力不大。Create Performance Task这部分考查虽然没有要求同学们必须在规定的时长内容做完,但需要同学们在平时学校的计算机科学原理学习过程中完成这些任务,在每年规定的时间前提交给Collegeboard,同学们一定要做好合理的时间规划,从容完成Create Performance Task的考查内容,

4.  学习基础

在AP科目的分类中,虽然计算机科学A和计算机科学原理是和微积分、统计学之类的数学科目分在一类,但学习AP计算机不需要同学们具备特别的数学基础的要求,同学们只要具备初中以上的数学水平,同时有还算过得去的英语水平(能够读懂题目就行),就可以开始学习AP计算机。

5.  学习内容

AP计算机科学 A 以Java语言为基础,学习Java编程语言、面向对象程序设计的思想以及简单的数据结构和算法。这门课可以培养学生的分析和解决问题能力。但是需要注意的是,AP计算机科学A和纯Java还是有很大区别的,纯Java中很多内容是不在AP计算机科学A考纲范围内的。AP计算机科学A考察的内容是纯Java语言中最重要的内容,是 “ 尖货 ” 中的 “ 尖货 ”。千万不要将二者混为一谈。

其中,第1-4章是编程中比较基础的变量和控制结构的内容,第5章和第9章是讲如何创建一个类,开始进入面向对象的范畴,之后介绍类的继承和多态。第6-8章是有关数组的内容,考察对数组和ArrayList的操作和应用,这是AP考试的核心。第10章是递归,一种特殊的方法类型,一般只在选择题里出现。AP计算机科学原理学习内容要比计算机科学A更加广泛,其中,第1-4章是编程中比较基础的变量和控制结构的内容,第5章和第9章是讲如何创建一个类,开始进入面向对象的范畴,之后介绍类的继承和多态。第6-8章是有关数组的内容,考察对数组和ArrayList的操作和应用,这是AP考试的核心。第10章是递归,一种特殊的方法类型,一般只在选择题里出现。

6.  备考时长

不同的同学,对计算机知识的理解基础不同,学习方式和资源不一样,备考时长也会有区别,甚至区别很大。

AP计算机科学A需要大约108小时的有效学习时间;

AP计算机科学原理大约需要80小时左右的有效学习时间。

这里的有效学习时间,指的是同学们全情投入的学习状态下的时间。比如看5分钟书,刷55分钟视频,这样的有效学习时间只有5分钟。

如果学习资源不是特别丰富,在练习中,尤其是编程训练中,无法得到专业指导,快速发现和解决问题,同学们还需要付出更多的备考时间。

7.  学习资源

Princeton的教材或者Barron的教材,都还过得去。虽然考试不是上机考试,但是笔试时遇到的很多问题都是实际编程中的bug,通过自己在电脑上写代码可以清楚的认识常见的语法错误和逻辑错误,所以推荐大家一定要上机写程序。

AP计算机科学原理:

目前市面上AP计算机科学原理的参考书选择较少,在学习的过程中,我推荐<5 Steps to A 5>这本教材,相对来说,它的讲解是比较细致的,对于初学者也挺友好。此外,请大家多多研究真题,并按照考纲要求制作小程序。

题目练习:

不论是学习过程中章节练习,还是考前冲刺刷题,历年AP计算机考试真题一定是大家的最佳的题目资料。

8.  学习挑战

计算机是一个专业性极强的学习领域,有独特的思考方式和分析逻辑,要想学得明白,是需要一定天赋的。有些人,对于关于计算机的相关内容可能缺乏一定的理解力,即使付出了不少的努力,但是依然不得要领,最终学习只能事倍功半。

因此也建议同学们,在选择学习AP计算机之前,要先了解一下学习内容,看看自己是否有兴趣和一定的天赋。不然大家报完名,开始学习后,却发现计算机知识学又学不懂,放弃了又觉得可惜, 成了同学们学习的”鸡肋“。

两个科目如何选择

AP计算机科学A学习的是Java编程,注重应用。

AP计算机科学原理学习的是计算机的基础原理,尤其是编程背后的基本思想和逻辑,而不是具体利用哪门编程语言。

如果同学们未来大学专业需要应用计算机编程,来解决具体问题,并且你本身对Java编程也有兴趣和天赋,那么你可以选择计算机科学A;

如果同学们未来的大学专业方向偏向于理论分析,想从原理逻辑的角度来了解计算机知识,并且学校正在开始计算机科学原理课程,可以为你报名考试,那么可以选择计算机科学原理。