20162321王彪 2016-2017-2《程序设计与数据结构》课程总结
每周作业链接汇总
1.第一周作业 :第十二章-算法分析。数据的逻辑结构、增长函数和大O符号、算法上下限、算法复杂度的概念、具体算法分析
2.第三周作业 :查找与排序。线性查找,二分查找
3.第五周作业 :掌握栈的应用。理解Collection的抽象设计
4.第七周作业 :理解树抽象数据类型,掌握树的遍历方法,掌握二叉树的实现(数组,链表)
5.第八周作业 :二叉查找树。二叉查找树中添加与删除元素的方法
6.第九周作业 :堆和优先队列。定义堆并讨论它的特殊用途,讨论堆的链式实现方式,定义优先队列和它与堆的关系
7.第十周作业 :图的应用。讨论有向图和无向图,定义图的广度优先遍历和深度优先遍历,定义最小生成树,讨论图的实现策略
8.第十一周作业 :邻接矩阵实现。删除与添加元素的方法。
自认为写的最好的一篇博客是:第一周作业 。
第一周作业个人觉得总结很仔细,虽然知识很基础但是对每个知识点都有很好的理解,对知识模块的分类很明确。总之踏踏实实就是好!
作业中阅读量最高的一篇博客是:第一周作业
很尴尬依旧是这篇,虽然很基础的知识总结博客,但也许是因为对知识点的总结很充分的原因吧!
实验报告链接汇总
1.实验一 线性结构
- ArrayList和LinkedList测试
- 分别用Java的ArrayList和LinkedList实现有序线性表的合并
- 参考Java Foundation 3rd 第15.6节,用数组实现线性表List
- 参考Java Foundation 3rd 第15.7节,用链表实现线性表List
- 源码分析
2.实验二 树
- 参考教材p375,完成链树LinkedBinaryTree的实现
- 中序先序序列构造二叉树
- 决策树的实现
- 表达式树的实现
- 二叉查找树的实现
- 对Java中的红黑树(TreeMap,HashMap)进行源码分析
3.实验三 总结博客
- 完成教材P302 Searching.Java ,P305 Sorting.java中方法的测试
- 重构代码,把Sorting.java Searching.java放入cn.edu.besti.cs1623.(姓名首字母+四位学号)包中把,测试代码放test包中
- 在Searching中补充查找算法并测试
- 补充实现课上讲过的排序方法:希尔排序,堆排序,桶排序,二叉树排序等
- 编写Android程序对各种查找与排序算法进行测试
-
- 用邻接矩阵实现无向图
- 用十字链表实现无向图
- 实现PP19.9
-
- 编译运行测试
- 代码分析
- 代码修改
代码托管链接
- 给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?
加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
参考编程的智慧我有心得如下:
记得在图地实现这一章的学习和试验中,对图类的方法中删除边和结点操作的方法代码不停的修改,降低复杂度,使代码更加优美简洁。
在小组项目的最后冲刺阶段,我和同组张泰毓同学一起结对编程对游戏类方法优化并调试BUG,使得代码更加的稳固
每次加点代码,改点代码都会觉得之前的脑子是多么不灵光,每次的修改都是一次学习的过程,能做出之前想不到的成果。积极主动敲代码做到没?教材实践上有什么经验教训?
积极主动敲代码我认为是做到的,不过到现在还是有一些目标未达成,还需要坚持练手,比如,堆的数组实现方式到现在的实现方法还是有些许问题。最近都在未小组游戏的代码进行优化,以及新的游戏逻辑的构建总之每天都有有效的练手
这学期对教材上的PP作业,完成度不是很高,到是对于章节中留作程序设计作业的问题有一些了解和解决,对于教材我经验是:要学会发散,学会总结,对于书中未详细讲述的知识要充分查阅资料。要学会将代码规范为与书中一致的简洁与美观。
课堂项目实践
1.课堂实践 Bag类 :运用泛型做一个类似Bag(装填,倒出)的类
2.杨辉三角 :打印杨辉三角
课堂实践对提高应用能力有帮助吗?
课堂实践对应用能力还是有一定帮助的。但是我觉得课堂实践的方式有点问题,我认为的课堂实践过程应该是:老师会简要讲述课堂实践题目的要求和注意事项;在实践的过程中老师会不时对同学的疑惑做统一讲解;快结束时,会抽调同学的代码做示例来做分析和讲解,我觉得这个是很重要的,即可帮助同学提高代码能力还可以促进相互学习。
课堂实践上自己有什么经验教训?
我的经验是知道实践的题目后不要着急动手写代码,先要具体分析,脑中构思好伪代码,做好需求分析。着急下手的话,目无章法,就算编好程序,也会出现各种问题。
课堂实践上对老师有什么教学建议?
唯一的建议就是前面所说的:抽调部分同学的代码做示例来做分析和讲解,我觉得这个是很重要的,即可帮助同学提高代码能力还可以促进相互学习。
课程收获与不足
自己的收获(投入,效率,效果等)
这学期自己对课程的投入比之前更多,但好似从分数表现来看,有点问题的,但这都不是问题,学到了就是学到,我是绝不会去作假的,能力是自己的,是从别人那拿不来的。
自己需要改进的地方
从网上,书中看到知识要及时记录消化并且实践运用。
结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
课程前几周我和刘先润的结对学习倒是很认真。在项目冲刺中,我们小组其实冲刺了十天,每天晚上我们四个人都很认真在一堆讨论游戏代码,游戏界面,BUG等。感觉还是很不错的。
关于结对的建议:我觉得可以讲一次课堂实践用作结对编程,在课堂上结对的两人用一台电脑编写程序,同样抽调部分同学的代码做示例来做分析和讲解。
问卷调查
你平均每周投入到本课程有效学习时间有多少?
每天一两个小时,确保高效。确保有所收获
每周的学习效率有提高吗?你是怎么衡量的?
没有具体衡量过。每周的实验不同,但效率至少没有下降。
蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
这学期对蓝墨云班课的运用不足。
你觉得这门课老师应该继续做哪一件事情?
鼓励课外学习,保持代码的严格审批
你觉得这门课老师应该开始做什么新的事情?
实践课上抽调部分同学的代码做示例来做分析和讲解。
博客二维码
- 第一周
- 第三周
- 第五周
- 第七周
- 第八周
- 第九周
第十周
第十一周
- 课堂实验-Bag
课堂实践-杨辉三角
实验一
实验二
实验三
实验四
实验五