20162311 2017-2018-1《程序设计与数据结构》课程总结
目录
一、每周作业链接汇总
- 第一周作业:学习教材第十二章,初步了解软件工程,完成第一周学习总结
- 第二周作业:开设团队项目博客,下载Java Collection API源代码,掌握Java中泛型类,泛型方法的设计,第二周总结选做(没写)
- 第三周作业:学习教材第十三章,初步掌握各种查找排序算法,完成第三周学习总结
- 第四周作业:完成实验一 线性结构,提交实验一报告
- 第五周作业:学习教材第十四章,掌握栈的应用,完成第五周学习总结
- 第六周作业:学习教材第十五章,掌握队列的应用,完成第六周学习总结(选做,写了)
- 第七周作业:学习教材第十六章,掌握树的应用,完成第七周学习总结
- 第八周作业:学习教材第十七章,掌握二叉查找树的应用,完成实验二 树,提交实验二报告,完成第八周学习总结(选做,写了)
- 第九周作业:学习教材第十八章,掌握堆和优先队列的应用,完成第九周学习总结
- 第十周作业:学习教材第十九章,掌握图的应用,完成实验三 查找与排序,完成实验三报告,完成第十周学习总结(选做,写了)
- 第十一周作业:学习教材第十九章,掌握hash函数的应用,完成第十一周学习总结
二、自认为写得最好一篇博客是?为什么?
我认为自己写的最好的一篇博客是《20162311 实验四-图的实现与应用 实验报告》。这是我写的第四次实验的实验报告,之所以选这篇,是因为它是我花的心思最多、写的最认真的一篇博客。我的实验思路,每个实验步骤,每个方法的实现我都写的很详细。而且这次实验与之前的不同,书上并没有很多可供参考的代码,大部分都是靠我自己写,因此我在这上面花费的时间很多,记忆也很深,做完实验后为了把自己的想法和自己做实验的具体过程体现出来,博客写的也很详细,所以我认为这是我写的最好的一篇博客
三、作业中阅读量最高的一篇博客是?谈谈经验
阅读量最高的博客是《20162311 实验三-查找与排序 实验报告》。我认为,别人阅读你的博客,肯定是你的博客对其他人有帮助。所以写博客的时候,多总结一些自己的经验,写一些对其他人有借鉴作用的内容,那么你博客的阅读量就会增加
四、实验报告链接汇总
- 实验一 线性结构:线性表的应用,实现和分析
- 实验二 树:二叉树、树型结构的实现及应用
- 实验三 查找与排序:复习查找和排序算法
- 实验四 图及应用:自己实现图结构,并实现相关的算法
- 实验五 数据结构综合应用:完成团队项目
团队项目报告链接汇总
- 第一周:作业要求,团队学习分工和学习交流情况总结
- 第二周:团队讨论选取Android上的一个游戏软件,回答相关问题,参考团队作业第二周
- 第三周:参考团队作业第三周
- 第四、五周:参考团队作业第四五周
- 第六、七周:参考团队作业六七周
- 第八周:参考团队作业第八周
- 第九、十周:参考团队作业第九十周
五、代码托管链接
- 码云项目链接
- statistic.sh的运行结果
- 个人项目
- 团队项目
两个学期可统计到的代码量总共为11973行,本学期为6164,达成目标
六、课堂项目实践
- 课堂实践链接
- 泛型类-bag:用Java继承BagInterface实现泛型类Bag,并对方法进行单元测试(JUnit),测试要涵盖正常、异常情况、边界情况
- 用数组实现栈:参考教材内容,实现ArrayStack,完成peek,isEmpty,size及toString方法,并用Junit进行单元测试(正常,异常,边界情况)
- 用链表实现栈:完成LinkedStack
类并用Junit进行单元测试(正常,异常,边界情况) - 查找课堂测试:用JDB或IDEA单步跟踪在下列数据中(3 8 12 34 54 84 91 110)查找45和54的过程,对比使用顺序查找和二分查找的执行过程
- 排序课堂测试:用JDB或IDEA单步跟踪对3 8 12 34 54 84 91 110进行快速排序的过程
- Java Queue的测试:使用Java Collections API实现Caesar密码的变化Key,参考教材程序15.2 完成代码
- 用数组实现循环队列:参考程序15.6给出方法deque,first,isEmpty,size,toString的定义,完成CireclularArrayQueue
类并用Junit进行单元测试(正常,异常,边界情况) - 用链表实现队列:参考程序15.5给出方法deque,first,isEmpty,size,toString的定义,完成LinkedeQueue
类并用Junit进行单元测试(正常,异常,边界情况) - 队列课下作业:参考15.3节,用自己完成的队列(链队,循环数组队列)实现模拟票务柜台排队功能
- 队列加分项:参考PPT用循环队列打印杨辉三角
- 哈夫曼树的实现:理解HuffmanTree的构造过程,补充代码完成decode()
- 堆排序:完成pp18.1并用上面的例子进行测试,提交getMax()的代码,提交运行结果截图
- 课堂实践对提高应用能力有帮助吗?
还是有帮助的。课堂实践是在限定时间内完成老师布置的任务。这种实践可以提高动手能力,还能锻炼我们的思维能力。
- 课堂实践上自己有什么经验教训?
想要在短时间内完成实践,一定要对所学的知识点十分了解,所以在课后一定要花时间复习,甚至自己动手练习,这样才能保证高效率地完成课堂实践
- 课堂实践上对老师有什么教学建议?
适当的课堂实践对同学们应用能力的提升是有帮助的,但是过多的课堂实践,在时间不够充裕的情况下会有些手忙脚乱,可能无法很好的完成实践
七、课程收获与不足
- 收获
初步学习和掌握了各种数据结构,在实验的过程中加深了自己的理解。在做团队项目的过程中比上学期更深入地学习了Android开发,也培养了自己在这方面的兴趣
- 不足
很多东西学习的不够深入,导致一些问题一知半解。如果要真正深入学习,还需要花更多的时间
八、问卷调查
- 你平均每周投入到本课程有效学习时间有多少?
20小时
- 每周的学习效率有提高吗?你是怎么衡量的?
有提高,根据相同时间内完成的作业量的多少或学习到新知识的多少来衡量
- 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
有促进,可以多上传一些参考资料
- 你觉得这门课老师应该继续做哪一件事情?
进行课堂实践,锻炼动手实践能力
- 你觉得这门课老师应该停止做哪一件事情?
出门门票。感觉形式大于内容
- 你觉得这门课老师应该开始做什么新的事情?
感觉目前的教学形式过多,个人觉得不需要再加入什么新的内容,否则形式太过多样会让学生忙不过来,从而产生应付心理
- 你如何评价出门门票和做笔记的要求?
感觉不适合所有人。每个人做笔记应该都有自己的习惯,如果规定一个格式反而不好,对于不愿做笔记的人来说这种强制措施虽然能暂时让其做笔记,但是之后就不会再去总结,效果也不会很明显。对于一些想做笔记但是又不知道如何做笔记的人来说应该是有帮助的
九、总结中涉及到的链接的二维码
目录
每周学习总结
第一周学习总结第三周学习总结
第五周学习总结第六周学习总结
第七周学习总结第八周学习总结
第九周学习总结第十周学习总结
第十一周学习总结
实验报告
实验报告一实验报告二
实验报告三实验报告四
实验报告五
团队项目报告
第一周第二周
第三周第四、五周
第六、七周第八周
第九、十周
班级博客园作业
第一周作业第二周作业
第三周作业第四周作业
第五周作业第六周作业
第七周作业第八周作业
第九周作业第十周作业
第十一周作业团队作业第一周
团队作业第二周团队作业第三周
团队作业第四、五周团队作业第六、七周
团队作业第八周团队作业第九、十周
课堂实践
Java Queue的测试查找课堂测试
堆排序队列加分项
队列课下作业泛型类-bag
哈夫曼树的实现排序课堂测试
用链表实现队列用链表实现栈
用数组实现队列用数组实现栈