2017-2018-1《程序设计与数据结构》课程总结
0.目录
>一、每周作业总结
(一)链接汇总
作业001:算法与数据结构概述
作业003:查找、与排序的经典算法
作业005&006:集合的总述、栈、队列
作业007:树
作业008:二叉查找树
作业009:堆和优先队列
作业010:图
作业011:Hash
(二)心得体会
> **自认为写得最好一篇博客是?为什么?**作业中阅读量最高的一篇博客是?谈谈经验
对于本学期的学习博客,我更多地把博客当做一个我记录学习的工具,希望之后在看的时候能回忆起当时学的知识,而不仅仅是完成一项作业。我认为写得最好的是十字链表的画法,这也是阅读量最高的一篇。这一篇是我在课堂实践后的一些思考,当时写的初衷就是想把我的思考总结分享给其他人。
二、实验报告
链接汇总
实验一:线性表的应用,实现和分析
实验二:树
实验三:查找与排序
实验四:图的实现与应用
实验五:数据结构综合应用
三、团队项目报告
链接汇总
团队博客001:小组组员及人员分工、《构建之法》阅读笔记及提问
团队博客002:我们小组选取游戏“开心消消乐”,对项目有力一个初步的认识。
团队博客003:正式建立团队,对前两周的合作进行了总结,初步确立项目题目,采访谢涛老师获得经验及宝贵经验。
团队博客004&005:完成《需求规格说明书》第一版的编写
团队博客006&007:修改《需求规格说明书》、团队编码规范、进行项目的后端架构设计、
团队博客008:UML图,设计思想
团队博客009&010:Alpha 阶段 团队成果展示,团队成员感想
四、代码
(一)码云链接
zyl_20162322_JavaFoundations2nd
Bug_terminator_team
(二)心得体会
> **1. 给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?**本学期在IDEA中一共6862行代码,除此之外在Android中还有一些代码,不过就这么看已经达到了5000行的目标。
2. 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
本学期的学习比起上学期,学习重点更偏向于动手敲代码实践了,基本每节课都有在蓝墨云班课上的课堂实践任务,实验等更是需要自己动手敲很多代码。这让我体会到了在理论学习之后加点代码,或者改改代码,能够加深对理论部分的理解。
3. 积极主动敲代码做到没?教材实践上有什么经验教训?
在平时的学习中,有积极主动敲代码。写出代码还远远不够,更要反复推敲自己的代码。写优雅的代码、写模块化的代码、写可读的代码、写直观的代码、写无懈可击的代码。本学期学了数据结构和一些算法,学了如何用Java语言实现这些数据结构,在最后的大项目中更是实践了如何运用这些数据结构与算法,可以说是收获满满。
五、课堂项目实践
(一)课堂实践链接
蓝墨云班课算法复杂度3学习:用 Java语言实现下列算法并进行单元测试, 请给出算法的时间复杂度。
第六周 队列课下作业:用自己完成的队列(链队,循环数组队列)实现模拟票务柜台排队功能
队列加分项-用循环队列打印杨辉三角:用实现循环队列,参考PPT用循环队列打印杨辉三角队列加分项-用循环队列打印杨辉三角 二维码
(二)心得体会
> **1. 课堂实践对提高应用能力有帮助吗?**课堂实践对提高应用能力是有帮助的,在规定时间内迅速做出反应完成任务对于动手敲代码的能力要求,对于知识的熟悉程度的要求是很高的。本学期在蓝墨云班课上的课堂实践任务,有很多能够帮助同学们理解之前讲解的理论知识,进一步提高动手敲代码的能力。
2. 课堂实践上自己有什么经验教训?
关于课堂实践的经验教训,我认为课堂实践中若发现有不懂的地方,课下应花功夫研究学习弄懂。
3. 课堂实践上对老师有什么教学建议?
还是建议老师在课后能够公布一个课堂实践的参考答案之类的,感觉课堂实践也就是每次在蓝墨云班课中提交了,提交之后便没有反馈了,我们不知道自己做的对错。也就是在过了很久之后才给了一个成绩,那个时候我们都已经忘记课堂实践的内容了。另外,也希望能够公布课堂实践的打分规则。
六、课程收获与不足
> **1. 自己的收获(投入,效率,效果等)** 本学期我对本课程的投入量比起上学期相对较少,但是我的学习效率有了很大提升,这大概是上学期反思总结了一些较好的方法的缘故。总结一下,本学期的收获分为一下几个方面:
第一,有关学习方法。
我在最开始就说过,我学习这门课程最希望的不是学到这门课中的知识,而是学到一些学习方法。总结一下本学期学到的学习方法:
- 阅读教材。
- 向老师,同学求助。
- 学会在网上查阅资料。
- 不清楚类和方法的使用时,查阅帮助文档。
- 以写博客的方式将自己所学记录下来。
- 有趣的编程模式——结对编程。
第二,写博客提高了写作能力。
本课程的学习成果都以写博客的方式体现出来,最初觉得这写博客特别形式主义,并没有多大用,不过现在回过头看来,写博客可以阶段性得复习,就在现在我回顾我本学期所写的博客的时候,就像小时候有段时间坚持写日记,回过头来读之前的日记的时候就会体会到的那种充实感。同时,自然也提高了我的写作能力。
另外,本学期的博客普遍比上学期好看。这是我进一步学习markdown语法的结果。
第三,自然就是本学期所学到的丰富的知识了。这在之前博客中就有体现了,这里就不赘述了。
2. 自己需要改进的地方
在课上应更加认真听讲,提高课堂效率。博客的排版还能再优化。
3. 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
本学期不像上学期有结对编程的项目,结对学习并没有上学期完成得好,只是有时结对伙伴有问题时,会耐心给她解答,还有就是在“出门门票”活动中,彼此分享我们的课堂笔记,解决彼此课上没听懂的问题,消除疑惑。
七、问卷调查
> **1. 你平均每周投入到本课程有效学习时间有多少?**我平均每周投入到本课程有效学习时间大约为15-20小时。其中包括教材学习,课堂内容消化,实验,团队项目这几块的学习时间。
2. 每周的学习效率有提高吗?你是怎么衡量的?
有提高。是从学习时间和学习效果两方面衡量的。
3. 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
是有一定的促进作用的。蓝墨云班课能提醒我需要完成的学习任务,老师发布的资源也能很方便地随时查阅,后期更是出现了电子助教对我每周资源阅读及学习的情况有一个评价,课堂的签到、随机点人回答问题等都是很好的功能,有提交时间限制的“活动”功能使课堂实践、出门门票等更好地实现。
4. 你觉得这门课老师应该继续做哪一件事情?
老师应继续使用蓝墨云班课教学。应继续课堂实践及出门门票活动。
5. 你觉得这门课老师应该停止做哪一件事情?
在后期,建议老师弱化博客部分,更加强调代码的实际编写。
6. 你觉得这门课老师应该开始做什么新的事情?
由于没有结对编程任务,本学期的结对工作做得不太好,建议老师在评分的时候将结对的两人的分数捆绑在一起。这样能大大地促进结对任务的更好完成,也能促进两个结对编程成员相互帮助、共同成长。
7. 你如何评价出门门票和做笔记的要求?
出门门票这一要求挺好的,它既改善了我上课不做笔记的坏习惯,使我听课更加专注,大大提高课堂效率,又促进了结对成员之间的相互学习与帮助。
八、其他任意发挥
十字链表的画法:对课堂实践中,画十字链表的实践的进一步思考,总结归纳出系统的十字链表的画法。
专题 查找与排序的Java代码实现(一):线性查找、二分查找,选择排序、插入排序、冒泡排序、快速排序、归并排序 的基本思想,及代码
《构建之法》的阅读 001 绪论:《构建之法》的阅读
最小生成树、最短路径问题:最小生成树、最短路径问题的学习总结
出门门票(第十二周):出门门票补交
以上是不属于之前分类的博客,其中十字链表的画法、专题 查找与排序的Java代码实现(一)、最小生成树、最短路径问题记录了我在学习过程中的一些思考,其中包括我对课堂内容的一个延伸、包括我对所学知识的总结归纳,是我课下自主学习的一个记录。