青少年编程能力等级_第4部分:C++编程-2021.1.10.pdf
ICS 03.180 A 18 团 体 标 准 T/CERACU/AFCEC 100.4—2020 青少年编程能力等级 第 4 部分:C++编程 Programming Ability for Adolescents Part 4: C++ Programming 2020-12-28 发布 2021-01-01 实施 全国高等学校计算机教育研究会口口口口 发 布 全国高等院校计算机基础教育研究会口口口口 T/CERACU/AFCEC 100.4—2020 目 次 前言……………………………………………………………………………………………………………..II 引言…………………………………………………………………………………………………………….IV 1 范围 ................................................................................................................................................................... 1 2 规范性引用文件 ............................................................................................................................................ 1 3 概述 ................................................................................................................................................................... 1 4 一级规范 .......................................................................................................................................................... 1 4.1 综合能力及适用性要求 ............................................................................................................................... 1 4.2 核心知识点能力要求 ................................................................................................................................... 2 5 二级规范 ........................................................................................................................................................ 2 5.1 综合能力及适用性要求 ............................................................................................................................... 2 5.2 核心知识点能力要求 ................................................................................................................................... 2 6 三级规范 ........................................................................................................................................................ 3 6.1 综合能力及适用性要求 ............................................................................................................................... 3 6.2 核心知识点能力要求 ................................................................................................................................... 4 7 四级规范 ........................................................................................................................................................ 4 7.1 综合能力及适用性要求 ............................................................................................................................... 4 7.2 核心知识点能力要求 ................................................................................................................................... 4 8 五级规范 ........................................................................................................................................................ 5 8.1 综合能力及适用性要求 ............................................................................................................................... 5 8.2 核心知识点能力要求 ................................................................................................................................. 6 9 标准符合性规定 ............................................................................................................................................... 6 9.1 标准符合性总体要求 ................................................................................................................................. 6 9.2 课程与教材的标准符合性 ......................................................................................................................... 6 9.3 测试的标准符合性 ..................................................................................................................................... 7 9.4 能力测试形式与环境要求 ......................................................................................................................... 7 I T/CERACU/AFCEC 100.4—2020 前 言 本文件中的“T/CERACU/AFCEC 100”与“T/CERACU/AFCEC/SIA/CNYPA 100”是同一标准系列编号, 该系列标准第 1、2 部分由 4 个团体联合发布,第 3、4 部分由 2 个团体联合发布。故在第 1、2 部分使 用标准编号“T/CERACU/AFCEC/SIA/CNYPA 100” ,在第 3、4 部分使用标准编号“T/CERACU/AFCEC 100” 《青少年编程能力等级》分为四部分: ——第 1 部分:图形化编程; ——第 2 部分:Python 编程; ——第 3 部分:机器人编程; ——第 4 部分:C/C++语言编程。 本文件为第 4 部分。 本文件按照 GB/T 1.1-2020 给出的规则起草。 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。 本文件由全国高等学校计算机教育研究会提出并归口。 本文件起草单位:清华大学、华东师范大学、南京大学、江苏省计算机学会、中国电子技术标准化 研究院、华南师范大学、辽宁师范大学、四川师范大学、湖北第二师范学院、北京师范大学第二附属中 学、北京市八一学校、上海市上海中学、北京市育英学校、北京语言大学、南京理工大学、桂林电子科 技大学、北京一零一中学、慕华诚志教育科技有限公司(爱学堂)、上海畅学教育科技有限公司、深圳 市希科普股份有限公司、广东优品智学教育科技有限公司、韩山师范学院、北京聪明核桃教育科技有限 公司、深圳点猫科技有限公司、韩端科技(深圳)有限公司、北京信息职业技术学院、北京学而思教育 科技有限公司、南京工业职业技术学院、黄山学院、南通理工学院、西藏民族大学。 本文件主要起草人:郑莉、钟艳如、杨莉、汪星明、王析多、李超、刘洪、刘丹、郑骏、余云涛、 师雪霖、佟钢、李盛辉、俞洁、庄义圣、郭超然、侯贵龙、赵慧周、伍大智、谭锐莘、冯晓亮、钱庆文、 谢琛、刘明菲、朱广彬、巩长亮、宋伟、商愔、夏立、王祺磊、郑耿忠、黄伟、金莹、张洁、曹淑艳、 毛黎莉、张会庆、蒋亚杰、刘军、王洪江、陈军、李千目、侯君、陈宇、李天驰、孙悦、钟志刚、胡杰、 陈明明、耿秀华、王正科、董华星。 本文件的发布团体共同约定如下知识产权规定: 1.本文件的知识产权(不含标准内容涉及的专利和软件著作权)归所有联合发布团体共同所有,任 何机构(无论是否为起草单位和发布团体)和个人(无论是否为起草人)不得在未授权的情况下处置知 识产权。任何机构和个人使用本文件名称时必须同时注明标准封面上的全部标准代号并说明发布机构, 说明发布机构时必须列出全部联合发布团体,列出顺序与封面顺序一致(可注明排名不分先后) 。本文 件的全部或部分内容如被国家标准、行业标准使用,该内容的起草人须被列入国家标准、行业标准起草 人,否则视为抄袭。本文件由联合发布团体共同授权专业出版机构独家出版。 2. 本文件由联合发布团体的成员约定采用,同时供社会自愿采用。 II T/CERACU/AFCEC 100.4—2020 3. 任何采用本文件的产品和服务, 应通过全国高等学校计算机教育研究会主持的标准符合性认证, 或者通过所有联合发布团体共同授权的认证机构的标准符合性认证,取得符合本文件的认证证书后方 可在产品和服务的包装标识、宣传和广告材料、协议合同等法律文件、及其他相关场合声明该产品和服 务执行本文件。标准符合性认证证书是对产品和服务授权使用本文件的唯一形式,产品认证的版本、服 务认证的有效期必须与执行标准的声明和标识一致。 4. 任何企业和机构声明执行本文件但未指明具体服务和产品时,该企业和机构至少应该有一项服 务和产品取得标准符合性认证证书,且认证的产品版本和认证的服务处于认证有效期内。 5. 其他团体标准、企业标准采用本文件时应作为“规范性引用文件”明确列出,并在标准内容中 明确引用具体章条。未经明确引用使用本文件内容视为侵权。 6. 在学术研究、公开发表的文章和著作中使用本文件内容,应按照规范合法的方式引用,并将封 面上的标准名称和完整编号列入参考文献。 III T/CERACU/AFCEC 100.4—2020 引 言 编制本文件的目的是通过规定循序渐进的能力目标来规范青少年编程教育的课程建设、教材建设、 师资培训与师生能力要求。 在本文件编制过程中广泛调研了我国中小学和校外培训机构目前开设 C++编程课程的情况。由于学 生学习编程的目的和兴趣不同,不同地区开展 C++编程教育的条件、师资不同,本文件不规定适用的起 始年龄和每级适用的年龄段,需要教育培训机构和教师根据学生特点和办学目标确定是否适用本文件、 适用的等级与适配的年龄。为兼顾目前青少年编程教学的现状并保证 C++编程课程知识体系的完整性, 编制本文件时设计的能力等级要求不仅适用于大学前也可适用于大学阶段,目前建议 4 级、5 级的能力 要求适用于大学阶段,随着青少年编程教育的普及和发展,本文件各等级适用的年龄段也将动态变化。 IV T/CERACU/AFCEC 100.4—2020 青少年编程能力等级 第 4 部分:C++编程 1 范围 《青少年编程能力等级》规定了青少年编程能力的等级划分及其相关能力要求。 本文件为《青少年编程能力等级》的第 4 部分,给出了青少年 C++编程能力的等级及其相关能力要 求。 本文件适用于青少年 C++编程能力教学、培训及考核。 2 规范性引用文件 下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款,其最新版本(包括所有的 修改单)适用于本文件。 GB/T 29802 信息技术学习、教育和培训 测试试题信息模型 3 概述 本文件以培养青少年的计算思维、逻辑思维和编程能力为核心目标,涉及的语法限于C++语言。本 文件所定义的编程能力划分为五个等级,每级分别规定相应的总体要求、核心知识点以及所对应能力要 求。 本文件仅针对青少年编程能力需求,未覆盖全部C++语法,不规定C++语言编程环境。 本文件将青少年C++语言编程能力等级分为五级,见表1。 表 1 青少年 C++语言编程能力的等级划分 等级 能力要求 能力要求说明 一级 基本编程能力 具备基本编程逻辑思维,能够编写简单结构化程序 二级 模块化编程能力 具备模块化编程思想,能够设计和编写模块化程序 三级 基础算法思维能力 掌握常见和常用算法,具有算法思维能力 四级 面向对象的编程能力 初步 设计简单类/结构体、使用常见数据容器的编程等能力 五级 面向对象的编程能力 进阶 理解继承、多态的概念和用途,实现简单的继承关系和多态性, 掌握面向对象的程序设计方法 注:一级包括对函数和模块的使用, 包括对标准函数和标准库的使用,但不包括函数和模块的定义。 4 一级规范 4.1 综合能力及适用性要求 一级以“基本编程能力”为目标,具体解释为如下4个方面: ——阅读能力:能够阅读简单的C++程序,发现语法错误,理解运行过程; ——编程能力:能够编写简单的C++程序,正确运行程序; ——应用能力:能够采用C++程序解决简单的实际问题; 1 T/CERACU/AFCEC 100.4—2020 ——使用工具能力:能够使用C++集成开发环境完成程序的编写、运行、测试和调试。 示例:Dev C++是一种C++开发环境。 4.2 核心知识点能力要求 一级共包含9个核心知识点,具体说明见表2。 表 2 一级核心知识点及能力要求 序号 知识点名称 知识点能力要求 1 数据的表示与存储 理解并掌握整数类型、浮点数类型、字符类型、布尔类型变量和常量的概念和 应用 2 输入输出 掌握标准输入输出,会控制换行和显示精度 3 顺序结构 掌握顺序结构,具备解决算术运算基本问题的能力 4 选择结构 掌握选择结构,具备利用选择结构解决实际问题的能力 5 循环结构 掌握单循环结构,具备利用单循环结构解决实际问题的能力,了解两层嵌套循 环的运行过程。 6 一维数组 掌握一维数组,具备利用一维数组解决简单实际问题的能力 7 字符串常量 定义并使用字符串常量 8 C++开发环境使用 能够使用某一种C++开发环境调试程序 5 二级规范 5.1 综合能力及适用性要求 二级以模块化编程能力为目标,具体解释为如下3个方面: ——阅读能力:能够阅读模块化程序,理解程序运行过程; ——编程能力:能够编写和调试简单的模块化程序,能够在程序中使用简单的算法解决问题。 ——应用能力:能够采用模块化程序和递归思想解决简单的实际问题。 二级与青少年学业存在如下适用性要求: ——前序能力要求:具备一级所描述的适用性要求; ——数学能力要求:了解数组的基础知识。 5.2 核心知识点能力要求 本级别核心知识点能力要求建立在一级核心知识点能力要求之上。二级共包括6个核心知识点,具 体说明见表3。 2 T/CERACU/AFCEC 100.4—2020 表 3 二级核心知识点及能力要求 表 3 二级核心知识点及能力要求(续) 序号 知识点名称 知识点能力要求 1 多维数组 掌握编写带有二维数组的程序,了解三维及以上数组的语法,具备使用二维数组 解决实际问题的能力 2 指针 了解指针的基本概念(声明、赋值等) ,能够使用指针处理数组,在函数中使用 指针类型参数 3 字符串类型 了解 string 类,掌握 string 对象的定义、输入和输出,具备使用 string 对象 解决实际问题的能力。了解 C 风格字符串的存储形式和简单应用。 4 程序的流程控制 掌握选择嵌套和多重循环的使用方法 4.1 选择结构嵌套 掌握编写包含一重选择和多重选择嵌套结构的程序,具备使用多重选择结构解 决实际问题的能力 4.2 多层嵌套循环 掌握编写多层嵌套循环结构程序,具备使用多层嵌套循环解决实际问题的能力 5 模块化思想 掌握模块化设计、自定义函数的编写及调用 5.1 模块化设计 理解模块化设计思想,具备使用模块化思想解决简单实际问题的能力 5.2 自定义函数 掌握自定义函数的语法形式、类型和返回值,具备编写自定义函数程序的能力 5.3 自定义函数调用 掌握自定义函数的值调用和引用调用,具备使用自定义函数解决实际问题的能 力 5.4 递归 6 简单算法设计 理解递归思想,掌握递归调用方法,具备利用递归解决简单实际问题的能力 能够了解算法设计的基本思想,设计简单算法解决简单问题 6 三级规范 6.1 综合能力及适用性要求 掌握程序中一些基础算法 ,并且能用这些算法解决一些问题模型;了解类与对象的基础知识,能 够理解简单的抽象与封装。第三级重点培养学生用计算机程序解决问题的能力,锻炼学生的计算思维, 更进一步体验计算机解决问题的特点与优势。 三级以基础算法思维能力为目标,基础算法包括模拟、穷举、迭代、排序、二分、贪心、深度优先 搜索、广度优先搜索,能力目标具体解释如下: ——算法描述能力:能够使用自然语言或者算法描述工具(如:流程图)描述算法的执行过程; ——算法阅读能力:能够阅读带有算法的C++程序,可以使用纸和笔模拟算法运行过程、预测运行 结果,评价算法的正确性; ——问题建模能力:能够从问题描述中发现可以使用基础算法求解的问题 ,使用算法描述工具描 述解决问题的过程; ——算法实现能力:能够基于算法描述,使用C++语言实现算法,能够调试程序以获得正确结果; ——算法评价能力:能够从时间复杂度、空间复杂度等方面评价算法的效率。 ——抽象和封装能力:了解面向对象程序设计中抽象和封装的基本思想,了解将算法和数据进行封 装的方法。 3 T/CERACU/AFCEC 100.4—2020 6.2 核心知识点能力要求 本级别核心知识点能力要求建立在一、二级核心知识点能力要求之上。三级核心知识点见表4。 表 4 三级核心知识点及能力要求 序号 知识点名称 知识点能力要求 1 模拟算法 掌握用变量表示状态,用语句和过程表示事物的发展,达到解决问题的能力 2 穷举算法 能够查找一定范围的内容,加入筛选条件,找出符合要求的答案 3 迭代算法 掌握用循环结构和数组,解决数列等一系列求值问题 4 排序算法 掌握选择排序、冒泡排序等基本排序算法,了解快排、归并、堆排等排序原理 5 二分算法 了解二分算法的基本原理和它的优越性,并能处理一些简单的分治问题 6 贪心算法 了解局部最优性原理,能借助贪心算法解决一些全局最优性问题 7 字符串相关算法 8 深度优先搜索 理解深度优先搜索的原理,能够对一些可行解问题设计深度优先搜索算法 9 广度优先搜索 理解广度优先搜索的原理,能够对一些可行解问题设计广度优先搜索算法 10 面向对象编程初步 了解类与对象的基本概念、抽象和封装的思想,能够定义单个类,使用对象 了解 C 风格字符串常用的处理函数,掌握 string 类的常用功能,并能处理字符串相 关问题 7 四级规范 7.1 综合能力及适用性要求 四级以初步的面向对象的编程为能力目标,具体解释为如下4个方面: ——阅读能力:能够阅读简单的面向对象的程序,理解程序运行过程; ——编程能力:能够编写简单的面向对象的程序,正确运行程序; ——应用能力:能够初步采用面向对象的程序解决简单的实际问题; 四级与青少年学业存在如下适用性要求: ——前序能力要求:具备三级所描述的适用性要求; ——数学能力要求:了解向量(没有学向量的也可以用“封装的一维数组”这个概念替代和解释)、 列表、双端队列、集合、多重集合、映射、多重映射的基础知识。 7.2 核心知识点能力要求 本级别核心知识点能力要求建立在一、二、三级核心知识点能力要求之上。四级共包括6个核心知 识点,具体说明见表5。 四级核心知识点及能力要求 表 5表 5四级核心知识点及能力要求(续) 序号 知识点名称 知识点能力要求 1 面向对象编程 了解面向对象程序设计的基本特点;了解面向对象程序设计方法与面向过程程序设 计方法的区别;具备利用面向对象编程思想分析实际问题的能力 4 T/CERACU/AFCEC 100.4—2020 表 5 四级核心知识点及能力要求(续) 序号 知识点名称 2 类与对象 2.1 类的概念和定义 2.1.1 类的成员 2.1.2 知识点能力要求 能够定义和使用类和对象 能够定义和使用类 能够定义和使用类的成员 成员的访问方式和权 能够定义用不同方式和在不同范围访问成员 限 2.2 对象的概念和定义 能够定义和使用对象 2.3 对象的初始化和删除 能够对对象进行初始化和删除 2.4 对象的复制 能够通过复制构造实现对象的复制 2.5 对象在函数间共享 2.6 对象数组 掌握对象数组的定义和对象指针使用方法 2.7 成员对象 掌握成员对象的定义和使用方法 2.8 结构体 理解结构体是一种特殊的类 了解对象在函数间共享的设计意义及语法规定,能够定义共享机制 注:在教学中可以将结构体与指针结合讲解简单的链表结构,但不宜作为考核的内 容,可在第五级介绍 SLT 时介绍学生使用封装的链表 3 静态成员 能够定义和使用静态数据成员和静态成员函数 4 友元 4.1 友元说明和定义 4.2 友元函数 能够定义和使用友元函数 4.3 友元成员 能够定义和使用友元成员 4.4 友元类 能够定义和使用友元类 5 重载 能够理解函数重载和运算符重载 5.1 函数重载 能够理解构造函数重载、类成员函数重载、类以外一般函数重载 5.2 运算符重载 掌握使用成员函数和友元重载运算符 6 容器 能够定义和使用友元 理解友元的概念 了解 vector 容器,具备利用 vector 解决实际问题的能力。 8 五级规范 8.1 综合能力及适用性要求 五级以面向对象的编程为能力目标,具体解释为如下4个方面: ——阅读能力:能够阅读面向对象的程序,理解程序运行过程,理解类的重用机制; 5 T/CERACU/AFCEC 100.4—2020 ——编程能力:能够编写面向对象的程序,正确运行程序,能够设计和实现类的组合、继承两种方 式的重用,能够理解多态性的用途并能够恰当应用多态性,初步了解类模板与函数模板,初步了解C++ 标准模板库(STL); ——应用能力:能够采用面向对象的程序解决简单的实际问题; 五级与青少年学业存在如下适用性要求: ——前序能力要求:具备四级所描述的适用性要求; 8.2 核心知识点能力要求 五级共包括4个核心知识点,具体说明见表6。 表 6 五级核心知识点及能力要求 序号 知识点名称 1 类的重用 理解类重用的设计意义及语法规定,能够定义类的重用关系 1.1 类的组合 理解类组合的设计意义及语法规定,能够定义类的组合关系 1.1.1 组合类的定义 1.1.2 知识点能力要求 能够实现组合类的定义 组合类对象的初始化 能够在类定义时设计和实现基本类型成员和对象成员的初始化和删除 和删除 1.2 类之间的引用 1.3 类的继承 1.3.1 继承关系的定义 1.3.2 能够在类定义时设计和实现类之间的引用关系 能够设计和实现类之间的继承关系,实现对象的初始化和删除 能够设计和实现类之间的继承关系 派生类对象的初始化 能够设计和实现对象初始化和删除 和删除 2 多态性 2.1 能够理解具有多态性的程序,实现设计中的多态性意图 多态性的概念和语法 能够设计和实现具有多态性的程序 2.2 多态性的应用 能够编写程序,实现设计中的多态性意图 3 模板 3.1 函数模板 了解函数模板的概念和语法,能够编写和使用单个类型参数的函数模板 3.2 类模板 了解类模板的概念和语法,能够编写和使用单个类型参数的类模板 4 STL 库 了解 STL 库 了解函数模板与类模板 9 标准符合性规定 9.1 标准符合性总体要求 本文件第4至8章规定的一至五级规范可单独使用,课程、教材与能力测试符合某一级规范即在该级 符合标准。 9.2 6 课程与教材的标准符合性 T/CERACU/AFCEC 100.4—2020 符合本文件某级规范的课程与教材的总体教学目标应不低于该级的能力要求,课程与教材的内容 应涵盖该级的核心知识点并不低于各知识点的能力要求。 9.3 测试的标准符合性 符合本文件某级规范的测试应包含对该级各知识点能力及综合能力的测试,测试题均匀覆盖了该 级核心知识点并且难度不低于本文件对该级的能力要求。 用于交换和共享的青少年编程能力等级测试及试题应符合GB/T 29802的规定。 9.4 能力测试形式与环境要求 测试应明确测试形式及测试环境,具体要求见表7。 表 7 能力测试形式及环境要求 内 容 描 述 测试形式 客观题与主观编程两种题型,一级主观题分值不低于 30%,二至五级主观题分值不低于 40% 测试环境 能够进行符合本文件测试要求的 C++编程环境 7