学不会OO的第四单元反思

大兔子大兔子 提交于 2020-08-08 07:25:01

辛苦了!!!!!!!!!!!!!!!!!!

尽管我水平还是很菜quq但是经过这一学期的“爬山”,还是有一定的收获,正如J哥所说

那么开始最后一次博客作业的总结!!!

 

  • (1)总结本单元三次作业的架构设计

      这三次作业的架构设计总体来说还是比较套路话的。我的思路是每一种图存放到一个类中,图用HashMap<id, elements>(大概意思,不是实际代码)来进行存放处理。
      主要设计的有id2name, name2id, parent等等存放关系的HashMap,在查询的时候以id为准,通过parent实现对父类等等的查询,通过id2name来输出对应的name
    第一次作业我设计了MyClassDiagram类,这个类处理类图的相关信息;在第二次作业中,我设计了两个类分别存储顺序图和状态图;在第三次作业中,通过引入新类来进行有效性检查。
    最终文件树大概是这个样子的


  •  

     

  • (2)总结自己在四个单元中架构设计及OO方法理解的演进

      在架构设计中,我从前期的几乎全部面向过程的思维,到UML单元主动的设计多个类来进行UML图的处理。在电梯单元,从一开始的混在一起,到最后一次的有意识的拆分。同时也让我意识到,OO的类的设计不是单纯的拆分,而是具有一定的逻辑组织的。
      经过这学期的学习,我是这样理解OO的:通过对相关的属性及相对应的操作进行封装,成为对象;通过如同人际交往一样的对象间的互相操作和自己内部的操作,来实现程序的组织与运行。

  • (3)总结自己在四个单元中测试理解与实践的演进

      在OO课程中,我收获极大的部分也包括测试。在OO课程体量的程序中,单纯的“printf”这种调试方法已经无法解决问题了。在前两个单元,我由于测试效率低、无法准确定位错误出现的位置,出现了无效作业。在第三单元,我遇到了单元测试。单元测试是自己构造的,针对每个方法(也有可能是几个方法)所设计的测试。在我们设计的比较完备的前提下,单元测试能有效的定位错误,并不断指导完善程序
      同时,我也认识到了测试驱动开发的重要性。在OO课程中,最迷人的应该就是“中测-强测-互测-bug修复”的完整的测试及程序bug修复流程。通过公开的较弱的公测,我们在测试样例的指导下更好的完成作业;在强测中,具有一定复杂度的程序进行高强度的“对拍”,找到问题;互测中,互相之间的借鉴学习并“相爱相杀”让我们认识到错误的产生和如何积极主动的去避免;在bug修复中,回归测试要求我在解决问题的同时切实提高了软件质量而不是产生了新的bug。

  • (4)总结自己的课程收获

      通过今年OO课程,我确实收获了许多。这门课既给我带来极大的挑战,也让我得到了成长。在我心目中,这是一门“学习的时候一直骂,结课之后一直夸”的好课:骂是因为负担比较大、不适应;夸是因为这门课不论从编程能力还是编程思想都让我学到了许多。
      在前两个单元,我非常的吃力。一方面,大一的基础相对不够牢固,导致在写程序前需要对一些知识进行再次温习;另一方面,在架构设计上的盲目也让我有时因为设计问题难以完成任务,有时会进行许多的尝试耗费大量的时间。但是在这个过程中,在比如多线程程序的基本方面,我还是学习到了一些的。
      在后两个单元,课程组提供了大部分程序,但是这不意味着没有“坑”。在第三单元,我的两次0分让我注意到了算法的合理选择以及离散化、缓存等等软件编程的重要内容;同时,助教的设计及UML的面向对象思想也启发我去构建面向对象的程序。
          可以说,通过这学期的课程,我大致了解了面向对象程序的设计方法及构造,同时也锻炼了自己编写Java程序的能力。


  • (5)立足于自己的体会给课程提三个具体改进建议

      从我个人学习过程来说,大概想到了这样几个问题,希望能够改进(课程本身已经相当好了quq老师和助教都辛苦了quq)

    • JML单元工具链不够完备,学习效果大打折扣。希望明年课程可以研究出一套比较完整的工具链,便于学习
    • 在早期阶段不容易把握迭代方向。希望能在每个单元第一次作业中提供一些可能迭代方向的预告(不一定最终实现),作为参考
    • 实验课安排略微有一些突兀,希望能在实验前通过引入例题先让我们大概熟悉一下,然后进行有一定难度的实验




  • (6)谈一谈线上学习oo课程的体会

  今年线上学习确实对学习产生了不小的影响,首先最关键的就是自己变得更摸了(悲),有些时候真的是不太想动orz。然后就是可能更不容易感受到那种大家一起拼命的氛围了吧。总体来说线上学习会在一定程度上影响学习效率和效果。

  再谈谈我认为OO线上学习的优势。首先,OO是实践性很强的课,而在有一定指导的情况下,在线方式可以帮助我更好的去和同学交流讨论,解决问题。其次,理论课通过小测、讨论等形式,帮助我理解基本知识。总体来说,我认为恢复正常后,可以继续沿用这种方式进行线下教学,通过设置讨论和小测及时解决问题。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!