计算机高级程序设计

(于仕琪)CS2192025春  
2025春
7.3(3人评价)
  • 课程难度
    困难
  • 作业多少
    很多
  • 给分好坏
    杀手
  • 收获大小
    很多
选课类别:专业任务 教学语言:英文
课程类别:专业选修课 开课单位:计算机科学与工程系
课程层次:本科 获得学分:3.0
课程主页:暂无(如果你知道,请点右上角“编辑课程信息”添加!)
点评写点评
排序学期
评分评分3条点评
user avatar   摆烂比赛总冠军     2025春
  • 难度:困难
  • 作业:很多
  • 给分:一般
  • 收获:很多

2025.12.1 半夜发癫更新 8→9

根据我上完课快半年的学习生活上来看,这门课是毫无意义的好课,对我帮助很大。除了给分以外我想不到任何缺点。

原文(Revised):

这是一门让我非常纠结的课。纠结在于相较于郑的cpp,任务偏多且均分较低;但从知识和能力提升层面,目前坐稳(我上过的)CS开头课程rk1。(rk2 DSAA, rk3 计组 包含大三上课程)

本门课的核心围绕着5个Project展开,其中期中前有三个,期中后有两个。展开逻辑近似为:

熟悉语法 → 熟悉 C 性能 → 提升计算密集任务的性能 / 设计库。 有涉及到OpenCV和高性能计算的一些入门内容。期中前的三个Project实际耗时间是远比后两个要长的,因为摸索如何写C和报告本身就要花费不少时间。

任务量:≈ 2xDSAA ≈ 2.5xJava A ≈ 3xDigical logic 基于本人体感。我每一个Project大概用时分别为40-20-15-15-15hrs,在最后花费了大约20个小时进行期末复习。

给分方面:Quiz&Lab 10% 中位数是95.7%;Project 65% 中位数是83.3%;Final 25% 则是63%;总评中位79,本人得分分别为98.5; 96.8; 81;最后卡线A。基于我对这门课的花费时间和回报比来看,也是毫无疑问断层倒数rk1。

收获方面:这门课程的历史学长仓库很多很全,务必利用到位。如果符合预期,大概可以获得以下能力:LaTeX 熟练使用、C\C++熟练完成小型项目、更高效广泛的信息搜索能力、对基于C\C++现实工程的低畏惧感。课程还讲了极其少的Rust与Python内容,可能将会在后续的OS(指正,H)课中有帮助,但实在讲得太少了我持怀疑态度(后续看来可能是于老师本身也没太准备好hhh)

这门课的确比较极端,选这门课也可以看成一种是一个特色鲜明,过程透明的trade-off,需要自行斟酌。当然,你也必须做好由于各种原因,吃中位数(79 C+)的心理准备。

我的GitHub里面有我做的报告以及更加细节的得分技巧,不管选不选这门课,也许都能帮助到你:BrightonXX/SUSTech-CPP-Project(顺便点个star就更好了)。

 

user avatar   bbd     2025春
  • 难度:困难
  • 作业:很多
  • 给分:杀手
  • 收获:很多

以下回答的相关分数仅针对2025春,供之后选课参考。

这门课就是以前的C/C++程序设计,也被戏称为于++。

课程困难,对于我一个只有Java A基础的数学系学生,这门课程无疑等于对我的计算机能力提出了三个月速成的考验。加上我需要搞毕业论文和别的硬课,不可能像大一大二一样有心力全力攻克一门计算机系的专业课,所以也给之后的学生一个这门课正常努力的难度参考。

这门课的大纲是:65%的project,分5次完成,每次DDL根据项目难度不等地分散在3周左右;5%的课上quiz,大课下课后20分钟内提交,取N-1次最好成绩;5%的lab课签到练习,取N-1次最好成绩;25%的期末考试。本学期共有50人选课,可以根据平均分猜测自己大概处于什么位次。

本学期这门课在大课讲了C、C++、Rust三门语言,lab课同时也涉及了Python,而proj的完成则默认你也有Java基础。这意味着想要高质量完成这门课程,你必须掌握Java、Python、C/C++、Rust四个大模块。同时,于++的特色在于对C/C++的指针和内存管理要求极高,同时要求掌握泛型编程,这对于没有相关基础的学生而言是一个巨大的挑战。

这门课的选修生源很强,通常是计算机系本系能力至少中等的学生,这对普通学生而言意味着更难拿到高分,因此务必慎重选课。

quiz和lab签到是最水的,quiz允许讨论、lab资源公开,10分拿个9分还是比较容易的。注意quiz涉及很多课上的阴间例子,如果课上不听课,那么quiz可能吃苦头。

proj是课程的一大特色,本学期的5次proj分别是:C语言实现高精度计算器(每学期没变过);C和Java基于向量点乘的运算性能分析;C语言实现BMP图像处理(课上没有涉及任何图像处理内容,全部需要自学速成);C++实现BMP图像处理库;基于OpenCV、C++和Rust的图像处理性能分析。前两个proj独立,后三个则是层层递进。老师的实际给分大概是一个75 ~ 95的curve,平均分和中位数大概在86。从完成度来看,即便是用AI狂写代码和报告,只要大概完成了proj的要求都能拿到70以上的分数;一般努力(完成的内容的比要求的多一点,代码写成真实工程的清晰格式、报告少用AI说废话,条理、工整的完成,这几点中做到2点的同时加上内存管理不要出错、运行效率不要因为弱智问题而大打折扣)则基本可以拿到85分左右;而想要拿到90及以上的分数,则需要把上述要求全部高质量完成的同时,有自己独特的思考。本次课程高质量的范例报告一般在没有废话的情况下仍能有15 - 50页,把页数乘5,就可以想象这门课学生的压力程度。我五次项目的用时大概在:20小时、15小时、15小时、10小时、6小时,最后得分为90、86、89、85、82,平均分86.4,所以如果有更多的时间用来付诸努力,得到更高的成绩应当是可能的。

期末考试难度较大,分为选择、判断、分析代码结果和手撸代码四个部分,题目内容基本涉及了课上讲过和quiz考到的所有编程语言及相关的阴间案例,选项易混淆程度包你满意,尤其是与指针、内存分配和管理有关的知识点,如果没有经过系统性复习,我相信几乎不可能有人在考场理解所有代码的运行机制。手撸代码题几乎完全在考察指针、内存管理和泛型编程,所以请务必重点复习这些内容。我在完成最后一次proj后,有约一个月的时间完全没有研究这门课程,以完全裸考的心态上了考场,没有任何泛型编程经验(对应的lab课翘了),靠吃课上学习的老本,考试成绩仅有67分,但仍然超过了平均分和中位数(63分),这说明计算机系的同学计算机底层理解没有数学系的同学强(暴论)这门课程的考试难度确实十分恐怖,即使努力复习,我认为我也很难拿到显著更高的分数。

根据上面的分析,想要在这门课拿到3.73的绩点,就要10分送分拿满,proj获得均分90以上,期末获得72以上,难度可以说超乎想象。作为参考,这门课程的总评平均分仅有77、中位数仅有79,估计大部分十足努力的学生也只能被卡在3.55的区间。

然而,虽然这门课难度极大且给分极低(对于大部分院系的给分参考而言),但我仍然推荐每一个想要精进工业化编程技术、提高对计算机底层的理解、追求程序运行效率,或有志于精通C++编程的同学旁听或是在大四修读,因为于老师的讲课水平确实高的令人惊奇。老师会从简单的案例引入,逐步将案例的细节修改的越来越阴间,然后开始演示运行结果,同时从一开始就将一切程序从内存角度考虑,以此帮助同学们尽快掌握这门课的技巧性内容。我认为不听这门课会成为计算机学习之路的一个遗憾。

如果有必须追求绩点的理由,请务必不要选修这门课程

user avatar   Arcueid     2025春
  • 难度:中等
  • 作业:很多
  • 给分:杀手
  • 收获:很多

这门课前身就是大名鼎鼎的yu++,相较于之前学期而言,本学期最大特色就是将AI编程与project融合起来,只要在报告中说明project得分是不会受到影响的。然而不限制使用≠可以滥用,ysq多次强调不要使用AI生成low quality的代码段或报告说明,这就需要思考如何更好的让AI参与到任务当中。

除此之外,这门课的名称依然继承了“程序设计”的名号,但实际上更多涉及到infra和hpc的知识。如果你只是简单地利用一些C/C++的高级特性来炫技在这里是行不通的,在5次project的设计与反馈中我也一点点摸透ysq可能偏好的项目风格。 假若阅读过其本人的开源项目libfacedetection的源代码也很能感受到ysq是希望程序设计是一个从浅入深、从系统到底层的极致优化的过程。那么在项目开发之前略微了解这些方面的内容并在开发过程中加以探索就大有裨益了。

考试方面这学期由于新引入了Rust,所以题目也有所考察。不过考察范围不广,印象中只考了所有权转移、可变不可变借用、variable shadowing和unicode字符串。大题是经典的resizable array,只要平时亲自写过有关内存管理的功能类就没什么问题。

 

那最后稍微总结一下,基于一学期的体验来说,如果你有志于HPC/AI sys不怎么在意给分,那么这门课可能会对你有不少引导和启发,动手实践和从结果中generalize原因的能力也会有所提升。这门课绝不仅仅是学习一个或者几个编程语言的语法或特性,自己思考的东西越多收获的也越多 (虽然在这门课分数不一定同步上涨就是了)。

补一下2025春的成绩情况,供顾虑给分以及想冲A及以上的同学做一下参考:

CategoryMeanMedianMine
Lab&Quiz(10%)80.364 | 82.31100 | 91.4095+ (total)
Project(65%)77.13283.3095+
Exam(25%)62.8723463.0090+
Total(100%)77.1489479.0095

另附ysq对本学期总体表现的评价


teacher avatar

于仕琪

计算机科学与工程系

教师主页

其他老师的「计算机高级程序设计」课

于仕琪老师的其他课