20172328 2018-2019-1《程序设计与数据结构》课程总结(第2学期课程总结与回顾)

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

FROM->>TO: How are you?

    2018年9月9日->>2018年12月16日: Great!

本学期的程序数据和数据结构课程到这里就告一段落了,接下来就让咱们一同回顾这学期的点点滴滴。html

(按顺序)每周做业连接汇总

  • 第一周做业
    • 软件质量、数据结构以及算法分析的具体内容,主要依托于所用教材的第一章和第二章。
  • 第二周做业
    • 第三章集合概述——栈和第四章链式结构——栈。主要讨论了集合以及用于实现集合的基本数据结构,以及集合设计的相关问题和目标。本章内容以栈为例展现与集合的设计、实现和使用等有关的问题。
  • 第三周做业
    • 学习了第五章:队列。主要内容包含队列的处理过程、如何用对例如求解问题、各类队列的实现等。
  • 第四周做业
    • 列表,主要让咱们认识列表以及分析各类列表实现。
  • 第五周做业
    • 学习了第九章:排序与查找,主要包括线性查找和二分查找算法和几种排序算法。咱们在软件开发过程当中要在某一组查找某个特定的元素或要将某一组元素按特定顺序排序,因此要学习排序与查找的多种算法。
  • 第六周做业
    • 给定关键字序列,用顺序查找、折半查找、散列查找(用线性探查法和链地址法)来实现查找。请画出他们的对应存储形式(顺序查找的顺序表和两种散列查找的散列表),并求出每一种查找的成功平均查找长度。
  • 第七周做业
    • 学习了第11章:二叉查找树。在本章中,主要探讨了二叉查找树的概念和各类二叉查找树实现,考察为二叉查找树添加和删除元素的算法以及维护平衡二叉查找树的算法。
  • 第八周做业
    • 学习了二叉树的另外一种有序扩展--堆。本章将讲解堆的链表实现and数组实现,以及往堆中添加元素或从堆中删除元素的算法;还将介绍对的一些用途,包括基本使用和优先队列。
  • 第九周做业
    • 学习了无向图、有向图、带权图、经常使用的图算法、图的实现策略。

(按顺序)实验报告连接汇总

  • 实验一:线性结构实验报告
    • 简要内容:线性结构之链表及数组。基础链表创建、实现节点插入、删除、输出操做、实现链表的选择排序、实现数组插入、删除、输出操做、实现数组的选择排序。
  • 实验二:树
    • 简要内容:实现二叉树、中序先序序列构造二叉树、决策树、表达式树、二叉查找树、 红黑树分析。
  • 实验三:查找与排序
    • 简要内容:对排序和查找添加一些方法,重构代码,并进行测试。参考http://www.cnblogs.com/maybe2030/p/4715035.html在Searching中补充查找算法并测试、补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)测试实现的算法

蓝墨云做业&改错博客连接汇总

自认为写得最好一篇博客是?为何?node

回答:
本学期自认为最好的一篇博客是第七周学习总结,缘由是写这篇博客的时候很快乐,是真的感受本身在写学到的东西,不是简单地完成机械的任务。
git

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

回答:
去找本学期做业里面阅读量最高的一篇博客时,排行榜上居然没有本学期的博客,因此说明这学期确实没有上学期博客质量高。
编程

  最后找到了实验:三种查找算法练习。这是两个学期来第一次由于课堂实验作错了而去补的博客,有点戏剧性的成为了阅读量最高的博客,究其缘由恐怕是这篇改错的博客比较认真的总结了所学的知识点,对解题步骤也解释的比较清晰。
小程序

(按顺序)团队项目报告连接汇总

代码托管连接

给出statistic.sh的运行结果
数组

减掉上学期的10000行代码,天然也是够的。数据结构

说明本学期的代码量目标达到没有?

  本学期的代码量达到了预期。app

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

  回答:时隔一个学期,又来重读这篇文章,感觉天然又是不一样。最让我感触深的是防止过分工程中的这样一段话:“不少软件项目如此复杂。实际上没作多少事情,却为了所谓的“未来”,加入了不少没必要要的复杂性。眼前的问题还没解决呢,就被“未来”给拖垮了。人们都不喜欢目光短浅的人,然而在现实的工程中,有时候你就是得看近一点,把手头的问题先搞定了,再谈之后扩展的问题。”学习

  其实,在咱们编程过程当中,总会以为一些东西很难无从下手,这可能就是咱们对于未来的考虑太多了。先从基础的,可以实现的部分入手,才可能更好的去拓展。

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

  回答:这学期的代码没有自主的敲,除了每周的做业是本身主动动手敲,教材上的代码都是直接使用了源码。

  今年的教材上有一些错误,我以为好多地方的描述不是很清楚,好比说在学图的时候提到了拓扑排序,可是就是很简单了两行字,不易让同窗们理解。还有在某一周的一些代码,我和室友们一块儿研究了好久才明白具体是什么逻辑。

课堂项目实践

  • 1.时间复杂度分析,用大O记法写出下面各题的时间复杂度。
(1)for(i=1;i<=n;i++) 
      for(j=1;j<=i;j++) 
           for(k=1;k<=j;k++)  
(2)void fun(int n) {
   int i=l;
   while(i<=n)
       i=i*10;}
(3)int i, j,sum;
i=0;
j=0;
sum = i+j;
(4)void fun (int n){
   int i=0;
   while(i*i*i<=n)
       i++;}
  • 2.ArrayStack类的实现和测试
    • 具体内容:完成课本中ArrayStack类的实现,特别是完成peek、isEmpty、size和toString方法的实现,并完成四个方法的测试。
  • 3.链表插入
    • 具体内容:写出链表中节点插入的操做代码:
    public static void InsertNode(Student2 Head, Student2 node){}
  • 4.链表实践
    • 具体内容:链表练习,要求实现下列功能:
      (1)经过键盘输入一些整数,创建一个链表(1分);
      (2)实现节点插入、删除、输出操做(2分,3个知识点根据实际状况酌情扣分);
      (3)使用冒泡排序法或者选择排序法根据数值大小对链表进行排序(2分);
  • 5.第4章代码检查
    • 具体内容 :运行PP28,PP28页的程序,根据我的学号输入后缀表达式并计算。(例如,学号172301,输入1 7 + 2 3 0 1 - + *)
  • 6.LinkedStack补全
    • 具体内容:给出size、isEmpty和toString等方法的定义,以完成LinkedStack 类的实现。要求:1.可以运行2.须要测试各个方法 3.把代码上传到码云,并将关键代码和运行结果截图加水印(学号)上传。
  • 7.第5章代码检查-凯撒密码
    • 具体内容:代码检查P72-P73,凯撒密码程序。
      运行代码并截图,添加学号水印,上传到码云。
  • 8.杨辉三角(选作题)
    • 具体内容:使用循环队列输出杨辉三角
      (1)用数组实现循环队列(要考虑扩容问题,不然不加分);
      (2)输出杨辉三角;
      (3)代码运行结果添加学号水印,并上传;代码传到码云,附上码云连接。
  • 9.栈队列测试题
    • 具体内容:分析过程:当出现的是E二、E四、E三、E六、E五、E1的时候,说明栈底元素必定为E1。弹栈顺序应该为E2出栈、E三、E4进栈而后出栈,E五、E6随后进栈出栈,最后弹出E1.因此至少栈的容量是三个。
  • 10:第6章代码检查
    • 具体内容:运行PP6.8和PP6.11的程序,把结果截图,加学号水印,上传到蓝墨云。
  • 11.线性表实践
    • 具体内容:定义一个商品类Product,须要包括商品名称、价格等信息,使用链式存储结构实现一个线性表,存储商店中的商品。支持插入、删除、选择排序、查找等功能,并进行简单测试。
  • 12.ASL测试
    • 具体内容:已知线性表具备元素{5,13,19,21,37,56,64,75,80,88,92},若是使用折半查找法,ASL是多少?
  • 13.三种查找算法练习
    • 具体内容:每种算法2分,包括画出存储形式和asl的计算。
  • 14.哈希冲突处理实践
    • 具体内容:把本身的学号加21,例如学号为1,把22添加到序列后面,使用链地址法,解决冲突。
      编程实现,并测试。
      要求计算asl,输出冲突次数。
  • 15.希尔排序测试
    • 具体内容:D2等于2时,第2趟排序结果是?
  • 16.树计算题
    • 具体内容:
      1.有1023个结点的彻底二叉树,其高度是多少?叶结点数是多少?
      2.高度为h的彻底二叉树至少有多少个结点?至多有多少个结点?
  • 17.树的深度和叶子个数计算
    • 具体内容:计算课本中背部疼痛诊断器中决策树的叶子节点个数?根据课堂介绍的递归树深度计算算法,计算决策树的深度。
  • 18.中序和先序计算二叉树结构
    • 具体内容:若已知中序和先序序列,计算二叉树结构
  • 19.层次遍历法实践
    • 具体内容:使用递归实现层次遍历背部疼痛决策树,并按照层次顺序输出每一个节点内容。非递归的层次遍历法算法以下:根结点入队;从队头取元素,并执行以下3个动做:
      (1)访问该结点;
      (2)若是该元素有左孩子,则左孩子入队;
      (3)若是该元素有右孩子,则右孩子入队;
      重复执行上述过程,直至队列为空。 此时,二叉树遍历结束。
      按照上述算法,编程实现层序遍历,按照层序的方法,遍历并依次输出每一个节点内容。
  • 20.堆构造与排序
    • 具体内容:根据关键字序列:36,30,18,40,32,45,22,50,构造一颗小顶堆,并排序
  • 21.堆排序测试
    • 具体内容:根据关键字序列:36,30,18,40,32,45,22,50,利用数组构造一颗大顶堆,并排序。
  • 22.十字链表练习
    • 具体内容:画出十一链表结构。
  • 23.最小生成树
    • 具体内容:1.画出Prim算法的最小生成树的生成过程2.画出Kruscal算法的最小生成树的生成过程3.计算最小权值
  • 24.Dijkstra(迪杰斯特拉)算法测试
    • 具体内容:使用Dijkstra(迪杰斯特拉)算法计算单源(V1出发)最短路径。
  • 25.AOE练习
    • 具体内容:一、求关键路径,v1和ve的值并写出具体步骤二、画出图一可能的拓扑序列三、画出图二所示无向图的邻接矩阵、邻接链表,并列出深度优先和广度优先遍历图所得的顶点序列。四、写出图三的邻接矩阵,并用prim算法求最小生成树,画出产生过程。
  • 26.哈夫曼编码测试
    • 具体内容:设有字符集:S={a,b,c,d,e,f,g,h,i,j,k,l,m,n.o.p.q,r,s,t,u,v,w,x,y,z}。给定一个包含26个英文字母的文件,统计每一个字符出现的几率,根据计算的几率构造一颗哈夫曼树。并完成对英文文件的编码和解码。

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

  回答:有的,课堂项目实践可以快速对所学知识进行检测,具备及时性和反应性。

课堂实践上本身有什么经验教训?

  回答:我自己是一个有点慢热的人,这学期随着课程逐渐深刻,本身不少地方作的还有欠缺,也是补了两次课堂实践的博客,还作错了好几道题被扣了分。因此,快实践不只可以锻炼同窗们的学习能力,还能锻炼像我这种慢热型同窗的心理承受能力。|*´Å`)ノ

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

  回答:我以为这学期老师有很认真的备课,你们参与性和积极度也都挺好。教学上的建议暂时没有,继续保持这种教学模式至关不错。

课程收获与不足

  课程收获:这学期学到了很多新东西,在数学建模与数学实验课程、离散数学课程都有用到这门课带来的知识。并且最后可以应用到实际场景中,就让我以为此行不虚了。

  课程不足:课时可能还不够多,安排也不够合理。有时每周一节,有时每周三节,并且基本都不在早上一二节课,因此效率可能会有影响。周五上课,周末就可能会放松。因此课程内容衔接、复习和继续学习都有必定间隔。

本身的收获(投入,效率,效果等)&
本身须要改进的地方

  自我不足:这学期个人学习热情和动力各方面较上学期都表现的较为疲懒,课程上不少知识点掌握的不够牢靠,很容易忘又没有安排及时的复习,因此这学期对本身的表现不太满意。

  须要改进:继续努力,保持热情,认真对待。

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

  回答:我以为没有很好的贯彻,咱们小组几乎没有单独一块儿组队学习,讨论问题也都放到了课堂牢牢张张的时间。固然主要缘由出在咱们本身身上。

  我以为能够真的把这个单独提出来做为一个自选项,这样可能咱们的积极性更高。

问卷调查

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

  • 回答:大概晚上都会抽出时间来学习吧,具体大概每周25小时左右。

2.每周的学习效率有提升吗?你是怎么衡量的?

  • 回答:我以为没有明显反应,有时候状态比较好,可能那周的学习效率就比较高,反之则不太好。

3.蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?

  • 回答:有促进,我以为资源和做业布置都很方便也能在手机上及时查收消息。

4.你以为这门课老师应该继续作哪一件事情?

  • 回答:继续让咱们多练习、多实践。虽然很虐,即便很虐,尽管很虐···

6.你以为这门课老师应该开始作什么新的事情?

  • 回答:可以给同窗们一些固定时间地点答疑,这样可以让比较害羞很差意思主动麻烦老师的同窗可以去答疑。还有也可让助教答疑。

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

周节做业二维码

第一周 第二周 第三周 第四周 第五周 第六周 第七周 第八周 第九周

项目app的二维码:

UNO的博客连接汇总

三个实验的二维码:

实验一 实验二 实验三

蓝墨云做业&改错博客的二维码:

哈夫曼编码测试 暑假做业之Enjoy-all 十字链表画法—实践改错 实验:三种查找算法练习
相关文章
相关标签/搜索