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

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

每周做业连接汇总

  • 第一次做业:什么叫高质量软件;学习教材一、2章节。
  • 第二次做业:学习教材三、4章节,栈相关知识的学习,利用数组和链实现栈。
  • 第三次做业:学习教材第5章,队列相关知识的学习;完成技能调查表。
  • 第四次做业:学习教材第6章,列表相关只是的学习,有序列表、无序列表、索引列表等。
  • 第五次做业:学习教材第9章,选择与排序相关知识的学习。
  • 第六次做业:学习教材第10章,树相关知识的学习。
  • 第七次做业:学习教材第11章,二叉查找树相关知识的学习。
  • 第八次做业:学习教材第12章,堆相关知识的学习。
  • 第九次做业:学习教材第15章,图相关知识的学习。

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

  • 自认为写的最好的是:第七次做业,缘由以下:
    • 它是我本学期惟一一篇加分的博客。
    • 是本学期首次对博客的字体进行修改,使得博客总体看来更为美观。
    • 博客图文并茂,在重点的地方加粗或改变颜色,使得博客轻重分明。

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

  • 本学期阅读量最高的是第一次做业
    php

  • 经验:
    • 想要阅读量高,博客必定要交的早,这样后面的同窗就能够向着看一下别人写的博客,这样阅读量就上去了。

实验报告连接汇总

团队项目报告连接汇总

代码托管连接:

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

  • 代码量显然已经达到,甚至接近代码量目标的三倍。虽然在这14617行代码中,有效代码行数是9833行,这也接近目标的两倍。
  • 虽然说代码量这么多,可是因为这学期课程的缘由,许多代码书上已经给出,须要本身实践的代码也就只有每周的PP项目和实验项目。
  • 真正有用的代码我以为跟上学期差很少,也就2000行左右甚至更少。通过接近一年的学习,本身对于各类方法的利用又有了必定的提高。
  • 学无止境,或许IDEA的代码量会停留在这个值,可是我相信在以后的学习中我会更多的动手实践。

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

  • 编程的智慧中提到“反复推敲代码”与“写简单代码”,通过近一年的学习我体会更深了,不少时候对于一个简单的实现有很是多种方法,也有很是多种数据结构能够利用,可是什么样的代码是最简单的代码呢?或许就如书上所说的时间复杂度比较低的代码运算较快,可是不少时候时间复杂度的较低是用空间复杂度的牺牲换来的,因此仅仅注重运算效率可能并非最简单的代码。在咱们如今的阶段,咱们所学的知识,所能用到的方法与咱们的储存相比很小,可是对于一些大项目来讲,空间也是一个必须考虑的因素。路漫漫其修远兮,咱们还有很是长的路须要走
  • “加点代码,改点代码是理解的最好方式”这句话在上学期时我有些抵触,可是在在这学期我彻底改变了本身的见解,当本身没有思路去实现一些东西时,查查别人的想法,借鉴别人的代码再加以修改真的可让本身一会儿豁然开朗,不足就学,不要担忧,咱们如今只是入门阶段的新人,有优秀的代码帮组理解,何乐而不为呢?

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

  • 对于本学期来讲,基本作到了积极主动敲代码,布置做业就会去完成,可是有的时候仍是有些松懈,“积极”便被放在一边了。
  • “书本是一位好老师”,虽然这学期教材上的代码存在许多错误,或许这就是做者故意的呢?那些错误都不大,认真看看就能修改完成,可是若是你不修改的话就一直提示错误。这也让我养成了每次敲入教材代码后校对一遍的习惯。

课堂项目实践

  • 时间复杂度分析:计算时间复杂度,用大O记法进行表示。
  • ArrayStack类的实现和测试:实现ArrayStack类中的peek、isEmpty、size和toString方法,并完成四个方法的测试。
  • 链表插入:写出链表中节点插入的伪代码。
  • 链表实践:经过键盘输入一些整数,创建一个链表;实现节点插入、删除、输出操做;使用冒泡排序法或者选择排序法根据数值大小对链表进行排序。
  • 第4章代码检查:运行PP28,PP28的程序,根据我的学号输入后缀表达式并计算。
  • LinkedStack补全:实现size、isEmpty和toString等方法并进行测试。
  • 第5章代码检查:运行课本P72-P73凯撒密码程序。
  • 杨辉三角(选作题):使用循环队列输出杨辉三角。
  • 栈队列测试题:完成第六题的分析。html

  • 第6章代码检查:运行PP6.8和PP6.11的程序。
  • 线性表实践:定义一个商品类Product,须要包括商品名称、价格等信息,使用链式存储结构实现一个线性表,存储商店中的商品,同时支持插入、删除、选择排序、查找等功能,并进行简单测试。
  • ASL测试:已知线性表具备元素{5,13,19,21,37,56,64,75,80,88,92},若是使用折半查找法,计算其ASL。
  • 三种查找算法练习:画出三种算法的存储形式和并计算ASL。java

  • 哈希冲突处理实践:把本身的学号加21,例如学号为1,把22添加到序列{11,78,10,1,3,2,4,21}后面,使用链地址法,解决冲突,同时计算ASL,输出冲突次数。
  • 希尔排序测试:当D2等于2时,写出第2趟排序结果。git

  • 树-计算题:计算下列三道题
    • 1.有1023个结点的彻底二叉树,其高度是多少?叶结点数是多少?
    • 2.高度为h的彻底二叉树至少有多少个结点?至多有多少个结点?
    • 3.已知一棵度为m的树中有n1个度为1的结点,n2个度为2的结点,…,nm个度为m的结点,问该树中有多少个叶结点?
  • 树的深度和叶子个数计算:参考下面叶子节点计算的伪代码,计算课本中背部疼痛诊断器中决策树的叶子节点个数,并根据课堂介绍的递归树深度计算算法,计算决策树的深度。
  • 中序和先序计算二叉树结构:已知一棵二叉树的先序序列和中序序列分别为ABDGHCEFI 和 GDHBAECIF,试肯定二叉树结构。
  • 层次遍历法实践:使用递归和非递归的方法实现层序遍历,遍历背部疼痛决策树,并按照层次顺序输出每一个节点内容。
  • 堆构造与排序:根据关键字序列:36,30,18,40,32,45,22,50,构造一颗小顶堆排序,并画出构造堆过程(树+数组)
  • 堆排序测试:根据关键字序列:36,30,18,40,32,45,22,50,利用数组构造一颗大顶堆,并排序。
  • 十字链表练习:依照图画出十字链表结构。web

  • 最小生成树:依照图完成下列操做算法

    • 1.画出Prim算法的最小生成树的生成过程
    • 2.画出Kruscal算法的最小生成树的生成过程
    • 3.计算最小权值
  • Dijkstra(迪杰斯特拉)算法测试:使用Dijkstra(迪杰斯特拉)算法计算单源(V1出发)最短路径。要求:(1)写出V1到各个顶点的最短路径(2)要求写出最短路径计算过程。编程

  • AOE练习(加分):完成下图中四道题。后端

  • 哈夫曼编码测试:设有字符集: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个英文字母的文件,统计每一个字符出现的几率,根据计算的几率构造一颗哈夫曼树,并完成对英文文件的编码和解码。
  • 实验记录博客:172322 2018-2019-1 《程序设计与数据结构》哈夫曼编码测试报告数组

  • 课堂实践对提升应用能力有帮助吗?数据结构

    • 课堂实践的内容都是一些比较简单的编程时间或者代码检查,对于知识的理解有帮助,对于应用能力的提升也有必定的做用。
  • 课堂实践上本身有什么经验教训?

    • 上课必定要认真听讲,特别是书上没有的知识,不认真听课上实践作起来有一些困难。
  • 课堂实践上对老师有什么教学建议?

    • 相较于上学期的课上实践,本学期的课上实践更加合理了,但愿给学弟学妹们也以一样的方式教学。

课程收获与不足

本身的收获(投入,效率,效果等)

  • 本学期对于这个课程来讲投入的时间可能比上学期少了一些,可是效率我我的认为是提升了的,效果也是显著的,对数据结构的各类知识如今都有了一个清晰的认识。

本身须要改进的地方

  • 遇到问题仍是喜欢找理由,不习惯去直面问题。同时也有一些懒惰的心理。这都须要改进

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

  • 我以为是的,真正贯彻了。
  • 咱们在平常的学习会互相给对方讲对方没有听懂的知识,也会对对方的一些代码提出建议,对于一些大型的任务也会分工合做,真的很棒。

问卷调查

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

  • 大概在8个小时左右,14-16周最多,由于在团队项目编程,由于学期中和学期初相对较低。这是有效学习时间,实际所用的学习时间确定比这个多不少。

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

  • 有提升,特别是在学期末和任务多的时间,有一句话颇有趣“百分之八十的工做都是由百分之二十的时间完成的”,时间越紧,效率越高。

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

  • 有促进做用,但这学期蓝墨云的课上实践和实验在开始没有打分,致使同窗们对于本身的分数不清楚。

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

  • 博客、课堂实践、编程演示、算法讲解

你以为这门课老师应该中止作哪一件事情?

  • 我想不到了,我以为本学期作的事都比较合理。

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

  • 提供更多的答疑机会。

其余

百词斩的单词

  • 这学期基本上天天都背了单词,只漏了一天。

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

相关文章
相关标签/搜索