2021-2022-1 2021401 《信息安全专业导论》第6周学习总结

作业信息

这个作业属于哪个课程 2021-2022-1信息安全专业导论
这个作业要求在哪里 2021-2022-1信息安全专业导论第6周作业
这个作业的目标 Polya如何解决问题 简单类型与组合类型 复合数据结构 查找与排序算法 算法复杂度 递归 代码安全
作业正文 本博客链接

教材学习内容总结

如何解决问题

  • 理解问题 :必须理解的问题
  • 设计方案: 找到数据和未知量之间的的联系
  • 执行方案:执行解决方案,检查每个步骤
  • 回顾:分析得到的解决方案

提出问题

问题示例:

  • 对这个问题我了解多少
  • 解决方案是什么样的
  • 存在什么特例
  • 我如何知道已经找到解决方案了

寻找熟悉的情况

永远不要彻底重新做一件事。如果解决方案已经存在,就用这种方案。
识别相似的情况在计算机领域内是非常有用的。

分治法

把一个大问题划分成几个能解决的小单元。

算法

算法(algorithm):在有限的时间内用有限的数据解决问题或子问题的明确指令集合。

计算机问题求解过程

包括四个阶段:

  • 分析和说明阶段
  • 算法开发阶段
  • 实现阶段
  • 维护阶段

方法总结

  1. 分析问题
  2. 列出主要任务
  3. 编写其余的模块
  4. 根据需要进行重组的改写

测试算法

如果答案正确的,过程就是正确的。

有简单变量的算法

简单的变量是不能被分开的变量

带有选择的算法

带有循环的算法

  • 技术控制循环
  • 事件控制循环
  • 平方根

嵌套结构(nested structure):控制结构嵌入另一个控制结构,又称为嵌套逻辑(nested logic)

复杂变量

数组

记录

搜索算法

有两种搜索

顺序搜索

有序数组中的顺序搜索

二分检索

  • 二分检索(binary search):在有序列表中查找项目的操作,通过比较操作排除大部分检索范围

排序

选择排序

冒泡排序

插入排序

递归算法

  • 递归(recursion):算法调用它本身的能力。

子程序语句

子程序有两种形式:

  • 只执行特定任务的命名代码
  • 不仅执行任务,还返回给调用单元一个值(值返回子程序)

递归阶乘

递归二分检索

快速排序

几个重要思想

信息隐蔽

抽象

事物命名

测试

教材学习中的问题和解决过程

  • 问题1:不理解递归阶乘是什么
  • 问题1解决方案:

代码调试中的问题和解决过程

代码托管




上周考试错题总结

其他(感悟、思考等,可选)

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
第一周 0/0 2/2 5/5
第二周 0/0 2/4 4/9
第三周 0/0 1/5 4/13
第四周 0/0 1/6 10/23
第五周 0/0 2/8 10/33
第五周 0/0 1/10 10/43

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:4小时

  • 实际学习时间:10小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料