20162315 2016-2017-2 《程序设计与数据结构》课程总结
每周作业链接汇总
预备作业
- 预备作业01
- 学习markdown语法,回答四个问题:1.你对专业的期望是什么?2.你上过的课程中老师提供的最大帮助是什么?3.你期望的师生关系是什么样的?4.我们课程要你两学期实践10000行代码,你觉得这个负担大吗?
- 预备作业02
- 回答五个问题:1.你有什么技能比大多数人(超过百分之九十以上)更好?2.针对这个技能的获取你有什么成功的经验?3.与老师博客中的学习经验有什么共通之处?4.与老师博客中的学习经验有什么共通之处?5.你对《程序设计与数据结构》的学习有什么具体的目标?
- 预备作业03
- 安装虚拟机,学习实验楼中Linux的教程。为下个学期的学习做准备。
每周学习总结
- 第一周
- 初步了解Java,编写简单的打印文本的程序。
- 第二周
- 本周学习了教材的第二章数据与表达式,在这一章里我们的代码开始设置变量,和通过表达式计算这些变量。
- 第三周
- 本周学习了教材第三章使用类和对象的类容,String与Math等一些类,学习了格式化的方法,赋值与地址的区别。
- 第四周
- 本周主要了解了条件语句与循环语句。
- 第五周
- 本周学习第五章编写类。在这一章里我们开始学习如何自己去编写一个类并且创建测试类来驱动。
- 第六周
- 本周学习了子类,了解了Java中的三个可见性修饰符:private,protected,public。
- 第七周
- 本周学习了Java三大特性中的多态和它的引用方法以及接口的实现。
- 第八周
- 本周学习了对异常的定义以及它与错误的区别,以及如何去抛出异常,如何处理。了解IO流。
- 第九周
- 本周学习数据库的一些类型,连接,创建库的基本操作。
自认为写的最好的一篇博客/作业中阅读量最多的一篇博客是:
- 第六周学习总结
- 理由:这篇博客里教材学习内容总结中有具体的重要的笔记内容,即使是现在的我看这篇博客仍然能有收获。在教材问题解决里叙述了我查阅网络资料解决一个问题的过程,还附上了我的参考地址。在问题解决里也详述了我的编码问题解决过程。这篇博客也是我们结对第一次思考实际问题的解决的记录。
作业中阅读量最多/师生交互最多的一篇博客是:
- 第五周学习总结
- 经验:很惭愧,这篇博客阅读量最多大概是因为这篇博客里我的markdown语法不正确,git记录也有问题,多次与老师交流互动才阅读量最高的吧。以后争取写出高质量的博客,吸引更多的同学阅读。
- 收获:与老师交流要抱着诚恳的态度,这种博客中反复多次的交流会让我改掉很多以前错误的做法和想法。我在之前一直没有认真使用markdown语法,截图也是以图片链接的形式截的,这次交流让我彻底改掉了这些习惯。
代码托管链接
- statistic.sh运行结果。
- 加上在IDEA上和结对编程项目上的代码应该在3500行左右。这与一个学期5000行的目标仍有不小的差距。从这个暑假开始要更加努力了。
- 编程的智慧中提到过,代码的数量并不是编程水平的标准,但是没有大量的代码一定是无法提高编程水平的。修改与提炼自己的代码是提升的方法。在老师和书本的刻意规范下,我们的代码从一开始就朝着规范化的方向走。在代码的模块化,变量名的启用上,我们从一开始就在接受规范化的思想。对于编程的智慧里,我体会最深的是对复杂函数的提炼与调用。之前在xp实验里面我在代码重构里面就是用过IDEA自带的提炼函数的功能,这使代码大为简化。一味地写代码并不是好的路,对自己的代码进行修改与提炼让它走向更完善的方向是最好的。
- 这个学期对于“积极主动敲代码”这个学习目标来说,并没有很好的实现。学习教材代码的时候有时候都是压到最后才开始敲。课堂练习不会的有时候也懒于思考,直接请同学来讲解。教材实践上我最大的经验教训时不要打完代码运行通过就结束了,要与同学思考交流更好的编程思路。
课堂实践项目
课堂项目链接
-
使用JDK编译、运行简单的Java程序。
使用Eclipse;编辑、编译、运行、调试Java程序;IDEA的安装与使用。 -
初步掌握单元测试和TDD
理解并掌握面向对象三要素:封装、继承、多态;初步掌握UML建模;熟悉S.O.L.I.D原则;了解设计模式。 -
模拟实现sort的排序功能
-
模拟实现四则运算出题判题。
-
实现出题去重功能。
-
在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能;在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例;完成重构内容的练习,下载搭档的代码,至少进行三项重构;以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
-
学习Android开发。
-
学习TCP传输方式,建立客户端与服务器链接,进行计算器的客户端输入和服务器处理输出,并且逐步加密。
-
建立与world数据库的连接并且尝试使用查询语句。
-
课堂实践对提高应用能力有帮助吗?
-
课堂实践让我们把之前从书本上学到的和自己积累的知识拿出来完全靠自己实现,有助于把知识真正的内化消化。
-
课堂实践上自己有什么经验教训?
-
做不出来的下课一定要尽早寻求帮助,不要拖,不然很难再认真思考自己应该怎么实现代码,而是指望着别人写完了照着抄。
-
课堂实践上对老师有什么教学建议?
-
希望老师课堂实践的内容给的时间再长一点,给我们更多的思考时间。
课堂收获与不足
- 自己的收获
- 这半个学期自己投入在java学习中的时间虽然不及最顶尖的同学,但是花费时间也并不少,在这个学期的学习中,我学到的更多的是通过所给资料进行自主学习以及与同学进行结对互相学习的能力。
- 自己需要改进的地方?
- 代码还需要继续敲,这个学期书本内容学完之后除了课堂实践与实验的内容就很少敲代码了,应该保持每周敲一定量的新代码或者修改以前代码的习惯。
- 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议?
- 这学期其实更多的是我向我的结对同伴索取帮助,对他的帮助很少,四则运算他独自完成了绝大部分的任务,但在之后的学习和结对项目的实现上我们一直共同努力着,他教我我不会的方法,我帮他理清如何实现的思路。在这种互相学习中我们明显比之前代码学习时只靠自己去学习进步要快速许多。
我觉得结对学习的方式也可以推广给其他科目老师,至少现在我和我的结对搭档经常结对复习将要考试的科目。
给开学初的你和学弟学妹的学习建议
- 如果重新学习这门课,怎么做才可以学的更好?
- 首先大概是学习投入时间吧,周一到周五要更多的投入一些,不能把任务放在周六周日一起思考。对自学的资料也要有更深的学习,不能仅限于了解过的程度。
- 下学期有什么可行的计划提升学习效果?
- 下学期我会把每周的任务细化到每天,不会再出现某两天一直在学java而过两天一行代码不敲的现象。
问卷调查
- 你平均每周投入到本课程有效学习时间有多少?
- 6到8个小时。
- 每周的学习效率有提高吗?你是怎么衡量的?
- 到了后期学习效率有明显的提高,因为明显的感觉到学习的目的更加明确,掌握新的知识与应用的节奏明显加快。
蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗? - 蓝墨云班课锁定提交时间对我在规定时间内完成任务有很大的帮助。暂时没有什么建议或意见。
- 你觉得这门课老师应该继续做哪一件事情?
- 继续进行课堂前测试。
- 你觉得这门课老师应该停止做哪一件事情?
- 在临近期末的时候进行两周的结对实验的大项目。
- 你觉得这门课老师应该开始做什么新的事情?
- 能对每周的书本上的pp做一些简单的讲解。
项目二维码
- 总二维码链接