zoukankan      html  css  js  c++  java
  • 20172325 2018-2019-1《程序设计与数据结构》课程总结

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

    每周作业链接汇总

    第一周作业:初步了解数据结构相关知识,软件质量、数据结构、算法分析、时间复杂度分析等;

    第二周作业:学习第一种数据结构——栈,包括栈的原理,栈的结构,以及用链表和数组两种实现栈的方法;

    第三周作业:学习第二种数据结构——队列,包括队列的原理,队列的结构,以及两种实现队列的方法,这周还加上了队列与栈的区别与优劣;

    第四周作业:列表的一些基本知识和方法,无序线性表与有序线性表的区别,以及两种线性表的三种操作的具体实现方法;

    第五周作业:查找和排序——查找(静态查找、泛型查找、线性查找、二分查找),排序(选择排序、插入排序、冒泡排序、快速排序、归并排序);

    第六周作业:学习第一种非线性数据结构——树,包括树的原理、树的分类、树的实现策略、树的四种遍历方法以及简单二叉树;

    第七周作业:深入学习二叉树,主要是AVL树和红黑树的相关知识;

    第八周作业:堆得学习,包括堆得原理和用链表和数组实现堆;

    第九周作业:图的相关知识,包括网络、最小生成树、图的遍历(深度优先和广度优先搜索);

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

    • 自认为写得最好的一篇是第六周博客,因为那一周有很多时间用来学习相关知识,于是在知识的广度和深度方面相较于其他博客会更加具体详细一些。

    作业中阅读量最高的一篇博客是?谈谈经验

    我的博客其实都差不太多,阅读量最高的应该是第一周博客。经验?!

    • (1)第一:抓住刚开学老师、同学们的学习积极性,他们会积极查阅博客;第二:抓住时间的尾巴,时间越长,阅读量越高。
    • (2)第一条纯属瞎扯,阅读量要高博客一定要有东西才行,客观来说你要有足够充实的知识,主观来讲,你要有自己的见解和思考。

    实验报告链接汇总

    实验一 :对链表和数组的操作进行实践学习,要求实现插入、删除、输出等操作;

    实验二 :对树的知识进行相关实践,要求掌握实现二叉树、决策树、二叉查找树、红黑树等;

    实验三 :对查找和排序等知识进行进一步的学习和掌握,回顾一学期的数据结构的知识;

    团队项目报告链接汇总

    团队作业--第一次

    -团队展示

    -团队选题:
    - 确定选题 ;
    - 初步制定完成计划;
    - 向有经验的学长采访问答,得到有益的帮助;

    • 需求规格说明书

    团队作业--第二次

    • 需求规格说明书的改变

    • 编码规范

    • 数据库设计与ER图

    • 后端架构设计

    • 确定团队分工

    • 组员在上述任务中的分工和工作量比例。

    选择困难症的福音——团队Scrum冲刺阶段-Day 1领航
    选择困难症的福音——团队Scrum冲刺阶段-Day 2
    选择困难症的福音——团队Scrum冲刺阶段-Day 3
    选择困难症的福音——团队Scrum冲刺阶段-Day 4
    选择困难症的福音——团队Scrum冲刺阶段-Day 5
    选择困难症的福音——团队Scrum冲刺阶段-Day 6
    选择困难症的福音——团队Scrum冲刺阶段-Day 7

    代码托管链接:

    给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?

    • 这学期的目标已顺利达到。

    加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得

    • 理解的最好方式是实践。在我看来,之所以不懂,是因为不是自己创造编写的,这个时候,通过适当的改动,去看运行或者输出的结果有何变化,通过差别来发现实际的作用的意义是最为简单有效的理解方式,之后可以通过添加适当的注释,或者在命名的时候稍加解释会起到行之有效的理解效果。

    积极主动敲代码做到没?教材实践上有什么经验教训?

    • 这个学期在代码的实践上和上个学期相比较有略微的退步,可能由于缺乏新鲜感和惰性的原因导致了这个结果,更多的通过阅读理解教材来学习知识解决问题,在这个过程中我发现自学真的很重要,自学也很讲究方式方法,要学会自己主动的查阅教材外的信息,教材上的知识在很大程度上只起到讲解基础的作用,也就是“师傅领进门,学成靠自身。”

    课堂项目实践

    • 时间复杂度分析:时间复杂度分析,用大O记法写出时间复杂度。

    • ArrayStack的实现和测试: 完成课本中ArrayStack类的实现,特别是完成peek、isEmpty、size和toString方法的实现,并完成四个方法的测试。

    • 链表实践:链表练习,要求实现链表的插入、删除、输出等功能。

    • 第四章代码:运行PP28,PP28页的程序

    • LinkedStack补全: 给出size、isEmpty和toString等方法的定义,以完成LinkedStack类的实现。

    • 凯撒密码: 代码检查'凯撒密码程序。

    • 第六章代码检查: 运行PP6.8和PP6.11的程序

    • 线性表实践: 定义一个商品类Product,需要包括商品名称、价格等信息,使用链式存储结构实现一个线性表,存储商店中的商品。支持插入、删除、选择排序、查找等功能,并进行简单测试。

    • ASL测试: 已知线性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,ASL是多少?
      输出后缀表达式。

    • 三种查找算法练习

    • 哈希冲突处理实践: 把自己的学号加21,例如学号为1,把22添加到序列后面,使用链地址法,解决冲突。编程实现,并测试。

    • 希尔排序测试:

    • 树计算题

    • 中序和先序计算二叉树结构:若已知中序和先序序列,计算二叉树结构

    • 堆排序测试: 根据关键字序列:36,30,18,40,32,45,22,50,利用数组构造一颗大顶堆,并排序。

    • 十一链表练习: 画出十一链表结构。

    • 最小生成树:
      1.画出Prim算法的最小生成树的生成过程
      2.画出Kruscal算法的最小生成树的生成过程
      3.计算最小权值

    • Dijkstra(迪杰斯特拉)算法测试: 使用Dijkstra(迪杰斯特拉)算法计算单源(V1出发)最短路径。

    • AOE练习:
      1、求关键路径,v1和ve的值并写出具体步骤
      2、画出图一可能的拓扑序列
      3、画出图二所示无向图的邻接矩阵、邻接链表,并列出深度优先和广度优先遍历图所得的顶点序列。
      4、写出图三的邻接矩阵,并用prim算法求最小生成树,画出产生过程

    • 哈夫曼测试:
      (1)准备一个包含26个英文字母的英文文件(可以不包含标点符号等),统计各个字符的概率
      (2)构造哈夫曼树
      (3)对英文文件进行编码,输出一个编码后的文件
      (4)对编码文件进行解码,输出一个解码后的文件

    课堂实践对提高应用能力有帮助吗?

    • 个人觉得有一定的帮助,但是更多的是检测学习的结果,对于能力的提升作用不大,因为在课堂上有限的时间内不能够得出既实现目的得方法,又简洁有效的编程思路。

    课堂实践上自己有什么经验教训?

    • 我的经验是课前课上一定要熟练掌握所学知识,这样才能事半功倍。

    课堂实践上对老师有什么教学建议?

    • 我建议课堂实践可以更改为课后实践,在课后紧接着给定有限的时间用于实践,这样一来能够即起到学完马上巩固,有给了足够的时间让有疑问或者不太明白的同学进一步学习的时间。

    课程收获与不足

    • 收货:本学期的学习让我对数据结构有了基础的了解和运用,在编程的思路和操作上更进一步;
    • 不足:这学期的学习没有上一学期积极,代码量不太够,可能在一些方法的掌握上还存在不小的漏洞。

    自己的收获

    • 经过又一学期的学习,我更加坚信投入的时间和精力与自己所得的收获是成正比的,尤其发现效率是学习至关重要的因素,在有限的时间内投入更多的精力与思考能够学的更多更好。

    自己需要改进的地方

    • 学习效率还在不够高,积极主动敲代码做的还不够好。

    结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议

    • 贯彻的不错,在有一个人懒惰或有疑问的时候,结对伙伴能够及时的起到监督和帮助的作用。

    问卷调查

    你平均每周投入到本课程有效学习时间有多少?
    10个小时

    每周的学习效率有提高吗?你是怎么衡量的?
    学习效率起伏不定,我衡量的方法是在熟练掌握运用知识的前提下,花费更少的时间则效率更高。

    蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
    我觉得有,但是我觉得在时间的控制上可以再稍加斟酌,毕竟有的时候自学时间会比较多,但有的时候还有其他科目的学习任务。

    你觉得这门课老师应该继续做哪一件事情?
    课堂实践

    你觉得这门课老师应该停止做哪一件事情?
    博客,这能是博客,造福于学弟学妹

    给出你的总结中涉及到的链接的二维码

    第一周作业:

    第二周作业:

    第三周作业:

    第四周作业:

    第五周作业:

    第六周作业:

    第七周作业:

    第八周作业:

    第九周作业:

    实验一:

    实验二:

    实验三:

    团队作业一:

    团队作业二:

    时间复杂度分析:

    ArrayStack的实现和测试:

    链表实践:

    第四章代码:

  • 相关阅读:
    SpringCloud(2) 服务注册和发现Eureka Server
    决策树
    python基础6--面向对象基础、装饰器
    python基础5--输入输出、错误与异常
    python基础4--控制流
    python基础3--函数
    python基础2--数据结构(列表List、元组Tuple、字典Dict)
    python基础1--安装、package、数据类型
    Joda-Time开源库
    Maven教程(4)--Maven管理Oracle驱动包
  • 原文地址:https://www.cnblogs.com/20172325DYK/p/10201709.html
Copyright © 2011-2022 走看看