20182311 2019-2020-1 《数据结构与面向对象程序设计》课程总结

正文

20182311 2019-2020-1 《数据结构与面向对象程序设计》课程总结

每周作业链接汇总

  • 预备作业:课程展望与linux命令行学习笔记。学会使用markdown格式写博客,安装配置各类工具(vmware、linux镜像、idea,jdk在linux和windows环境下的配置)。

  • 第一周作业:了解计算机系统组成、软件开发和面向对象设计语言的基本概念。进一步解决linux环境下命令行的操作出现的问题,例如解决JAVA单步调试键盘输入被JDB占用的问题

  • 第二周和第三周作业:掌握Java数据类型(8种基本数据类型、对象、包装类等),理解封装概念,学会输入输出、条件、循环迭代等基本语句的使用。

  • 第四周作业:学习类与对象、类之间的关系、修饰符、静态方法等。学会画UML类图。在这一周录了iterator接口的讲解视频。

  • 第五周作业继承机制(方法重写和方法重载、protected关键字、super方法、接口的多重继承),和抽象类的使用。

  • 第六周作业多态与后绑定。学习类通过继承和接口实现多态、异常和异常处理。学习密码学编程(凯撒加密、RSA等非对称加密算法及实现)。学会自己使用java字典,根据问题寻找相关方法。

  • 第七周作业:学习数据结构。学习计算算法效率、时间复杂度(可以用来检验程序设计得是否优质高效);线性集合和非线性集合;栈、链表、列表的实现。

  • 第八周作业:总结整理排序与查找的各类方法并实现。排序有插入排序、折半插入排序、希尔排序、快速排序、冒泡排序、选择排序、归并排序、基数排序;查找有线性查找、折半查找、哈希表查找(开放地址法、链地址法)、二叉排序树排序、斐波那契查找等。

  • 第九周作业:树的基本概念、树的实现、树的递归和非递归遍历实现。

  • 第十周作业:图的基本概念、基于邻接矩阵、邻接链表的实现、计算出入度、遍历,带权图的最短路径和最小生成树。

自认为写得最好一篇博客是?为什么?

  • 《解决JAVA单步调试键盘输入被JDB占用的问题》这一篇,因为是第一次按照产生问题-解决问题-总结思路的过程去写一篇解决问题的博客。

作业中阅读量最高的一篇博客是?谈谈经验

  • 《预备作业》这一篇,因为发的比较早,而且内容很详细,当时是当成学习笔记来做的博客,所以很多同学也会去参照我的博客复习linux命令。经验的话就是,提高效率,把内容写的大多数人都能看懂,看了以后有收获,而不是应付交个作业或者只求自己能看懂。多加一些代码、图片和链接丰富博客内容,排版简洁大方。

实验报告链接汇总

  • 实验一:linux命令行和编写简单java程序。

  • 实验二:简单计算器,完成加减乘除模的运算。

  • 实验三:单元测试和TDD,UML建模。

  • 实验四:Java Socket编程、密码学、有理数/复数计算器,实现远程有理数/复数计算器。

  • 实验五:安卓开发-android studio的安装配置,活动、UI、布局、事件处理测试。

  • 实验六:链表创建、插入、删除、输出、排序;文件读写与链表;安卓开发与链表操作。

  • 实验七:汇总所有searching和sorting方法,并在安卓上实现。

  • java实现哈夫曼树进行文件加解压:利用哈夫曼树算法对文件内容编码,使保存文件所需内存变大/变小,从而实现加解压。

  • 实验八:基于前中后序写出二叉树;决策树。

  • 实验九:有关图的操作。

团队项目报告链接汇总

代码托管链接

  • 给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?
  • 达到了,idea里有1万,linux里面有一点点,安卓里也有一部分。
  • 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
  • 不会的问题先按照别人的思路过一遍,但一定要自己动手打,不能照着抄。多思考,多实践。
  • 积极主动敲代码做到没?教材实践上有什么经验教训?
  • 差不多做到了,经验就是做教材后面的实践之前先把教材看懂,把教材里的代码自己看一遍敲一遍。

课堂项目实践

  • 课堂实践对提高应用能力有帮助吗?
  • 答:有,主要是锻炼了快速掌握知识的能力,也有效节省了课下时间。
  • 课堂实践上自己有什么经验教训?
  • 答:认真听讲,仔细审题。课堂实践的题目不难,但没认真听讲容易丢分。
  • 课堂实践上对老师有什么教学建议?
  • 答:更多注重让大家动手敲,对基础不好的同学来说讲伪代码和真正动手敲之间还是有很大区别的;更新有关c++实现的内容,有些用c实现的内容要转换成java还是需要一点理解能力,其实对于刚接触数据结构的同学来说还是有难度的。

课程收获与不足

  • 自己的收获
  • 答:最大的收获是学会了自己啃书,出现问题自己上网去搜博客找解决方案。养成了一些好习惯,比如写学习总结博客、解决问题写博客、多看博客。学习了linux、Java、安卓和数据结构四大块知识。还有项目开发过程和项目管理的一些感性认识。
  • 自己需要改进的地方
  • 答:偶尔懒惰,数据结构没有留作业的部分有些没实现。缺乏一定心理素质和项目管理能力。担心的太多,没有掌握科学有效的方法,没能做到把团队紧密联系起来,达到集中力量办大事的效果。
  • 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
  • 答:好像只有最开始在做,后面就慢慢失去联系了...一开始是会答疑然后写博客评语,自己很少去问,等到后来结对伙伴不问了就失去联系了,发现结对伙伴很久都不写评语了以后自己也放弃了...
  • 参考建议:结对学习还是很有效的一种学习方式,互相讨论能够发现彼此知识的漏洞,促进学习热情,而且能够起到成绩好的带动稍差的同学的效果。要想要持之以恒的结对学习的话, 还是需要有分数的激励吧...

问卷调查

  • 你平均每周投入到本课程有效学习时间有多少?
  • 30h以上,没有具体算过。不过每天都有学到3h,周末就一整个下午/上午的看。
  • 每周的学习效率有提高吗?你是怎么衡量的?
  • 有,主要是博客越写越熟练了,数据结构之后每周的课业压力小了很多,完成学习所需的时间少了,花在其他课程上的时间多了。
  • 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
  • 有,可以按需查看所需要的资源。建议的话,希望资源能够更新一下,或者做下整理,资源太多了有时候也是一种烦恼...
  • 你觉得这门课老师应该继续做哪一件事情?
  • 坚持原来的上课内容。虽然学时被压缩了,但是linux和安卓开发在以后应得很多,比较重要,需要保留。坚持激励机制..比如给成绩好的同学买书发棒棒糖啥的(嘿嘿嘿
  • 你觉得这门课老师应该停止做哪一件事情?
  • 分数分配不太合理昂。没有期末考试单纯看平时很难有区分度,水分也比较大,感觉对花了更多时间投入学习的同学来说,分数上会有一定的不公平。

团队项目报告链接汇总

  • 第一周
    • 团队展示
    • 团队选题确立
    • 需求规格说明书雏形
  • 第二周
    • 完善需求规格说明书
    • 制定团队编码规范
    • 数据库ER图
    • 项目后端架构设计
    • 确定团队分工
  • 第三、四周
    • 冲刺(7次 Scrum)

乱七八糟的结语

一个学期又chua的一下过去了,感觉时间过的好快。Java这门课给了我蛮多惊喜的,不管是编程能力还是解决问题的能力都有了很大提高,虽然学起来有点累内心有点崩溃...志强哥帮了我很多昂,不仅给了我知识和精神上的帮助,还有物质上的买书哈哈哈哈,感觉很幸运的遇到了一个好老师,像一个大哥哥一样关心我们的学习、生活的方方面面,所以这学期超开心的~虽然课程结束了,但是实践还是会一直坚持下去的,不能辜负王老师的期望,马克思的期望!

posted @ 2019-12-28 11:05  冷冲  阅读(286)  评论(0编辑  收藏  举报