实训总结报告
1、实训内容概述
- 第一阶段:项目启动
- 熟悉Linux 环境。
- 学习Java基本知识,以及Ant,Junit 的入门。
- 环境配置以及初步认识GridWorld。
- 第二阶段:基本任务
- 进一步了解 GridWorld。
- 掌握 Linux 环境下代码编写、程序调试,编码规范。
- 掌握单元测试
- 第三阶段:拓展任务
- 深入了解 GridWorld,理解 GridWorld 使用的数据结构,分析运行效率。
- 进一步进行简单项目实践及文档的编写。
- 完成三个扩展内容。
- 第四阶段:实训总结与作业补交
- 进行作业补交
- 针对实训的经验,提交自己的总结体会
2、成果和不足
- 成果:
这次实训中,我完整的完成了老师布置的任务。在实训的过程中,我掌握了Ant、Junit、Linux常用命令等Linux环境开发的必备技能,对DFS(深度优先搜索)、BFS(广度优先搜索)、启发式搜索等基础的算法知识有了更加深刻的了解并且能熟练运用。更在第三阶段的实训中了解了BitMap文件结构,并且学习到了图像的读取和图像的简单处理。也学会了用sonar来非常直观的通过图表来查看自己的代码的测试覆盖率、代码内聚性指标、代码复杂度、代码的重复性检查、包之间的依存度以及代码冲突性等等。可以用于检查我们的代码,以便修改。总的来说,这次实训让我学到了很多知识,掌握了很多应该具备的技能,对我以后的学习有很大的帮助。 - 不足:
部分内容没有按时完成,部分内容提交不符合规范。代码的规范程度和简洁程度还有待加强。
3、经验和教训
第一周在自己电脑上尝试配置环境时bug频出,导致第一周内容没有及时检查。这是由于没有提前了解Linux环境下的环境开发的内容。由此可见,预习是多么的重要。还有就是由于对环境不是很熟悉,所以有些地方浪费了不少时间。阶段三的收获是我认为三个阶段中最大的,我了解了Bitmap图片文件的文件存储结构、了解如何通过 FileInputStream读取Bitmap文件信息到一个数组、了解色彩通道的提取,了解像素的RGB值。而且深度学习了深度优先搜索算法和广度优先算法以及用估价函数实现Astar算法。
- BFS算法步骤
- 将起始节点放入一个open列表中。
- 如果open列表为空,则搜索失败,问题无解;否则重复以下步骤:
a. 访问open列表中的第一个节点v,若v为目标节点,则搜索成功,退出。
b. 从open列表中删除节点v,放入close列表中。
c. 将所有与v邻接且未曾被访问的节点放入open列表中。
- 启发式搜索算法步骤
- 将起始节点放入一个列表中。
- 如果列表为空,则搜索失败,问题无解;否则重复以下步骤:
a. 访问列表中的第一个节点v,若v为目标节点,则搜索成功,退出。
b. 从列表中删除节点v。
c. 利用估价函数,对所有与v邻接且未曾被发现的节点进行估价,按照估价大小(小的在前)插入列表中。
- DFS算法的基本步骤
- 此算法对应无环路迷宫的树结构。
- 先将树的所有节点标记为”未访问”状态。
- 输出起始节点,将起始节点标记为”已访问”状态。
- 将起始节点入栈。
- 当栈非空时重复执行以下步骤:
a. 取当前栈顶节点。
b. 如果当前栈顶节点是结束节点(迷宫出口),输出该节点,结束搜索。
c. 如果当前栈顶节点存在”未访问”状态的邻接节点,则选择一个未访问节点,置为”已访问”状态,并将它入栈,继续步骤a。
d. 如果当前栈顶节点不存在”未访问”状态的邻接节点,则将栈顶节点出栈,继续步骤a。
4、总结
感谢老师和TA在实训期间的指导和陪伴。在实训这段时间了自学了新的程序设计语言和相关工具,这对我们的快速学习的能力的培养有很大的帮助。总的来说,这次实训让我学到了很多知识,掌握了很多应该具备的技能,对我以后的学习有很大的帮助。