20162317 2016-2017-2《程序设计与数据结构》课程总结

20162317 2016-2017-2《程序设计与数据结构》课程总结

总目录

每周作业链接汇总

每周作业目录

返回总目录

  • 第一周作业
    • 这一周我们主要学了:
      1. 算法复杂度的定义和计算
      2. 算法和效率的关系
      3. 算法的特点
      4. 时间复杂度和空间复杂度

返回目录

  • 第二周作业
    • 这一周我们主要学了:
      1. 泛型的使用
      2. 小组对构建之法的总结

返回目录

  • 第三周作业
    • 这一周我们主要学了:
      1. 查找的方法
      2. 不同查找方法的时间复杂度
      3. 排序的方法
      4. 不同排序方法的时间复杂度

返回目录

返回目录

  • 第五周作业
    • 这一周我们主要学了:
      1. 集合
      2. 数组实现栈
      3. 链表实现栈

返回目录

  • 第六周作业
    • 这一周我们主要学了:
      1. 队列
      2. 数组实现队列
      3. 链表实现队列

返回目录

  • 第七周作业
    • 这一周我们主要学了:
      1. 树的类型
      2. 数的实现

返回目录

返回目录

  • 第九周作业
    • 这一周我们主要学了:
      1. 堆的定义
      2. 堆的作用
      3. 堆的应用
      4. 堆的实现

返回目录

  • 第十周作业
    • 这一周我们主要学了:
      1. 图的定义
      2. 图的类型
      3. 图的实现

返回目录

  • 第十一作业
    • 这一周我们主要学了:
      1. 哈希算法的类型
      2. 冲突以及解决冲突
      3. 装载因子

返回目录

  • 自认为写得最好的一篇博客是?为什么?

    • 答:我认为写得最好的一篇博客是第七周学习总结。原因在于在这一篇我对我的问题做了额外的练习,让我对这一章的知识点印象更为深刻。并且这一章的问题提得比较深刻,解决情况也比较好。
  • 作业中阅读量最高的一篇博客是?谈谈经验

    • 答:作业中阅读量最高的一篇博客是第三周学习总结
      。我认为这一篇博客之所以能够获得那么多的关注是因为这篇博客是我们开始学数据结构的基础:算法和算法复杂度。在内容上,我结合了课本、PPT以及网上的知识,并将知识体系表格给了出来,比较有参考价值,而且比较详尽,能够比较容易看懂,因此阅读量高。

实验报告链接汇总

> **实验报告目录** > - [实验一](#report1) > - [实验二](#report2) > - [实验三](#report3) > - [实验四](#report4) > - [实验五](#report5) > > [返回总目录](#mainindex)

返回目录

返回目录

返回目录

  • 实验四
    • 简要介绍:图的实现与应用

返回目录

  • 实验五
    • 简要介绍:数据结构的综合应用

返回目录


团队项目报告链接汇总

团队项目报告

返回目录

返回目录

返回目录

返回目录

返回目录

返回目录

返回目录

返回目录

返回目录

返回目录

返回目录

返回目录

返回目录

返回总目录


> 本学期目标已达成

  • 加点代码,改点代码是理解的最好方式,谈谈你的心得

    • 对待一段代码,如果只是读懂,这并不是真正的理解。要试着加点代码,改点代码。加点代码,意味着运用原代码中提供的变量、方法、逻辑来尝试实现新的功能。当且仅当理解代码的人才能够敢加代码。改点代码也是,我们看的原代码也是人敲出来的,这些代码的排布可能不是最优化的。虽然这些代码已经实现了一些功能的实现,解决了需求,但不代表它是最优的。代码中可能存在着垃圾代码,垃圾变量,也可能逻辑不清,绕来绕去,又或者说是零零散散的,不够模块化。根据《编程的智慧》,我们的代码不应该只停留在实现功能上,我们要写出优雅的代码,流畅的代码,模块化的代码,可读的代码。若能够将看的代码优化且不影响原来的作用,这种就是真正地读懂代码。
  • 积极主动敲代码做到没?教材实践上有什么经验教训?

    • 自上个学期自知代码水平不高后,这学期自己便有一定的意识去主动敲代码。有时候一个知识点它可以有不同方面的拓展,这就需要自己积极主动地去设例子,用代码去尝试,因此这学期除了教材上的代码,为了学习知识,积极主动敲的代码也不少。个人感觉这样的学习方法进步很大,拓宽了自己在java中的视野,对某种方法或者是知识点的理解程度更深,记的程度也更深了。教材上的实践让我认识到了,教材中教的毕竟是有限。很多时候教材后的实践需要用到对应章节更深层次的用法,这时就需要我们去网上找该知识点的扩展用法或者是事例。同时,教材上的实践很多都是几个章节的知识点的联动,这时就需要我们对之前学的知识有很好的消化,会用联系的观点去看题目。

返回总目录


课堂项目实践或课后作业

- [算法复杂度](http://www.cnblogs.com/VersionP1/p/7585843.html) - 实践要求:用 Java语言实现下列算法并进行单元测试, 请给出算法的时间复杂度。 1. 求一个整数二维数组Arr[N][N]的所有元素之和。 2. 对于输入的任意 3 个整数, 将它们按从小到大的顺序输出。 3. 对于输入的任意 n 个整数, 输出其中的最大和最小元素。

  • 仿ArrayList
    • 实践要求:使用Java代码来实现ArrayList中的几个功能:
      • getCountSize():获取列表中存放元素的个数
      • isEmpty():判断列表是否为空
      • add(Object newEntry):往列表中添加元素
      • remove(Object anEntry):移除列表中指定的元素
      • clear():将列表清空
      • getFrequencyOf(Object anEntry):获取数组中某元素的个数
      • contains(Object anEntry):检验某元素是否包含在这列表中

  • 队列课下作业
    • 实践要求:
      • 用自己完成的队列(链队,循环数组队列)实现模拟票务柜台排队功能
      • 用JDB或IDEA单步跟踪排队情况,画出队列变化图

  • 课堂实践对提高应用能力有帮助吗?
    • 我认为非常有,当场的检验是最能考验一个人能力的有效方法。这样可以看出自己平时还有哪些还没完全熟悉,从而可以更好地提高自己的短缺方面。
  • 课堂实践上对自己有什么经验教训?
    • 平时能够做到的在现场检验不一定能够做到,总有一个方面自己还不是很熟悉,总有一个方面自己还有继续提升的空间。因此现场的检验要重视起来,通过课堂实践来更好地进行自我的提高和升值。
  • 课堂实践上对老师有什么教学建议?
    • 方法很好,请继续保持

返回总目录


课堂的收获和不足

  • 自己的收获(投入,效率,效果等)
    • 这学期在编程这方面投入得挺多的。毕竟上学期觉得自己不够努力,而且在朋友圈上被喂了很多鸡汤,于是下了决心要把编程学好。自己投入得感觉够多了,为了编码熬到2点,3点,4点都试过,但感觉这学期还是比较吃力。一方面我逻辑思维不是很好,很多弯都转不过来,恰好这学期学的是数据结构,感觉是学到了,但感觉不够深入身心,不能很好地融入自己的一部分中。
  • 自己需要改进的地方
    • 对于代码的理解我觉得我现在问题不大,问题就在于如何做到这一步。因此自己的逻辑思维能力还需要提高,同时也需要更多的练习和项目来给自己锻炼。
  • 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
    • 这个学期结队并不明显,但让我印象深刻的是小组项目。说实话,我虽然是个组长,但组织者当之无愧是刘伟康,他能够很好地将我们集中在一起,发布各自该负责的任务。小组成员各司其职,我也感觉到我们做的小项目前所未有的顺利。做完之后让我们每个人都很有成就感。这种模式很好,希望老师以后可以继续保持以这样的形式来做项目。

问卷调查

  • 你平均每周投入到本课程有效学习时间有多少?
    • 少的话会有16小时,多的话会有22个小时
  • 每周的学习效率有提高吗?你是怎么衡量的?
    • 有,看自己能够用多少天的时间看懂该周要学的章节喂衡量标准。
  • 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
    • 有,这种倒计时式的学习非常有利于促进我们学习的动力。我的建议是:每周小测不要是中文
  • 你觉得这门课老师应该继续做哪一件事情?
    • 小组的学习模式
  • 你觉得这门课老师应该停止做哪一件事情?
    • 英语出题
    • 出门门票
  • 你觉得这门课老师应该开始做什么新的事情?
    • 无太多想法,请继续保持即可。
      -你如何评价出门门票和做笔记的要求?
    • 无必要,只是存粹地为了做笔记而做笔记,形式化。
posted @ 2017-12-18 14:54  FunnyOne  阅读(182)  评论(0编辑  收藏  举报