浙江大学计算机程序设计能力考试(PAT)简介
计算机程序设计能力考试(Programming Ability Test,简称 PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学地评价计算机程序设计人才,为企业选拔人才提供参考标准。目前 PAT 已成为 IT 界的标准化能力测试,得到包括 Google 中国、Microsoft、雅虎、网易、百度、腾讯等在内的百余家大中小型各级企业的认可和支持。同时,从 19 考研起,浙江大学计算机学院硕士研究生招生考试上机复试成绩可以用前一年的甲级或顶级 PAT 成绩替代。
2018 年 PAT 加入了信息技术新工科产学研联盟和中国软件行业协会联合发起的通用能力评测,成为新工科程序设计能力考试(Programming Ability Test for Emerging Engineering,简称 PATFEE)。
考试方式
- 由考试中心负责考试的组织、日常管理和具体实施工作。
- 每年分春、秋、冬季组织 3 次统一考试,考试时间根据场地可用的具体时间而定,大约分别在 2-3 月、8-9 月、11-12 月举行。
- 每场考试分三个不同的难度级别:顶级(Top Level)、甲级(Advanced Level)、乙级(Basic Level)。三级别的考试在同一考场、同时举行。
- 考生须提前 10 分钟到达考场。
- 正式考试为 3 小时、闭卷、上机编程测试。考生只可携带铅笔或水笔进入考场。
- 考试成绩实时可查,证书立等可取。考试结束 1 小时后,考生即可在考场外指定地点领取证书。
2018 年正式推出面向程序设计初学者的“基础级(Fundamental Level)”考试。基础级考试不设全国统一考试时间,可根据报考单位的需要随时随地进行,考试标准、考试命题、考试监督以及证书颁发均由考试中心统一负责,保证考试的标准化和评价的客观性。基础级考试分为 5 个段位,参加考试并取得一定成绩者可获得相应段位的证书。
编译环境和 IDE
目前,PAT 考试提供的编译环境可参考PTA,并点击编译器版本
。
在 C/C++、Java、Python 语言中,同样的算法,C/C++语言的运行速度是最快的,空间消耗是最少的。因此,笔者更建议读者使用 C/C++语言作为考试时的编程语言。目前,PAT 支持的版本的 C++标准为 C++14。
至于具体 IDE 的选择,则要参考个人的使用习惯和考场环境。不同的考试地点提供的 IDE 不同,考点提供的 IDE 信息可点击这里。如果考场安装了的话,笔者强烈推荐使用 VSCode。
成绩与证书
成绩
- 考试总分 100 分。
- 顶级考试一般出 3 题,题目描述语言为英文;甲级考试一般出 4 题,题目描述语言为英文;乙级考试一般出 5 题,题目描述语言为中文。
- 基础级题目描述语言为中文。 青铜段位时长 30 分钟,满分 30 分; 白银段位时长 60 分钟,满分 50 分; 黄金段位时长 90 分钟,满分 60 分; 白金段位时长 120 分钟,满分 80 分; 钻石段位时长 150 分钟,满分 100 分。
- 每题要求考生按照严格的输入输出要求提交程序解决问题。程序须经过若干测试用例的测试,每个测试用例分配一定分数。
- 每题的得分为通过的测试用例得分之和;整场考试得分为各题得分之和。提交错误不扣分。
- 名次根据总得分决定,相同分数对应并列名次。
- 每题分数的分布与题目难度成正比。顶级考试的分数分布一般为:30、35、35;甲级考试的分数分布一般为:20、25、25、30;乙级考试的分数分布一般为:15、20、20、20、25。
证书
- PAT 不设合格标准,凡参加考试且获得非零分者均有成绩,可获得统一颁发的证书。
- 证书中包含“考试分数/满分”和本次考试的“排名/考生总数”两部分成绩。
- PAT 提供官方证书查验功能,在查询网站https://www.patest.cn/certificates输入证书编号即可查验真实性。
- 获得优秀成绩的考生,有资格购买实体徽章。详情请见官网:https://www.patest.cn/introduction/badge_issuance_rule
考试大纲
乙级(Basic Level)
考生应具备以下基本能力:
- 基本的 C/C++的代码设计能力,以及相关开发环境的基本调试技巧;
- 理解并掌握最基本的数据存储结构,即:数组、链表;
- 理解并熟练编程实现与基本数据结构相关的基础算法,包括递归、排序、查找等;
- 能够分析算法的时间复杂度、空间复杂度和算法稳定性;
- 具备问题抽象和建模的初步能力,并能够用所学方法解决实际问题。
甲级(Advanced Level)
在达到乙级要求的基础上,还要求:
- 具有充分的英文阅读理解能力;
- 理解并掌握基础数据结构,包括:线性表、树、图;
- 理解并熟练编程实现经典高级算法,包括哈希映射、并查集、最短路径、拓扑排序、关键路径、贪心、深度优先搜索、广度优先搜索、回溯剪枝等;
- 具备较强的问题抽象和建模能力,能实现对复杂实际问题的模拟求解。
顶级(Top Level)
在达到甲级要求的基础上,还要求:
- 对高级、复杂数据结构掌握其用法并能够熟练使用,如后缀数组、树状数组、线段树、Treap、静态 KDTree 等;
- 能够利用经典算法思想解决较难的算法问题,如动态规划、计算几何、图论高级应用(包括最大流/最小割,强连通分支、最近公共祖先、最小生成树、欧拉序列)等,并灵活运用;
- 能够解决复杂的模拟问题,编写并调试代码量较大的程序;
- 具有缜密的科学思维,考虑问题周全,能够正确应对复杂问题的边界情况。
考生须知
为规范考场管理,PAT 中心将于考试期间使用监考系统。特发布“考生须知”,以帮助广大考生适应在该系统监控环境下进行的考试。
- 请提前 10 分钟到达考场,查到自己的指定座位后,就座并将身份证件放在桌角待查,静待考试开始。考试开始前禁止触摸主机、键盘、鼠标。考试迟到 20 分钟者禁止入场。
- 闭卷考试,考生只允许带笔入场,考场将统一发草稿纸。严禁手机、U 盘等私人电子设备出现,一旦发现将以作弊论处,被即刻请出考场。
- 必须、也只能使用 PAT 监考客户端(考场应该已经完成启动)访问考试网站。
- 一旦启动 PAT 监考客户端,未经监考老师允许不得关闭窗口,更不得以任何方式登出。违者可被认定为作弊。即使提前退出考试,也不可以自己关闭客户端,必须等监考老师来处理。
- 任何时刻都严禁启动除 PAT 监考客户端外的任何浏览器,严禁启动任何即时通信软件,违者无论何种理由都将以作弊论处,被即刻请出考场。
- 考试中被发现有作弊行为的考生,将进入 PAT 黑名单,禁考三年。
- 考试时长为 180 分钟,然而主考有权在遇到不可预见的问题时改变考试时长。一旦时长更改,将尽最大可能以统一方式及时通知所有考生。
- 每个考生可以在 13:25 之后的任何时刻开始考试。注意:一旦考试开始,则倒计时开启,并且不会因为浏览器关闭或重启机器而停止。当倒计时结束、或时间到达 16:30 时,该考生的考试结束。
- 注意 C/C++的主函数必须定义为整型,即“int main()”;程序正常结束必须返回 0,即“return 0;”否则将得到“返回非零”错误。
- 注意用 Java 必须提交 class Main;程序异常中断也可能得到“返回非零”错误。
- 自己的代码请存在考场指定的硬盘,以防机器重启后代码丢失。
- 考试开始 15 分钟内禁止主动退场;15 分钟后提前退场的考生须向监考老师报告,等待帐号被关闭,得到允许后方可离开考场。
- 考试中间若出现系统崩溃等故障,考试中心将酌情延长考试时间;但最后 10 分钟内系统崩溃属于正常情况,按惯例不补时,以系统重启后保留的数据为最终结果。
- 友情提醒:有些企业可能不仅看分数和排名,还要考虑提交总次数和最后一次提交的时间,所以请大家注意解题的速度和准确性。