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

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

    每周作业链接汇总

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

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

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

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

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

    • 经验:

      • 想要阅读量高,博客一定要交的早,这样后面的同学就可以向着看一下别人写的博客,这样阅读量就上去了。

    实验报告链接汇总

    团队项目报告链接汇总

    代码托管链接:

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

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

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

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

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

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

    课堂项目实践

    • 时间复杂度分析:计算时间复杂度,用大O记法进行表示。

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

    • 链表插入:写出链表中节点插入的伪代码。

    • 链表实践:通过键盘输入一些整数,建立一个链表;实现节点插入、删除、输出操作;使用冒泡排序法或者选择排序法根据数值大小对链表进行排序。

    • 第4章代码检查:运行PP28,PP28的程序,根据个人学号输入后缀表达式并计算。

    • LinkedStack补全:实现size、isEmpty和toString等方法并进行测试。

    • 第5章代码检查:运行课本P72-P73凯撒密码程序。

    • 杨辉三角(选做题):使用循环队列输出杨辉三角。

    • 栈队列测试题:完成第六题的分析。

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

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

    • ASL测试:已知线性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,计算其ASL。

    • 三种查找算法练习:画出三种算法的存储形式和并计算ASL。

    • 哈希冲突处理实践:把自己的学号加21,例如学号为1,把22添加到序列{11,78,10,1,3,2,4,21}后面,使用链地址法,解决冲突,同时计算ASL,输出冲突次数。

    • 希尔排序测试:当D2等于2时,写出第2趟排序结果。

    • 树-计算题:计算下列三道题

      • 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,利用数组构造一颗大顶堆,并排序。

    • 十字链表练习:依照图画出十字链表结构。

    • 最小生成树:依照图完成下列操作

      • 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周最多,因为在团队项目编程,因为学期中和学期初相对较低。这是有效学习时间,实际所用的学习时间肯定比这个多很多。

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

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

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

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

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

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

    你觉得这门课老师应该停止做哪一件事情?

    • 我想不到了,我觉得本学期做的事都比较合理。

    你觉得这门课老师应该开始做什么新的事情?

    • 提供更多的答疑机会。

    其他

    百词斩的单词

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

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

  • 相关阅读:
    MongoDB 学习笔记之 MongoDB导入导出
    快学Scala 第十四课 (读取行,读取字符, 控制台读取)
    MongoDB 学习笔记之 权限管理基础
    MongoDB 学习笔记之 索引
    MongoDB 学习笔记之 游标
    MongoDB 学习笔记之 查询表达式
    MongoDB 学习笔记之 基本CRUD
    MongoDB 学习笔记之 入门安装和配置
    Eclipse设置JVM的内存参数
    cron表达式详解
  • 原文地址:https://www.cnblogs.com/zhangyeye233/p/10199237.html
Copyright © 2011-2022 走看看