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

    标题:学号 2018-2019-1《程序设计与数据结构》课程总结
    第一周作业第一周主要学习了有关代码质量的内容以及关于算法的复杂度计算。
    第二周作业第二周主要学习了栈的有关知识。
    第三周作业第三周主要学习了队列的有关知识。
    第四周作业第四周主要学习了列表的有关知识。
    第五周作业第五周主要学习了有关排序和查找的知识。
    第六周作业第六周主要学习了有关树的知识特别是二叉树的知识。
    第七周作业第七周主要学习了有关二叉查找树的知识。
    第八周作业第八周博客主要学习的是有关堆的知识。
    第九周作业第九周博客主要学习的是有关图的知识。

    THE TWO QUESTIONS ABOUT THE BLOG

    -自认为写得最好一篇博客是?为什么?
    自认为写的最好的一篇博客是第九周博客,因为在这篇博客中我对图的各个内容都作出了我能力范围之内的最好的解释。而且针对每个需要进行展示的内容,我都进行了手工绘图(当然还是借助了电脑上的工具,但是图都是自己画的。)
    作业中阅读量最高的一篇博客是?谈谈经验
    我作业中阅读量最高的一篇博客是第一周作业总结。我认为我的这篇博客之所以阅读量最高,是因为我对教材的知识的总结概括比较精炼,独到。

    实验报告链接汇总

    实验一
    -实验1
    链表练习,
    通过键盘输入一些整数,建立一个链表

    -实验2
    链表练习
    实现节点插入、删除、输出操作

    -实验3
    链表练习,
    使用冒泡排序法或者选择排序法根据数值大小对链表进行排序
    在排序的每一个轮次中, 打印元素的总数,和目前链表的所有元素。

    -实验4
    数组练习,要求实现下列功能:
    通过键盘输入一些整数,建立一个数组
    数组插入、删除、输出操作

    -实验5
    数组练习,要求实现下列功能:
    使用冒泡排序法或者选择排序法根据数值大小对数组进行排序(2分);
    如果你学号是单数, 选择选择排序, 否则选择冒泡排序。
    在排序的每一个轮次中, 打印元素的总数,和目前数组的所有元素。

    实验二
    -实验1:实现二叉树
    参考教材p212,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)
    用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
    课下把代码推送到代码托管平台
    -实验2:中序先序序列构造二叉树
    基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如给出中序HDIBEMJNAFCKGL和后序ABDHIEJMNCFGKL,构造出附图中的树,用JUnit或自己编写驱动类对自己实现的功能进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息
    -实验3:决策树
    自己设计并实现一颗决策树,提交测试代码运行截图,要全屏,包含自己的学号信息,课下把代码推送到代码托管平台
    -实验4:表达式树
    输入中缀表达式,使用树将中缀表达式转换为后缀表达式,并输出后缀表达式和计算结果(如果没有用树,则为0分),提交测试代码运行截图,要全屏,包含自己的学号信息,课下把代码推送到代码托管平台
    -实验5:二叉查找树
    完成PP11.3,提交测试代码运行截图,要全屏,包含自己的学号信息,课下把代码推送到代码托管平台
    -实验6 : 红黑树分析
    参考本博客:点击进入对Java中的红黑树(TreeMap,HashMap)进行源码分析,并在实验报告中体现分析结果。.
    实验三
    查找与排序-1
    定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,完成测试。
    实验三-查找与排序-2
    重构你的代码
    把Sorting.java Searching.java放入 cn.edu.besti.cs1723,把测试代码放test包中重新编译.
    实验三-查找与排序-3
    参考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中补充查找算法并测试.
    实验三-查找与排序-4
    补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
    测试实现的算法(正常,异常,边界)
    实验三-查找与排序-5
    编写Android程序对各种查找与排序算法进行测试

    团队项目报告链接汇总

    团队项目链接

    代码托管链接

    statistic.sh的运行结果

    根据idea的脚本显示本学期我的代码量是足够的了。

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

    编程的智慧我看过了一遍,不过从头再次读起又会有不一样的感受,其实我们都知道,所谓编程就是利用已经建设好的编程语言语言的逻辑去实现我们想要的功能,具体来解释的话。编程其实跟写文章类似。就是用每个人都认识的字符去写出属于自己的文章。然而编程又与写文章不同,因为写文章你可以使用一些修辞手法比喻夸张,甚至有时为了所谓的文学效果,所写出的文章的逻辑用常理难以解释。这是编程所需要忌讳的。编程最能容忍错误的地方也就是命名和注释这两个地方了。其他地方甚至不能容忍一丁点的错误。其实每个编程的人呢都有过类似的经历,就是盯着一个项目很长时间,命名自己的逻辑和语法都感觉无可挑剔,但是idea却总是无情的给你显示出一个又一个红色字体,让你心烦,让你不安。所以我们在写代码时就要额外主义一些问题,那就是一些编程的智慧。能够用两行代码实现的功能就不要用10行代码去实现。还有需要封装的地方一定要使用大括号。我们平时也可以积累一些常用的算法的代码。储存起来,然后在需要使用的时候直接调用就可以了。
    积极主动敲代码做到没?教材实践上有什么经验教训?
    积极主动敲代码基本上是做到了。因为如果不通过自己的实践的话有时很难真正理解一段代码的作用的。教材实践时有时会发现教材上有时也会出现错误。不知是版本不匹配,或是作者疏忽了,亦或是译者的失误,反正给我们带来了很多疑惑,所以我认为尽信书不如无书。有时要对教材的不正确的内容提出提出质疑。不要迷信权威。

    课堂项目实践

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

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

    上课一定要认真听讲

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

    老师做的很好了。

    课程收获与不足

    学习了线板学期的数据结构之后,我觉得自己对java的各个基础的数据结构的理解更加深刻了。而且运用起来也更加娴熟,同时我也见识到了自己所学的知识只是那漫漫代码中的沧海一粟,想要真正的不断提升自己,那么我还要不断地去学习借鉴他人的代码。不断地去时间,去尝试。去学习。
    自己的收获
    自己学会了很多有用的数据结构。
    自己需要改进的地方
    还是需要对自己严格要求
    结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
    结对学习严格贯彻了我并没有有提供什么帮助因为大家的自主性还是很强的。没有对老师的建议。

    问卷调查

    • 你平均每周投入到本课程有效学习时间有多少?
      20~30个小时
    • 每周的学习效率有提高吗?你是怎么衡量的?
      一般。与其他同学进行比较。
    • 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
      有促进。没有建议。
    • 你觉得这门课老师应该继续做哪一件事情?
      继续教这门课。
    • 你觉得这门课老师应该停止做哪一件事情?
      熬夜。

    博客中涉及的链接

  • 相关阅读:
    Javascript小技巧
    VIM
    interview experience
    HTML5
    代码实践
    git clone 速度慢的解决办法
    vscode 找不到相对目录文件的解决办法
    python基础 13 类命名空间于对象、实例的命名空间,组合方法
    python 基础 12 初识类,类方法,类属性
    python 基础 11 带参数装饰器与递归函数
  • 原文地址:https://www.cnblogs.com/15248252144dzx/p/10154884.html
Copyright © 2011-2022 走看看