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

每周作业连接汇总

  • 第一周作业:第一周学习了暑假已经在学习资源中预习过的算法分析的课程内容。对于算法复杂度有了更深入的了解。

  • 第三周作业:本周学习了教材第十三章,查找与排序中的知识。
    章节重点介绍了线性以及二分查找算法;选择,插入,插入,冒泡,快速,归并等排序算法。并从这些算法中体现枚举,分治,递归等算法思想。这些查找与排序算法在我们之后的学习中经常用到。

  • 第五周作业:本周教材学习中引入集合概念,开始学习栈,链表等数据结构,开始使用泛型。

  • 第七周作业:本周上课时老师带我们学习了树的基本概念,课下我们尝试补完书上代码,形成能使用的树类。

  • 第九周作业:本周学习了堆和优先队列的相关内容,课下我们尝试补完书上代码,形成能使用的最大堆类。

  • 第十周作业
    本周学习了图的相关内容,初步了解了图的基本概念,相关定理。

  • 第十一周作业:本周学习了哈希方法的相关内容,对不同的哈希方法,哈希函数有了初步的了解。

    • 问题1:自认为写的最好的一篇博客是什么?为什么?
    • 回答:我自认为写的最好的一篇博客是第七周学习总结,因为这篇博客中记载了一些我有时候会忘记的基本概念,有时候忘记了只要看看博客和书就能解决。
    • 问题2:作业中阅读量最高的一篇博客是?谈谈经验
    • 回答:阅读量最高的博客应该是第一周学习总结,大概是第一周互评时大家互相参考评价,所以阅读量比较高吧。所以也没有什么经验。

实验报告连接汇总

  • 实验一 链性结构:主要对于已有的Ob类中的ArrayList和LinkedList进行了测试,自己编写了这两个类实现指定功能,并进行了测试。
  • 实验二 树:实现了二叉树,查找树,决策树等类型的树,阅读并学习了红黑树源码。
  • 实验三 查找与排序:对书上的查找排序算法进行了测试,学习并编写了新的查找排序方法,例如:斐波拉契查找,块查找,树排序,堆排序等,并将它们放入原有的查找排序算法中并进行测试。
  • 实验四 图的应用与实现:编写代码,利用邻接矩阵实现无向图,十字链表实现有向图,带权图构建一个计算机网络图,并使用算法求出其费用最便宜的路径,并求出每个点之间的最短路径。
  • 实验五 小组项目修改:clone小组项目到指定文件夹编译运行;在某一个界面中添加一个按钮,使之点击可以显示学号姓名信息。对小组项目进行代码分析,分析框架构建等内容。

团队项目报告链接汇总

代码托管链接

jTsfS.png

  • 问题1: 给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?
  • 回答:本学期所有项目里的代码加起来是超过了5000行这个目标的,但其中有很多代码都不是自己敲的都是已经给定的模板和完整的类,所以也并不能算完成了吧
  • 问题2:加点代码,改点代码是理解的最好方式,参考《编程的智慧》,谈谈你的心得
  • 回答:这个学期我最大的心得应该就是《编程的智慧》里的写简单的代码,有时候同样是做一个实验的同一个方法,比如isEmpty().第一次做的时候我写的老长了,看着还有点麻烦。结果看同学的代码就三四行:定义一个result类型的布尔变量为假;判断是否存在元素,存在result赋值为真;返回result,就结束了。我的伪代码其实跟他们差不多,但表达起来确变得很麻烦。代码简化就在这个过程中体现了,在后来的树,队列这些新学的结构里,我学会了把代码写得简单化,写完后时时思考代码里面有没有多余的部分,我能不能把它修改地更简单明了一点。
  • 问题3:积极主动敲代码做到没?教材实践上有什么经验教训?
  • 回答:这学期在中期一段时间感觉到了自己有严重不足,一直在向同学学习,这段时间做到了积极主动敲代码吧。其他时间更多的还是被动地为了发布的任务去做事,需要改进。对于教材的实践,我认为我在实现中光顾着完成实践,而没有认真地理解和学习教材实践中已给出的代码,这点在以后学习其他的计算机课程应该改正。

课堂项目实践

课堂项目实践连接

  • 队列课下作业:完成LinkedQueue的代码,利用自己编写的LinkedQueue类运行测试书上15.3的票务柜台的排队柜台,画出队列模拟图。

  • 排序课下作业:用JDB或IDEA单步跟踪下列算法的执行过程:选择排序,插入排序,希尔排序,冒泡排序,快速排序,归并排序。给定数据:90 8 7 56 123 235 9 1 653。

  • 问题1:课堂实践对提高应用能力有帮助吗?

  • 回答:课堂实践大多数是对所学知识的具体应用,可以增强我们对所学知识的理解应用能力。

  • 问题2:课堂实践上自己有什么经验教训?

  • 回答:课堂实践没做完的下课一定要抓紧时间完成,不会的要赶紧找同学问,千万别拖,不然就很有可能到最后要提交的时候还没有头绪了。

  • 问题3:课堂实践上对老师有什么教学建议?

  • 回答:建议老师不要刚讲完一个新的概念和知识,在同学们都没理解清楚的时候就进行测试。比如十字链表的测试,当时绝大部分同学都没听懂和看懂十字链表到底是怎么表示的,一头雾水地写了个答案交上去,起不到任何测试的作用。

课程收获与不足

  • 自己的收获:这个学期对很多数据结构进行了学习和应用,最开始的时候效率比较低,但是随着时间推移,所学习的内容慢慢多起来之后,掌握新结构的能力明显提升了,收益颇多。
  • 自己需要改进的地方:拖延症还是改不了。每次到最后才开始着手于发布的任务,时间往往不够自己精细去学习和完成任务。
  • 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议:结对学习中,更多的是我的结对伙伴帮助我。我在结对中收益颇多而并没有能力对他给予太大的帮助。我在遇到问题时,经常去问他。他如果知道答案,会直接给我讲解;不知道时我们会分别去查资料,然后一起讨论得到答案,这也算是我对他的一点小帮助吧,互利双赢。

问卷调查

  • 问题1:你平均每周投入到本课程有效学习时间有多少?
  • 回答:10小时左右。
  • 问题2:每周的学习效率有提高吗?你是怎么衡量的?
  • 回答:在学习树章节的部分的效率开始提升了。当时可以明显地感觉到理解代码,完成任务的速度加快了,也没有刚开始学习的时候那种啥都不会一头雾水的感觉了。
  • 问题3:蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
  • 蓝墨云班课对我的学习对我的学习有一定的促进作用,查找学习资源和任务变得方便了一些,但是在蓝墨云上发布试卷进行测试实在是不敢恭维,根本就无法体现平时的掌握程度。
  • 问题4:你觉得这门课老师应该继续做哪一件事情?
  • 答案:"出门门票"
  • 问题5:你觉得这门课老师应该停止做哪一件事情?
  • 答案:使用英文进行测试,因为就算是英文,我们大多数人也只能靠翻译来看懂问题。我大概只有一两次是基本不依靠翻译答完了所有问题。这也并不能提高我们的英文水平,因为有些概念的英文表达我们并不会经常接触,时间一长就忘了。
  • 问题6:你觉得这门课老师应该开始做什么新的事情?
  • 答案:感觉这个学期做的事情很多很杂,或许以后需要修改一下,减少一些内容,而不是增加一些内容。
  • 问题7:你如何评价出门门票和做笔记的要求?
  • 答案:做笔记的要求我认为是有必要的,可以监督同学们,避免划水,但是我觉得没必要强制要求笔记格式,这样的限制让很躲同学不习惯,有时候甚至要为了凑出一张“出门门票”,胡乱地抄讲课内容和编总结,毫无意义。每个人用自己适合的方式记笔记,快下课时把内容提交至出门门票就应该就足够了。

二维码

  • 码云项目链接
  • image
  • 作业链接
  • image
  • 实验项目链接
  • image
  • 课堂实践链接
  • image
posted @ 2017-12-24 21:56  162315  阅读(147)  评论(0编辑  收藏