高级程序设计
提示
本课程自开设以来,总评细则和考核形式经过多轮改动,因此请以每年实际情况为准。
基本信息
课程名称:高级程序设计
课程介绍:本课程期望学生在 C 语言程序设计的基础上,掌握进一步的程序抽象和复用技术,提升程序设计的熟练程度和规模,为后续专业课程所需的编程提供基础。本课程使用 C++ 语言授课。
课程画像:
- 课程类型:核心
- 学分:3 学分
- 考核方式:平时作业 10% · 上机考核 25% · 课程项目 15% · 期末笔试 50%
- 授课方式:理论讲授(每周开设) + 上机考核(隔周开设)
课程资料区
课程教材:
- 《程序设计教程——用C++语言编程(第4版)》,
陈家骏、郑滔 编著,机械工业出版社,2023.1
课程资料库(slides,笔记,往年试卷):repo
经验分享区
课程定位评价:课程内容难度中等偏上,但给分较好,总体评价为中等难度
作业反馈:
2024春季学期
- 平时作业是严格按照课程进度布置的理论作业,认真听课就会做,难度不大
2026春季学期
- 平时作业按照课程进度布置的理论作业,多数为简答题,也有少量代码分析题,cjj班按时提交平时分就会给满,ryx班会批改评分。建议复习的时候好好看一遍作业里的简答题。
上机考核反馈:
2024春季学期
- 上机考核隔周开设,基本与课程进度相同,内容基本是实现数据结构(如智能指针)以及对理论内容的考核(如继承),难度中等。且允许考核结束后当天继续补答,不过补答部分有迟交的折扣系数。
2026春季学期
- 上机考核隔周开设,考察最近课上所讲知识(与课程内容强相关,如继承、操作符重载、深浅拷贝、泛型编程等)。机试可以参考PPT和教材,但不能使用AI,总体难度中等。考试结束之后补交不计入分数,最终总评算分是6次取5次最高分进行计算。
课程项目反馈:
- 2024春季学期
- 2026春季学期
- 实现一个单机版轻量级自走棋游戏,码量 3000 行以上。图形界面是必须的,可以使用 Qt 库或者其他图形库,但是界面好坏不影响基础分数。从游戏实现功能、代码风格、文档与提交规范进行评分,会有线下/线上的验收提问。 AI agent 的使用是允许的,但是在提交的文档中须单设一节“AI 使用说明”。
考试情报:
- 2024春季学期
- 考试题型为 简答题 + 预测输出 + 代码纠错 + 手搓编程 ,题量大,难度偏大。
- 2026春季学期
- 考试题型为 4道简答题 + 4道程序分析题 + 2道手写代码题(5分附加,但满分仍为100) ,题量大,卷子15页,2个小时可以做完,试卷和25年智软高程卷长得很像。
高分策略:
- 考前要过一遍 PPT ,不需要死记硬背,但是需要理解、吃透课程理论知识;同时复习一下作业题,尤其是简答部分。
- 简答题无论能否背诵出答案,都要尽量多写几条。不求写满,但是要把自己能想到的都写上,复习时可以参考简答题;
- 预测输出和代码纠错,需要快而稳地做完,将自己想象成机器,思考机器是如何一步步运行得到最终结果的,或者机器运行到哪一步会偏离预定逻辑,要重点复习动态/静态绑定、throw-catch语句、law of three等相关知识点;
- 手搓编程部分的形式是代码挖空,先思考这个空需要什么逻辑,再纠结具体的语法,想不出来就跳过。26春试卷两道题一道是关于实现一个可以计算几何图形面积周长计算的类,另一道是关于智能指针、双向链表的题目,考前可以复习一下相关的写法。