20182328 2018-2019-1《程序设计与数据结构》课程总结
20182328 2018-2019-1《程序设计与数据结构》课程总结
FROM->>TO: How are you?
2019年9月4日-2019年12月31日-->From start to end
本学期的程序数据和数据结构课程到这里就告一段落了,接下来就让我们一同回顾这学期的点点滴滴。
每周作业链接汇总
- 第一周作业
- 第一次学习了Linux操作系统,Java程序的基本结构还有程序开发的步骤过程及注意事项
- 第二周作业
- java中基本数据类型和其转换,如何使用表达式,以及读入用户输入的方法。
- 第三周作业
- 类的概念及用法,使用类与对象来进行各种复杂操作,还有枚举这一特殊类型。
- 第四周作业
- 第一次在idea上进行操作和编写代码,对类和对象进行了更深入的了解,还学习了方法的设计重载。
- 第五周作业
- 学习了java中的继承,还有函数的构建,类层次结构的具体介绍,方法的重写。
- 第六周作业
- 学习了第九章和第十章的有关内容,即多态和异常,主要内容包括多态后邦定,继承实现多态,接口,异常处理,try-catch语句,异常传播异常类的层次,I/O异常。
- 第七周作业
- 学习了第12章、第14章和第15章的有关内容,主要内容为算法分析,集合以及用于实现集合的基本数据结构,特殊集合-栈的定义和相关操作,队列的处理过程以及实现。
- 第八周作业
- 学习了查找与排序,查找主要包括线性查找、二分查找、哈希表查找等查找算法,排序主要包括冒泡排序、快速排序、归并排序等排序算法。
- 第九周作业
- 主要学习了树和二叉树的实现,具体内容为树的四种遍历方法:先序遍历、中序遍历、后序遍历、层序遍历还有二叉树添加、查找、插入、删除元素的算法以及维护平衡二叉查找树的算法。
- 第十周作业
- 图的概念:图是由非空的顶点集合和一个描述顶点之间关系的集合组成
图的种类:无向图、有向图、无向树、有向树
图的算法:广度优先遍历、深度优先遍历、最小生成树
- 图的概念:图是由非空的顶点集合和一个描述顶点之间关系的集合组成
自认为写得最好的一篇博客是?为什么?
- 第十周作业
- 原因:积累了一学期的经验写出来的博客,技术比以往要娴熟的多,不仅排版比以前要整齐,内容也比以前要充实。
作业中阅读量最高的一篇博客是?谈谈经验
- 第六周作业
- 经验:可能是因为这篇博客交的比较早,所以看得人比较多,也没啥经验,作业交的越早越好吧。
实验报告链接汇总
- 实验一 Linux基础编辑
- 简要内容:
基于命令行和IDE进行简单的Java程序编辑、编译、运行和调试。
练习Linux基本命令;
学习Java程序的JDB调试技能
编写简单的Java程序。
- 简要内容:
- 实验二 编写简单的计算器
- 简要内容:
(1) 编写简单的计算器,完成加减乘除模运算。
(2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
(3) 编写测试代码,测试验证。
- 简要内容:
- 实验三 初步掌握IDEA的使用
- 简要内容:
(1) 初步掌握单元测试和TDD。
(2) 理解并掌握面向对象三要素:封装、继承、多态。
(3) 初步掌握UML建模。
- 简要内容:
- 实验四 结对编程实践
- 简要内容:
(1) Java Socket编程
(2) Java和密码学
(3) 结对编写有理数/复数计算器
(4) 结对编写远程有理数/复数计算器
- 简要内容:
- 实验五 Android Stuidio的安装测试
- 简要内容:
1.Android Stuidio的安装测试
2.Activity测试
3.UI测试
4.布局测试
5.事件处理测试
- 简要内容:
- 实验六 链表练习
- 简要内容:
1、线性结构之链表及数组。基础链表建立。
2、实现节点插入、删除、输出操作。
3、使用选择排序法根据对链表进行排序。
4、在Android上实现上述实验。
- 简要内容:
- 实验七 查找排序实践
- 简要内容:
1、定义一个Searching和Sorting类。
2、重构你的代码,把Sorting.java Searching.java放入cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中。
3、学习各种查找算法并在Searching中补充查找算法并测试。
4、编写Android程序对实现各种查找与排序算法进行测试。
- 简要内容:
- 实验八 二叉树实践
- 简要内容:
1、实现二叉树。
2、中序先序序列构造二叉树。
3、设计并实现一颗决策树。
4、使用树将中缀表达式转换为后缀表达式。
- 简要内容:
- 实验九 图实践
- 简要内容:
1、初始化无向图和有向图
2、完成有向图和无向图的遍历
3、完成有向图的拓扑排序,并输出拓扑排序序列
4、完成无向图的最小生成树
5、完成有向图的单源最短路径求解
- 简要内容:
团队项目报告链接汇总
代码托管链接
A: 说明本学期的代码量目标达到没有?
- 勉强及格吧。。。
A: 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
Q : 编程跟高中学习一样没什么捷径,只有先预习课本,打好扎实的相关知识基础,然后一点一点的耐心敲,遇到卡壳情况,静下心来琢磨下一步怎么敲,若实在是无法解决,可以上网查询或找他人求助,总之,只要肯尝试一切办法,问题总能解决的。
java经常会让人无从下手,遇到这种情况,先从基础的,比较容易的部分入手,才可能更好的去解决更难的问题。
A: 积极主动敲代码做到没?教材实践上有什么经验教训?
Q1: 这学期的代码我没有积极主动地敲代码,基本是在作业的催促下才开始敲,很多代码都是直接模仿的教材上的。
Q2: 不能盲目的照搬课本上的代码,很多实践代码与课本上的代码都大相径庭,正确的做法是踏踏实实把课本上的相关知识学完,再通过学到的基础知识自己去编写代码。
课堂项目实践
- 参考2018-2019-1 《Java 程序设计》课堂实践项目
- 课堂实践链接——蓝墨云
A:课堂实践对提高应用能力有帮助吗?
Q : 对我来说有很大的帮助,课堂实践能及时地对课上学习的内容进行检验,具有很强的及时性和反应性。
A:课堂实践上自己有什么经验教训?
Q : 我本身学的就比较慢,很多时候在课上做半天也做不出来,最后是请教的其它同学。为什么别人能够独立完成而我却不能?
这说明我在课上还是有些纰漏的,有些地方没有认真听讲,还是希望我以后能提高课堂效率,争取最大的课堂学习成果。
A: 课堂实践上对老师有什么教学建议?
Q : 我觉得老师上课前准备的很充分,课堂ppt也做得很好,讲的也很认真,还经常顾及到我们第一遍可能没有听懂,再重新给我们讲一遍,说明老师非常敬业。
课程收获与不足
A: 自己的收获&自己需要改进的地方
收获: 这学期学到的东西太多,我可能还得花大量时间去消化,java果然和C语言大不一样,内容的确相当充实,学习了海量的java基础知识,还见识到了Linux系统和IDEA的两大编程平台,总之,收获颇丰。
改进: 上课的时候要更加专注,看课本的时候要更加仔细,实践的时候要更加独立。
A: 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
Q : 我个人没有很好的贯彻,我和结对伙伴很少一起组队学习,做实践作业基本都是单独完成,但是遇到独自不能解决的问题的时候。还是会相互请教的,在课上的讨论时间也会交流学习。
问卷调查
1.你平均每周投入到本课程有效学习时间有多少?
Q : 一天之内的学习时间不确定,每周大概25小时左右。
2.每周的学习效率有提高吗?你是怎么衡量的?
Q : 有提高,通过我敲代码的速度来衡量的,事实证明,的确比以前快了一些。
3.蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
Q : 有促进,建议方面只是希望上传作业截图的时候能快一点。
4.你觉得这门课老师应该继续做哪一件事情?
Q : 老师请继续保持尽职尽责的精神即可。
5.你觉得这门课老师应该开始做什么新的事情?
Q : 再给同学们多一些答疑的机会,让我们更多的占有负责的助教们。
给出你的总结中涉及到的链接的二维码
-
码云项目链接:
-
预备作业1:
-
预备作业2:
-
第一周作业:
-
第二、三周作业:
-
第四周作业:
-
第五周作业:
-
第六周作业:
-
第七周作业:
-
第八周作业:
-
第九周作业:
-
第十周作业:
-
实验一 :
-
实验二 :
-
实验三 :
-
实验四 :
-
实验五 :
-
实验六 :
-
实验七 :
-
实验八 :
-
实验九 :
-
团队作业一:
-
团队作业二: