20172302 2018-2019-1《程序设计与数据结构》课程总结


2018下半年学习总结博客总目录:[第一周](https://www.cnblogs.com/hzy0628/p/9606767.html) [第二周](https://www.cnblogs.com/hzy0628/p/9655903.html) [第三周](https://www.cnblogs.com/hzy0628/p/9700082.html) [第四周](https://www.cnblogs.com/hzy0628/p/9737321.html) [第五周](https://www.cnblogs.com/hzy0628/p/9786586.html) [第六周](https://www.cnblogs.com/hzy0628/p/9825081.html) [第七周](https://www.cnblogs.com/hzy0628/p/9873230.html) [第八周](https://www.cnblogs.com/hzy0628/p/9929202.html) [第九周](https://www.cnblogs.com/hzy0628/p/9966165.html)

实验博客:实验一 实验二 实验三 团队项目博客:团队作业第一周 Do-Now团队Scrum冲刺博客二


每周作业链接汇总

  • 第一周 软件质量,数据结构框架,算法分析,时间复杂度计算
  • 第二周 集合概述——栈,栈的两种实现方式:链表、数组
  • 第三周 线性集合——队列,队列的两种实现方式:链表、数组
  • 第四周 有序集合——列表,列表的分类及其两种实现
  • 第五周 查找与排序,两种简单查找算法,六种排序算法及其效率比较
  • 第六周 树的概念,树的遍历,以及二叉树的实现
  • 第七周 二叉查找树及其实现,平衡化方式,AVL树,红黑树
  • 第八周 优先级队列与堆,最小堆的两种实现及堆排序
  • 第九周 图的概念及其实现策略,图的遍历,最小生成树算法,最短路径求法

最好博客&&阅读量最高博客

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

又一个学期的博客,这学期感觉应该是五六周的博客内容质量还算可以,前几周的博客贴代码贴的较多,不知道写什么,后面几周的博客问题内容的记录又不够详细。应该是 第六周 算得上是写的比较好的了。
原因有以下几个方面:

  • (1)内容质量:这一周教材总结我觉得做的应该算是比较详细的一次,参考了很多关于树的一些资料,自己也总结了一些。
  • (2)教材问题:关于书上的printTree()方法我做了比较全的解答记录,又解释了每个变量的在整个打印树中的作用,问题记录比较详细
  • (3)学习状态:那周学习的状态比较好,学习速度快一些,有了更多的时间去写好一篇博客。

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

       阅读量最高的一篇博客是实验一,很奇怪一篇实验博客阅读量到了自己这学期最高的阅读量,阅读量为96。
       这一篇谈不上有什么经验,不过我认为一篇好的博客应该是内容知识点集中,或者说能够具体给出某个问题的解决方法。它是能把一个知识块或一个问题说透说清楚,能给出切实可行的方法。但到目前自己没有写过这样的博客,如果以后有机会,希望能做这样的尝试。

实验报告链接汇总

代码托管链接

给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?

IDEA中Statistic插件统计的结果,Java代码共19254行,上半年的代码总行数为7683行,这学期的代码一共写了11000多行,比预期的目标要多,代码行数的多并不能说明什么。从编程的智慧中就可以读到:

有些人喜欢炫耀自己写了多少多少万行的代码,仿佛代码的数量是衡量编程水平的标准。然而,如果你总是匆匆写出代码,却从来不回头去推敲,修改和提炼,其实是不可能提高编程水平的。

加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得

再读“编程的智慧”,又有一些新的体会,“反复推敲”,“优雅代码”,“可读简单”,当然还有很多我都读不懂,比如模块化的代码。

  • ①反复推敲

如果有几十年的工作经验,却从来不回头去提炼和反思自己的代码,那么他也许还不如一个只有一两年经验,却喜欢反复推敲,仔细领悟的人。
所以如果反复提炼代码已经不再有进展,那么你可以暂时把它放下。过几个星期或者几个月再回头来看,也许就有焕然一新的灵感。这样反反复复很多次之后,你就积累起了灵感和智慧,从而能够在遇到新问题的时候直接朝正确,或者接近正确的方向前进。

       代码是需要反复去推敲的,总是得去想是不是还有更优解,有时就是这样才能简化代码。同时有时候编程没有思路,也用不了几个星期或几个月,暂时放一放,说不定明天或者睡一会就有思路了,有时候就是当局者迷,跳脱出来以后反而有可能会恍然大悟。

  • ②优雅代码

实际上,真正优雅可读的代码,是几乎不需要注释的。如果你发现需要写很多注释,那么你的代码肯定是含混晦涩,逻辑不清晰的。

       上半年总结的时候我就提到这学期要学会加注释,可还是没做到,编程的时候注意力放在了代码上,编完之后又嫌麻烦不想加,弄的就是又没加上,可是我的代码写的也不优雅,有很多规范平时不注意很可能就会弄得结构乱一些,还有很多规范都是没有听到过的,更不用说是注意了。希望以后写的代码能优雅到不用加注释,而不是因为麻烦而不加。

  • ③可读简单
    可读简单,应该说是对目前的我来说还是难做到的一点,可读性要强,同时还要直接明了。

积极主动敲代码做到没?教材实践上有什么经验教训?

  • 应该还算是做到了,偶尔会比较懈怠。
  • 教材实践的经验教训:教材实践中让我印象最深的是实验二的第四个吧,就是用树去完成中缀转后缀,后缀求值这个书上给了,但自己做前面的那个的时候是参考了其他同学的思路。

课堂项目实践

  • 课堂实践链接
    哈夫曼树编码测试
  • 课堂实践对提高应用能力有帮助吗?
    课堂实践对应用能力的提高有一定的帮助。
  • 课堂实践上自己有什么经验教训?
    课堂实践我做的可能就比较慢一些,因为我反应有点慢,做起来又带点紧张,就导致速度上可能不比其他同学。
  • 课堂实践上对老师有什么教学建议?
    还是希望老师能把一些实践的内容能够具体化、细化,要求的内容讲述清楚,让我们能尽快的理解,并进行实践。

课程收获与不足

  • 自己的收获(投入,效率,效果等)
           一年的课程学习,我认为这门课对我最大的帮助有三点,一是独立思考,二是信息检索,三是动手尝试,这三个方面都有了一些进步。

    • 独立思考:我第二个学期学习的时候,遇到的每个问题,大都是自己解决的,有时候一个问题,我可能能想个好几天,每天都争取能有一点进展。
    • 信息检索:网上的博客、资料实在太多了,质量也有好有坏,还到处都是抄来抄去、重复的,在这之中想要找到能解决自己问题的,实在是很困难的。在做Android项目时,有一个问题,我搜索了整整一天也没能成功的解决那个问题。
    • 动手尝试:这个和上面的信息检索有一定关联,找了资料能不能解决问题总得试一试才知道,这也就让我平时总抱着试一试的心态,多试一试就有可能会成功解决。
  • 自己需要改进的地方
    改进的地方也有很多:
    第一:平常做完一个题目,解决一个问题,解决完就放在那里了,没有再去细想到底为什么这样能解决,为什么那样不能解决;
    第二:有时会偷懒,有时候可能做错了一个题目,自己想着是那么回事也就过去了,不愿意去改;
    第三:有时候会比较烦躁,一个问题总是解决不了,就可能会一两天就不学,没有一个持续的学习过程。

  • 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
    这学期结对学习内容不算多,后面的团队项目一起学习的时间比较多一些。

问卷调查

  • 你平均每周投入到本课程有效学习时间有多少?
    每周的学习时间大概是20小时左右,有效的学习时间大概能占12~14个小时。

  • 每周的学习效率有提高吗?你是怎么衡量的?
    学习效率这学期第4~7周学习效率比较高。
    衡量标准:本周的学习状态及博客发布时间

  • 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
    有促进作用,老师之前推荐的一些学习博客都很好。
    建议可以多放一些参考资料,视频的作用不是很大对我来说。

  • 你觉得这门课老师应该继续做哪一件事情?
    应该继续加强目前实践练习,尽可能地帮助我们提高实践应用能力,多去让学生自己解决问题。

  • 你觉得这门课老师应该停止做哪一件事情?
    下课做视频加分,没有太大效果。

  • 你觉得这门课老师应该开始做什么新的事情?
    我觉得这门课可以来个期末上机考试,占个小比重,要不然学一学期也不清楚自己到底哪没掌握好,最后分数还都很高。

任意发挥

  • 一个学年结束了,通过这门课的学习在一些方面有一些进步,但也有很多不足。从编程大赛的那次比赛,我知道了自己编的程序是存在很多bug的,一遍通过的概率很小,测试用例一多就很难通过,说明还有很多细节的东西都没有考虑到。还有编程的规范简洁可读性、算法的简洁性都还没有做到,比如说我经常会用多个嵌套的if-else语句,而这很明显是不如用一个switch-case语句的,那样看起来更加明晰清楚,自己用的很多都还是一些很初级的用法。在做Android项目时也感到很吃力,很多知识点我都是看代码来学习的,来不及看书查资料,一方面时间太短,另一方面学习起来存在困难,同时很多细节没法往下做,做着做着就迷糊了,比如说一开始的数据库设计是要同时使用本地和云存储两种方式,但做着做着就理不清头绪了,于是放弃了本地存储,才得以进行下去。还要就是深感会的东西太少了,学会的东西只是很小的一部分。
  • 这门课只能是作为起点,打开编程的大门,要学习的东西还有很多。

给出你的总结中涉及到的链接的二维码

posted @ 2018-12-23 11:03  ◕‿◕  阅读(139)  评论(0编辑  收藏
© 2018 GitHub, Inc.