知识块构成
- • 数据结构(具体包括:C++一维数组;Python列表、字典、元组、集合、列表解析)
考核目标
掌握计算机中常用进位制、位运算及数据编码的知识,掌握一维数组、字符串类型及其函数的使用,掌握枚举法、模拟法的原理和运用技巧,对于较简单的实际问题能构造算法、描述算法、实现算法并调试程序。
知识点详述
- 1. 了解二进制数据编码:要求理解原码、反码、补码的概念。
- 2. 掌握数据的进制转换:熟练掌握二进制、八进制、十进制、十六进制之间的相互转换。
- 3. 掌握位运算:掌握与(&)、或(|)、非(~)、异或(^)、左移(<<)、右移(>>)这些位运算符的基本使用方法及背后的原理。
- 4. 了解算法的概念与描述:能够熟练运用自然语言、流程图、伪代码这三种方式来描述算法。
- • Python方面:掌握列表、字典、元组、集合的基本应用、相关内置函数以及列表解析的使用技巧。
- 6. 掌握字符串及其函数的使用:掌握包括但不限于字符串的大小写转换、搜索、分割、替换等常用操作函数。
- 7. 理解基础算法的原理及特点:理解枚举算法、模拟算法的原理及各自特点,并能够应用它们解决实际问题。
题型分布与考试时间
课程总览
- • 对应级别:GESP C++ 三级 / Python 三级
- • 核心产出:学生能够针对较简单的实际问题,完成“构造算法、描述算法、实现算法、调试程序”的全过程。
详细课程阶段与课时安排
第一阶段:计算机数据表示的基石 (5课时)
本阶段聚焦数字在计算机中的根本表示形式,是理解计算机运算逻辑的基础。
课时1-2:进位计数制及其转换
- • 学习重点:深入理解二进制、八进制、十进制、十六进制的原理与相互关联。
- 1. 熟练手工进行二进制、八进制、十进制、十六进制之间的整数转换(重点是二、八、十六进制与十进制互转)。
- 2. 理解“权值”概念,并能用程序实现进制转换算法。
- • 实践任务:编写一个“万能进制转换器”程序,支持用户输入数字和原进制,输出其他三种进制的表示。
课时3:机器数的编码——原码、反码与补码
- • 学习重点:理解为何引入反码和补码;掌握整数(重点是有符号整数)在计算机内存中的存储格式。
- 1. 能计算给定十进制整数(正数和负数)对应的8位或16位二进制原码、反码和补码。
- 2. 理解补码如何将减法运算统一为加法,并验证简单的补码加减法。
- • 教学方式:通过数值示例和图示,清晰展示从原码到补码的演变过程及其优势。
课时4-5:位运算——直接操控比特
- • 学习重点:掌握六大位运算符(
&, |, ~, ^, <<, >>)的运算规则、真值表及其典型应用场景。 - 1. 原理理解:解释
&(掩码、清位)、|(置位)、^(翻转、交换)、<</>>(乘除2的幂)的底层逻辑。 - • 设计一个使用位运算管理多个布尔状态标志(如系统权限开关)的程序。
- • 语言差异提示:强调C++中右移(
>>)对负数的处理(算术右移)与Python中的差异。
第二阶段:数据结构与字符串处理 (6课时)
本阶段从单一变量扩展到集合型数据,掌握批量处理信息的工具。
课时6-7:一维数组 (C++) / 列表 (Python)
- • C++:数组的定义、初始化、遍历、边界控制及内存连续性的概念。
- • Python:列表的创建、切片操作、动态增删改查,以及列表解析式。
- 1. 基础操作:对数组/列表进行输入、输出、求和、求最值、求平均值。
- 2. 算法初探:实现线性查找、简单选择排序或冒泡排序(理解算法思想,不要求优化)。
- 3. Python特色:熟练使用列表解析式
[expr for item in iterable if condition] 来简洁地生成新列表。
- • 对比与思考:讨论C++数组的固定长度、高效性与Python列表的灵活性、功能丰富性之间的权衡。
课时8:Python进阶数据结构 (元组、字典、集合)
- • 学习重点:掌握元组、字典、集合的特性和基本操作。
- 2. 字典:熟练使用键值对存储和查询数据(如学生姓名-成绩映射)。
- 3. 集合:用于数据去重和成员关系测试(如交集、并集)。
- • 实践任务:使用字典统计一段文本中单词出现的频率。
课时9-10:字符串的深度处理
- • 学习重点:超越基础I/O,掌握字符串作为字符序列的精细化操作。
- 1. 函数应用:熟练调用
upper(), lower(), find(), split(), join(), replace() 等内置方法。 - 2. 综合应用:能够解决字符串切割、拼接、格式化、搜索替换等复杂任务。
- • 实战项目:实现一个“简易日志分析脚本”,能从多行日志中提取特定错误码,或格式化整理杂乱的数据。
课时11:算法的描述方法
- • 学习重点:理解算法的定义与特性,掌握描述算法的三种工具。
- 1. 能够将一个问题的解决方案,用 自然语言 清晰、无歧义地表述出来。
- 2. 能够使用标准符号绘制 流程图 来描述程序的三种基本结构及组合。
- 3. 能够用接近代码但更抽象的 伪代码 来勾勒算法框架。
- • 教学实践:针对同一个简单问题(如“找出三个数中的最大值”),分别用三种方式进行描述。
第三阶段:基础算法思想与应用 (4课时)
本阶段引入两种最直观的算法范式,培养将问题抽象为计算机步骤的思维。
课时12-13:枚举法 (穷举法)
- • 学习重点:理解枚举法的核心思想——在有限的、定义明确的候选解集合中,逐一检验每一个元素。
- 1. 识别问题:判断哪些问题适合用枚举法(解空间有限,可列出)。
- 2. 构造循环:通过单层或多层循环来生成所有可能的候选解。
- 3. 设计条件:精确设定过滤条件,从候选解中筛选出正确答案。
课时14-15:模拟法
- • 学习重点:理解模拟法的核心思想——严格按照问题描述的规则,在计算机中一步步地复现整个事件过程。
- 1. 抽象模型:从问题描述中提取出关键“状态”变量和“变化”规则。
- 2. 时间/步骤推进:使用循环来驱动模拟过程的进行。
- 3. 跟踪与输出:在关键节点记录或输出状态信息,得到最终结果。
第四阶段:综合集成与认证冲刺 (3课时)
本阶段旨在打通所有知识模块,提升解决综合性问题的能力,并完全模拟真实考试环境。
课时16-17:跨知识模块综合实践
- • 学习重点:将数据编码、数据结构、字符串处理、算法思想灵活组合,解决更复杂的问题。
- • 核心教学方法:“设计先行,编码在后”。要求学生必须先用流程图或伪代码完成算法设计,评审通过后再开始编写代码。
- 1. 题目:给定一批用不同进制表示的整数,将它们统一转换为十进制后存入数组,使用枚举法找出其中所有能被特定位模式(使用位运算判断)整除的数,并格式化输出结果。
- 2. 题目:读取一段文本,使用字典统计每个单词的出现次数(字符串处理),然后模拟一个“热搜排行榜”的更新过程(模拟法),最后输出TOP N的单词。
课时18:全真模拟考试与深度分析与复盘
- 1. 严格模拟:进行一场120分钟的闭卷考试,题型、题量、分值完全参照三级标准(15道单选、10道判断、2道编程)。
- 2. 集中讲评:考后立即对试卷进行逐题讲解,重点分析:
- • 数组/列表下标越界、字符串函数误用等常见陷阱。
- 3. 策略总结:传授考试时间分配技巧、编程题的调试与测试方法,以及检查清单。
教学支持与评估
- • 教学资源:提供进制转换速查表、位运算应用口诀卡、字符串函数速查手册、经典算法流程图模板。
- • 持续评估:每个模块后设置“技能过关小测验”,形式包括选择题、判断题和一道小型编程题,确保知识点当日消化。
- • 作业设计:作业题直接与“知识点详述”的七条要求对标,确保训练全面无遗漏。