20172301 2018-2019-1《程序设计与数据结构》课程总结
20172301 2018-2019-1《程序设计与数据结构》课程总结
每周作业链接汇总
- 第一周作业
- 简要内容:
- 软件的质量特征
- 算法复杂度
- 大O记法
- 简要内容:
- 第二周作业
- 简要内容:
- 集合和栈、链表
- 简要内容:
- 第三周作业
- 简要内容:
- 有关队列的内容
- 简要内容:
- 第四周作业
- 简要内容:
- 有关列表的内容
- 用数组和链表实现列表
- 简要内容:
- 第五周作业
- 简要内容:
- 查找和排序操作的多种算法。
- 简要内容:
- 第六周作业
- 简要内容:
- 有关树的内容和实现。
- 简要内容:
- 第七周作业
- 简要内容:
- 有关二叉查找树的内容。
- 用链表实现二叉查找树。
- AVL树和红黑树。
- 简要内容:
- 第八周作业
- 简要内容:
- 有关堆的有关内容。
- 用链表和数组实现堆。
- 堆的应用:堆排序和优先级队列。
- 简要内容:
- 第九周作业
- 简要内容:
- 有关图的基本概念。
- 图的实现和操作算法。
自认为写得最好一篇博客是?为什么?
我觉得是第五周的博客。
首先呢,这次是我这学期博客完成的最快的一次,是第一个提交的。但是,这里的快并不代表着内容粗糙、带有水分。而是代表这周我的学习积极性最高和时间安排的最为合理。
教材学习总结也很丰富形象。对于书中和课上的疑问,自己解决的也很全面。
博客的作用就是为了更好的总结和理解,我认为这周的博客是最符合这个意义的,所以自认为写的最好。
作业中阅读量最高的一篇博客是?谈谈经验
我阅读量最高的一篇博客同样是第五周博客。看来英雄所见略同,大家也认为我这篇写的不错。
我这一篇之所以阅读量高,并不是因为我教材总结多么丰富,因为很多同学都写得很完美。主要是分析了教材中的泛型写法问题,主要是关于通配符和边界。
我相信,很多同学如果不懂,在百度上一看就明白了。难的是发现问题的过程。
对于这一行代码,我们只是看的别扭,但是有时候很少会发问,他为什么要这么写,是印刷错误,还是有某些特定的规则。
public static <T extends Comparable<? super T>>
就像我上学期说的,博客就像总结,总是要有自己学到的东西存在的,自己学到的东西越多,那么这篇博客也就越有意义。
实验报告链接汇总
- 实验一
- 实验名称:线性结构之链表和数组
- 简要内容:实现链表和数组的插入、删除、输出操作和选择排序。
- 实验二
- 实验名称:树
- 简要内容:
- 实现二叉树
- 已知中序先序序列,构造二叉树
- 决策树
- 表达式树
- 二叉查找树
- 红黑树分析
- 实验三
- 实验名称:查找和排序
- 简要内容:
- 查找和排序的实现、测试和android端的实现。
团队项目报告链接汇总(乌诺纸牌)
- 第一周:
- 简要内容:
- 团队展示
- 团队选题介绍
- 采访学长经验
- 团队分工和占比
- 团队任务计划
- 需求说明书
- 简要内容:
- 第二周:
- 简要内容:
- 修改完善上周提交的需求规格说明书
- 团队的编码规范
- 团队项目的数据库设计及相应ER图
- 项目的后端架构设计
- 团队分工
- TODOList及燃尽图
- 本次分工及工作量比例
- 简要内容:
- 冲刺博客一
- 冲刺博客二
- 冲刺博客三
- 冲刺博客四
- 冲刺博客五
- 冲刺博客六
- 冲刺博客七
代码托管链接
说明本学期的代码量目标达到没有
达到了。
加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
- 这学期重新读了一遍,又有了新的体会。
- 是需要系统逻辑思维的,要始终清楚自己代码的逻辑架构。需要优化代码,简化程序,让实验结果更加精准,更加贴近于实验目的。
- 是需要一笔一画记录的。写代码也需要灵感,也需要思路。同于文章结构一样,要在脑海中幻化出代码整体的骨架,再填充其血肉。而非枯坐一上午,就可以实现的。需要我们在灵感来的时候多加积累。我们需要记录,记录灵感,记录错误,也是为了更好的总结。
- 是需要美观的。 代码也需要我们有规范。这样,不仅是方便别人更好的理解和开发,更是对自己编程素质的一种培养。
- 加代码,是对代码的优化,是对格式的规范。并不是最短的代码才是最好的。比如if语句的花括号不可以省略,else语句尽量写。条件判断和循环更加详细。
- 改代码,则是对代码的升华,是对思路的调整。我们的代码并不是无懈可击的,我们需要修改,臻于完美。
积极主动敲代码做到没?教材实践上有什么经验教训?
- 我觉得衡量是否积极仅靠代码行数是片面的。如何主动,是需要莫大的兴趣的,而非像一个码农一样机械地复制粘贴代码一样。
- 教材实践刚开始能给我提供很多思路,我可以根据书上的例子来编写自己的程序。同样,尽信书则不如无书,教材中也是存在错误的,有时候往往实践才是检验真理的唯一标准。
课堂项目实践
- 时间复杂度分析
- ArrayStack的实现和测试
- 链表插入
- 链表实践
- 第四章代码检查
- LinkedStack补全
- 第五章代码检查-凯撒密码
- 杨辉三角
- 栈队列测试
- 第六章代码检查
- 线性表实践
- ASL测试
- 三种查找算法练习
- 哈希冲突处理实践
- 希尔排序测试
- 树计算题
- 树的深度和叶子个数计算
- 中序和先序计算二叉树结构
- 层次遍历法实践
- 堆构造与排序
- 堆排序测试
- 十一链表练习
- 最小生成树
- Dijkstra(迪杰斯特拉)算法测试
- AOE练习
- 哈夫曼编码测试
课堂实践对提高应用能力有帮助吗?
有。课堂实践一定程度上考验的是我们对于课堂知识的合理运用能力和独立思考解决问题的能力。锻炼我们的逻辑思维和设计代码的能力。
课堂实践上自己有什么经验教训?
要认真听老师对于原理的讲解。只有懂得了原理,才能更好的把代码实践出来。
课堂实践上对老师有什么教学建议?
还是更希望能多讲一些重点的东西,让我们引起重视。
课程收获与不足
自己的收获
- 对于数据结构有了一定的学习,在android端的实践能力经过实践项目和团队项目也有了很大的进步。
- 对于python有了一定的学习。还在尝试编写一些脚本。
- 代码的阅读理解和编写时的逻辑思维有了一定的提高。
自己需要改进的地方
- 良好的编码规范习惯。对于一些注释的要求,代码规范。在编程的时候,注意自己的逻辑性。注意细节,站在用户的位置上思考,是否有问题,是否方便合理。
- 寻根究底 对于学习的东西,不能只知道结论,而不知道其内涵。就像,有些方法,我们只会用,却不会去编写,就是学习的不全面。
结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
- 本学期的结对学习已经相当成熟了。首先,大家对于自己的要求很高,完成度也很高。然后,组内的相互沟通和交流也很频繁。认真贯彻了,互帮互助,共同进步。
问卷调查
你平均每周投入到本课程有效学习时间有多少?
至少20个小时左右。
每周的学习效率有提高吗?你是怎么衡量的?
看每周的学习任务和难度。学习效率我是通过对于某部分的理解程度衡量。
蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
有一定帮助。一定的资料和实践能更好的帮助我们理解所学的内容。
你觉得这门课老师应该继续做哪一件事情?
保持课堂实践。
你觉得这门课老师应该停止做哪一件事情?
过多的博客。适当的总结有助于学习,过度的总结有太大的压力。