Hanerson 的学术车辙

观察 · 描述 · 记录

点击 –>这里<– 查看原始复习提纲

Chapter 12

详细设计的出发点以及实现目标

  • 出发
    • 以需求开发的结果(需求规格说明书和需求分析模型)和软件体系结构的结果(软件体系结构设计方案与原型)为出发点。
  • 设计目的
    • 在详细设计中一般进行中层设计和低层设计,详细设计的目的是实现所有功能性需求和非功能性需求
阅读全文 »

点击 –>这里<– 查看原始复习提纲

Chapter 1 & 2

什么叫做软件工程

简单地理解,软件工程就是生产软件的工程学

现在应用较为广泛的软件工程定义为:

  • 应用系统的、规范的、可量化的方法来开发、运行和维护软件,即将工程应用到软件。
  • 对中各种方法的研究
  • 事实上,软件工程是一个包含复杂内容的计算机学子学科,其特性不是通过一个或几个有限定义所能概括的。
阅读全文 »

算法复杂度

  • 最坏复杂度:算法在任何输入实例上运行时间的最坏情况,记为 $ T_{\text{worst}}(n) $。

    • 举例:快速排序最坏情况 $ O(n^2) $(数组已有序且主元选择不当)。
  • 平均复杂度:算法在所有可能输入实例上运行时间的期望,记为 $ T_{\text{avg}}(n) $。

    • 举例:快速排序平均情况 $ O(n \log n) $。
  • 最优复杂度:算法在“最优”输入实例上的最低运行时间。

    • 举例:冒泡排序在已有序数组上为 $ O(n) $。
阅读全文 »

2026年6月4日,距离大二下的期末考试还有大约三周。这次考试对我来说意义比较重大——如果能拿到非常好的分数,我或许会重新考虑是否读研。虽然我一直倾向于本科毕业后直接就业,但总想试一试,觉得读研究生也是一个不错的选择。

阅读全文 »

Finite Understanding Protocol(FUP)

作者:Hanerson

摘要

在学习算法、数学等封闭性问题时,“先完全理解,再进行实现”往往是一种高效且可靠的学习路径然而,当学习对象转变为大型工程、复杂框架或持续演化的软件系统(如 React、Spring、libGDX 等)时,这一策略常常导致严重的认知消耗、学习停滞,甚至行动能力下降

有限理解协议(Finite Understanding Protocol,简称 FUP)正是为解决这一结构性矛盾而提出的一套个人学习方法论 FUP 并非降低学习深度,而是通过阶段化管理理解程度,将“深度理解”从入口阶段延迟至回看阶段,从而在有限时间窗口内实现可持续、高效率的学习与实践

阅读全文 »

本文围绕提供的 Java 排序算法代码,按「基础排序算法」「进阶排序算法」「快速排序算法」三大类,深入剖析每种算法的核心思想、代码逻辑细节、关键设计亮点、时间复杂度、空间复杂度及适用场景。所有讲解均紧密结合代码实现,让理论与实践深度融合。


阅读全文 »