BUAA_2025_OO_Unit4 总结

Pueraria lobata Pueraria lobata 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

​

一、本单元作业的架构设计

类图如下:

img

二、四个单元中架构设计思维的演进

我个人认为我在 U1 时就已经可以很好地设计代码架构(手动狗头)但和大一没有学习过面向对象编程时相比,我的编程思维还是发生了不小的改变的。

在大一时我们只学习了 C 语言。C 语言是面向过程编程的语言,经常是把所有代码都写在 main 方法中,具有低内聚、高耦合的特点,这不利于大型程序的开发和维护。java 这样的面向对象编程语言则不同,它通过对问题进行层次化的抽象,把一个大问题分成几个不太相干的小问题,这样就便于我们逐个击破,同时在某一处出现 BUG 时维护代码的难度也要小很多。我认为这就是面向对象编程和面向过程编程在开发大型程序时的最显著区别,面向对象编程的效率明显更高,而且便于团队项目开发。学完 OO 系列课之后,我看到问题后的第一反应不是去思考每一步需要去做什么,而是先对问题中涉及到的概念进行一定程度的抽象,这是我在学习 OO 系列课之前所不具备的能力。

三、四个单元中测试思维的演进

在第一单元中,我的测试方式是纯手搓数据点+人工评测+瞪眼看代码。

在第二、三单元中,我的测试方式是手搓数据点+数据生成器生成数据+评测机评测+瞪眼看代码。

在第四单元中,我的测试方式是不做测试。

总体来说,我还是比较信任自己的编程能力的,所以我没有在测试上下太大功夫。但在实际项目的开发中,完善的测试可以显著降低出错的概率,增强程序的健壮性,因此对每个编程员来说,形成的良好的测试思维是必要的。在学习 OO 系列课之前,我所掌握的测试能力就是构造特殊测试样例加上瞪眼看,这对 C 语言这种面向过程编程的语言来说非常有效,但是测试的覆盖率很有限并且很费脑。java 中的单元测试可以很好地将测试目标从整个程序转移至某个类乃至某个方法上,通过保证每个单元的正确性来保证整个程序的正确性,这样的测试会更加完善且高效,是我以前所没有掌握的。

四、课程收获

时间过得还是挺快的,感觉好像第一单元才刚过去不久,结果都结课了。学习的时候并没有感觉到自己身上有什么变化,但是现在再回过头来回想十二次作业的历程,感觉还是挺令人惊叹的。在第一次作业时我光是思考架构都思考了三四天,险些没交上作业,不过后面两次作业就能慢慢能上手,写出不错的程序了。第二单元的电梯作业,可能是四个单元中最让人头大的一个单元,当时的轮询、死锁直接给我大脑干报废了,并且好像也没有什么太好的 debug 方法,只能根据输入数据和输出结果一点点找哪里可能出错。不过度过了从顺序编程到并发编程思维的转变期之后,好像所有事情都变得没有那么困难了,我也可以利用自己学到的并发编程知识手写高效高并发评测机,这是我以前不可能掌握甚至从来没有听说过的东西。

到了第三单元和第四单元,一切就简单了许多。不过我想如果让上学期的我去写这两个单元的作业,应该也会苦不堪言。看来,在一次次作业的磨砺之下,我的编程思维还是得到了锻炼和成长的吧。

五、浅谈 AI

在我学习 OO 这门课的过程中,我始终离不开 AI 。如果没有 AI ,我是不可能理解并发编程、读写锁的;如果没有 AI ,像我这种算法小白肯定也是不会了解并查集的。它始终承担着一个老师的角色,为我解答了很多很多我不理解的知识点,但也仅此而已,它没有承担更多戏份。

对我而言,我更希望在面向对象这门课中收获到自己设计、编写代码的能力,而不是锻炼使用 AI 的能力。诚然,AI 是一个能够帮助人们进行高效开发的工具,但是我始终觉得我们不应该太过于依赖 AI 。教同学们如何借助 AI 完成任务是正确的,但是如果把任务都交给 AI 来做,我们就会丧失独立思考的能力,这应该不是我们希望看到的。

所以,也希望以后的面向对象系列课程中可以减少 AI 的戏份,只做引导、不做要求就好。

...全文

相关推荐

29Linux基础命令详解——用户管理.docx

29Linux基础命令详解——用户管理

云计算练习生

科技服务机构如何通过数据分析增强服务竞争力?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip

vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip

源码论文专家

车辆缺陷分割数据集4000张json格式.zip

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):4000 标注数量(json文件个数):4000 标注类别数:1 标注类别名称:["defect"] 每个类别标注的框数: defect count = 8740 总框数:8740 使用标注工具:labelme=5.5.0 所在仓库:firc-dataset 图片分辨率:640x640 标注规则:对类别进行画多边形框polygon 重要说明:可以将数据集用labelme打开编辑,json数据集需自己转成mask或者yolo格式或者coco格式作语义分割或者实例分割 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证

不会仰游的河马君

高校如何利用技术转移服务转化科研成果并提升影响力?.docx

高校如何利用技术转移服务转化科研成果并提升影响力?

BIZKEEN
评论
收藏 已收藏
分享
返回顶部