20162305 2016-2017-2《程序设计与数据结构》课程总结
每周作业链接汇总
第一周作业:
简要内容:
- 什么是算法
- 算法的时间复杂度
- 什么是数据结构
二维码:
第二周作业
简要内容:
- 泛型的使用
- 利用Comparable接口进行查找比较
二维码:
第三周作业
简要内容:
- 查找的两种方法:线性查找和二分查找
- 排序的五种方法:选择排序、插入排序、冒泡排序、快速排序和归并排序
- 不同的查找和排序算法的时间复杂度
二维码:
第四周作业
简要内容:
- 本周我们主要完成了实验一的内容
二维码:
第五周作业
简要内容:
- 什么是栈
- 泛型
- 链式结构
- 利用数组和链实现栈
二维码:
第六周作业
简要内容:
- 什么是队列
- 使用链表实现队列
- 使用数组实现队列
二维码:
第七周作业
简要内容:
- 什么是树
- 树的结点
- 树的遍历
二维码:
第八周作业
简要内容:
- 实验二
- 二叉查找树
- 二叉查找树的相关操作和算法
二维码:
第九周作业
简要内容:
- 堆
- 添加元素入堆
- 删除堆中的元素
- 优先队列
二维码:
第十周作业
简要内容:
- 无向图
- 有向图
- 带权图
- 常用的图的算法
二维码:
第十一周作业
- 简要内容:
- 哈希算法和哈希函数
- 图的存储结构以及实现
- 图的遍历
- 图的生成树问题
- 二维码:
自认为写得最好一篇博客是?为什么?
我认为我写过的最好的一篇博客是实验四实验报告。我认为我在写这篇博客的时候认真学习了图的相关应用,并且很好地将我学习到的内容反映到了博客中。
作业中阅读量最高的一篇博客是?谈谈经验
我的作业中阅读量最高的一篇博客同样也是实验四实验报告。这篇博客的阅读量最高的原因,我认为是在这篇博客中我很清晰地写清楚了实验过程,对实验中的关键代码都进行了理解和注释,这样很容易大家阅读学习。
实验报告链接汇总
实验一 线性结构
- 简要内容
- ArrayList和LinkedList测试
- 分别用Java的ArrayList和LinkedList实现有序线性表的合并
- 用数组实现线性表List
- 用链表实现线性表List
- 对Java的ArrayList,LinkedList按要求进行源码分析
- 二维码:
实验二 树
简要内容
- 链树的实现
- 构造二叉树
- 决策树
- 表达式树
- 二叉查找树
- 红黑树分析
二维码:
实验三 查找和排序
简要内容
- 查找和排序教材代码
- 重构代码
- 查找和排序的算法测试
二维码:
实验四 图的实现和应用
简要内容
- 邻接矩阵实现无向图
- 十字链表实现无向图
- 最短路径问题
二维码:
实验五 数据结构综合应用
简要内容
- 分析系统架构
- 编译、运行、测试系统
- 修改系统
- 分析数据结构、排序查找算法应用
二维码:
团队项目报告链接汇总
团队作业第一周 《构建之法》学习笔记及团队成员介绍
简要内容
- 《构建之法》每章学习以及学习过程中遇到的问题
- 小组成员介绍
二维码
团队作业第二周 关于游戏软件的问题
简要内容
- 关于游戏软件的问题
- 小组成员游戏讨论
二维码
团队作业第三周 团队展示
简要内容
- 团队展示
- 团队初步合作
- 团队选题
二维码
团队作业第四、五周
简要内容
- 近两周工作内容总结
- 工作分工
二维码
团队作业第六、七周
简要内容
- 修改规格说明书
- 后端架构
- 代码规范
二维码
团队作业第八周
- 简要内容
- 反思和总结
- 二维码
团队作业冲刺一
简要内容
- 小组分工
- 爆炸类
二维码
团队作业冲刺二
简要内容
- 总体架构
- 精灵类
二维码
团队作业冲刺三
简要内容
- MainActivity
- GameActivity
二维码
团队作业冲刺四
简要内容
- EnemyPlane
- SmallEnemyPlane
二维码
团队作业冲刺五
简要介绍
- 战斗机类
二维码
团队作业冲刺六
简要介绍
- GameView的实现
二维码
团队作业冲刺七
简要内容
- 总体总结
- 反思和思考
二维码
代码托管链接
- 给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?
- 代码量达到了要求。
加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
教材上的代码是基础,在教材上的代码的基础上,通过修改代码可以更加直观地理解每行代码的含义和内涵。也正是通过加代码和修改代码的过程,我才学习到更多代码的意思和功能。这是一种很有效的学习方式。
积极主动敲代码做到没?教材实践上有什么经验教训?
我感觉我还没有很好地达到积极主动敲代码,写代码还是有些被动,一直跟着教学的节奏在走。教材实践的过程中,我也发现了教材上的代码也并不都是完全正确的,自己在实践中还是要带有更多自己的思考和理解,以教材代码为基础,但不能完全依赖于教材代码。
课堂项目实践
- 参考2016-2017-2 《Java 程序设计》课堂实践项目
算法复杂度实践
简要内容
- 求一个整数二维数组Arr[N][N]的所有元素之和
- 对于输入的任意3个整数,将它们按从小到大的顺序输出。
- 对于输入的任意 n 个整数, 输出其中的最大和最小元素。
二维码
队列课下作业
简要内容
- 补充教材上的代码
- 单步跟踪
二维码
杨辉三角
简要内容
- 用循环队列打印杨辉三角
二维码
课堂实践对提高应用能力有帮助吗?
- 我觉得很有帮助,对我们写代码和理解理论知识都很有帮助。
自我总结
课堂实践上自己有什么经验教训?
- 能够让自己更加容易意识到自己知识学习的盲点,然后再通过实践解决
课堂实践上对老师有什么教学建议?
- 建议老师在课堂实践的过程之前,能够将实践部分的内容讲的更加透彻一些,让同学们能够理解更加深刻后再去实践。
课程收获与不足(不要抄上学期的,否则会扣分)
- 这个学期课程的学习,让我了解了算法等新的知识内容。像栈,链表这样的数据结构的应用和算法都是我这学习得到的宝贵财富。通过这学期的学习,我感觉我的逻辑思考能力有一些进步,而且写代码这一部分的能力相比较于上学期也有提高。不足的部分也有很多,我认为我这学期最大的不足就是对这门课程的学习效率不高,不够主动,对细节把握不够,时间利用的不好,而且代码写的也不够简洁。
自己的收获(投入,效率,效果等)
- 这学期,我对于这门课程的学习也投入了很多时间,感觉自己在编写代码这部分投入的时间和精力比上学期更多了,不过自己的逻辑思考能力有时候还是不足以写好要求的代码。我在学习的过程中也不够踏实,这些都是我学习过程中的收获:踏实研究和认真思考。本学期的效率我认为还不是很好,但是学习的效果相比较于上学期好了很多。
自己需要改进的地方
- 更加严谨,更加踏实,更加专注,更多思考
结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
- 结对学习这部分我感觉不如上学期开展的好,这学期我和我的结对伙伴在学校都担任有学生工作,能坐在一起学习的时间很少。虽然平时一直有交流,不过结对效果并不明显。我觉得在做团队项目时,团队学习的效果很好,我在团队学习的过程中通过讨论和研究项目学习了很多。建议老师可以继续保持这样的方式来做项目。
问卷调查
你平均每周投入到本课程有效学习时间有多少?
- 每周至少15个小时,课程多的时候会达到20小时
每周的学习效率有提高吗?你是怎么衡量的?
- 通过代码量,博客以及对教材内容的感觉理解,综合三项结合实际消耗时间来衡量学习效果。我感觉我的效率有一点点提高。
蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
- 蓝墨云班课是个很好的学习软件,经验值的设置也能激励同学的学习,而且云班课上也有很好的学习资源,这都对我的学习有很好的促进作用。我建议可以继续保持。
你觉得这门课老师应该继续做哪一件事情?
- 小组学习、团队项目(项目也不只是局限于android开发,也可以一起写一些其他的东西)
你觉得这门课老师应该停止做哪一件事情?
- 出门门票和一些加分项目
你觉得这门课老师应该开始做什么新的事情?
- 可以尝试新的教学方法,将传统方法和新式方法更好结合
你如何评价出门门票和做笔记的要求?
- 记笔记很好,有助于同学复习理解。而出门门票有些形式化,可以考虑取消。改成定期检查笔记(不作为强制要求 项目,只是建议记笔记)