20155228 2016-2017-2《Java程序设计》课程总结
每周作业链接汇总
预备作业1
简要内容
了解「Trainer/Trainee」是最好的师生关系,对即将到来的翻转课堂有个心理准备,对即将到来学习任务,学习压力有个心理准备,副作用是学会了Markdown。
预备作业2
简要内容
了解「做中学(Learing By Doing)」的学习方法与刻意训练在技能获取中的重要性,进一步理解有学习压力的必要性,副作用是展示自己,老师了解学生,同学们之间加深交流了解。
预备作业3
简要内容
利用搜商,打下课程的Linux基础,初步体会什么叫学习上的举一反三,融会贯通。老师教十个你会六个就及格了?不,应该是老师教十个,你会一百个个乃至更多,至少具备这样的潜能。
预备作业链接
第一周作业
简要内容
- 了解Java基础知识
- 了解JVM、JRE与JDK,并下载、安装、测试JDK
- 了解PATH、CLASSPATH、SOURCEPATH的作用并会设置
- 初步使用IDE(推荐IDEA),会编译、运行、调试简单的Java程序
第二周作业
简要内容
- 了解Java编程风格
- 认识Java的类型与变量
- 掌握Java流程控制的方法(分支、循环)
第三周作业
简要内容
- 区分基本类型与类类型
- 理解对象的生成与引用的关系
- 掌握String类和数组
- 理解封装的概念
- 掌握构造方法的定义
- 理解重载的概念
- 掌握static的应用
第四周作业
简要内容
- 理解封装、继承、多态的关系
- 理解抽象类与接口的区别
- 掌握S.O.L.I.D原则
- 了解模式和设计模式
- 能正确覆盖方法
- 了解垃圾回收机制
- 掌握Object类
- 掌握enum
第五周作业
简要内容
- 理解异常架构
- 牚握try...catch...finally处理异常的方法
- 会用throw,throws
- 理解Collection和Map架构
- 会用常见的数据结构和算法
- 了解Lambada和泛型
第六周作业
简要内容
- 理解流与IO
- 理解InputStream/OutPutStream的继承架构
- 理解Reader/Writer继承架构
- 会使用装饰类
- 会使用多线程进行并发程序设计
第七周作业
简要内容
- 了解Lambda语法
- 了解方法引用
- 了解Fucntional与Stream API
- 掌握Date与Calendar的应用
- 会使用JDK8新的时间API
第八周作业
简要内容
- 了解NIO
- 会使用Channel、Buffer与NIO2
- 会使用日志API、国际化
- 会使用正则表达式
- 了解JDK8增强功能
第九周作业
简要内容
- 了解JDBC架构
- 掌握JDBC架构
- 掌握反射与ClassLoader
- 了解自定义泛型和自定义枚举
- 会使用标准注解
第十周作业
简要内容
- 了解计算机网络基础
- 掌握Java Socket编程
- 理解混合密码系统
- 掌握Java 密码技术相关API的使用
每周作业链接
自认为写得最好一篇博客是?为什么?
我自认为写得最好的一片博客是预备作业3。这篇博客是在寒假的时候写的,主要内容是介绍安装虚拟机和乌班图系统以及使用git的过程步骤和问题解决,还有就是在实验学习linux系统的学习总结。这次博客大概花了将近一个月的时间写,一般是每天学习结束过后写博客作为复习总结。寒假一个月的时间我对linux有了初步的认识,常见的命令略知一二。博客中的很多内容摘抄自实验楼,然后加入了自己的理解和认识,用自己的话把知识阐述一遍加深了记忆。
作业中阅读量最高的一篇博客是?谈谈经验
预备作业3这篇博客是对寒假学习linux系统的总结,内容丰富实用用娄老师的话来说第一次课堂测试的考点基本上全部都覆盖到了,查阅方便有时我记不清有的知识点能通过目录很快查阅到结果。开学的时候看到有些同学把我的博客直接打印出来了学习,还是有一点成就感的。
作业中与师生交互最多的一篇博客是?谈谈收获
第一周作业主要是和老师讨论关于git的使用的问题。当时刚刚开始使用git对其理解不深遇到很多问题都没有很好地解决,老师在评论区主要是做指点引导,帮我培养独立思考解决问题的思维和能力,我在老师的耐心教导下不仅解决了问题,而且对git的使用有了更多的了解。
实验报告链接汇总
实验一《Java开发环境的熟悉》实验报告
实验内容
- 使用JDK编译、运行简单的Java程序;
- 使用IDEA 编辑、编译、运行、调试Java程序。
实验二 Java面向对象程序设计
简要内容
- 初步掌握单元测试和TDD
- 理解并掌握面向对象三要素:封装、继承、多态
- 初步掌握UML建模
- 熟悉S.O.L.I.D原则
- 了解设计模式
实验三 敏捷开发与XP实践
简要内容
- XP基础
- XP核心实践
- 相关工具
实验四 Android开发基础
简要内容
- 基于Android Studio开发简单的Android应用并部署测试;
- 了解Android、组件、布局管理器的使用;
- 掌握Android中事件处理机制。
实验五 Android开发基础
简要内容
- 1.掌握Socket程序的编写;
- 2.掌握密码技术的使用;
- 3.设计安全传输系统。
实验报告链接
代码托管链接
给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?
这学期代码既定目标5000行,实际完成4600行。前半学期主要是把书上的代码抄到IDEA中运行观察,学习代码的编写思路,体会解决问题的技巧。后半学期主要是做实验的时候写代码,我后来感觉到代码的管理还是很重要的,有时候设计一个程序需要实现多个功能之间的联系配合。我的代码命名是代码的编写时间,但是时间长了我都忘了代码的内容是什么了所以以后我觉得应该把工程名设置为时间日期而把类的名称设置为功能会比较好。
加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
前半学期是Java的入门阶段我也尝试过完全独立自己写代码但是问题很多后来先把书上代码抄到IDEA中运行观察结果然后尝试自己去修改代码,修改代码的过程我觉得可以不仅可以加深对知识的理解还可以培养自己的编程能力。学习别人代码中的编写思路技巧并试着放到自己的代码中久而久之就有了自己的风格。后半学期做实验的时候有时候也不需要自己完全把程序每个部分的代码都写出来,通过网络获取代码根据自己的需要进行处理后就可以直接使用了。
积极主动敲代码做到没?教材实践上有什么经验教训?
我在后半期的学习中就没有很重视书上的代码了,一方面是学习深入难度变大理解起来比较费劲,另一方面我把主要精力放到研究理论和实验去了,我觉得还是应该保证一定的抄书上的代码的时间,有时候长时间看不懂的内容运行一遍就懂了。
代码托管链接
课堂项目实践
参考2016-2017-2 《Java 程序设计》课堂实践项目
2017-5-10 课堂测试:Arrays和String单元测试
简要内容
- 在IDEA中以TDD的方式对String类和Arrays类进行学习
- 测试相关方法的正常,错误和边界情况
- String类
- charAt
- split
- Arrays类
- sort
- binarySearch
- 提交运行结果截图和码云代码链接,截图没有水印的需要单独找老师验收才有成绩
2017-5-10 课堂测试:MySort
简要内容
- 模拟实现Linux下Sort-t:-k2的功能。参考Sort的实现。提交码云链接和代码运行截图。
import java.util.*;
public class MySort1 {
public static void main(String [] args) {
String [] toSort = {"aaa:10:1:1",
"ccc:30:3:4",
"bbb:50:4:5",
"ddd:20:5:3",
"eee:40:2:20"};
System.out.println("Before sort:");
for (String str: toSort)
System.out.println(str);
Arrays.sort(toSort);
System.out.println("After sort:");
for( String str : toSort)
System.out.println(str);
}
}
2017-5-31 课堂测试:编写MyOD.java
简要内容
- 编写MyOD.java:用java MyOD XXX实现Linux下od -tx -tc XXX的功能
- 提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。
课堂实践链接
课堂实践对提高应用能力有帮助吗?
我认为有一定帮助。课堂实践不仅是对过去知识的复习,也是对应用能力的提高。我觉得以后课堂实践可以继续进行。
课堂实践上自己有什么经验教训?
提前准备好之前写好的代码,免得到时候慌慌张张去找。老师讲的时候仔细听最好再做点记录,写不下来就拍下来。
课堂实践上对老师有什么教学建议?
课堂时间多给点时间。有的题目需要思考时间有的功能的实现也需要尝试,还有虚拟机本来就比较慢再运行IDEA就更卡了所以很多时间都在等待,等待IDEA打开项目,等待代码联想,等待git上传代码。我给虚拟机分配了4个G的内存装了虚拟机增强功能都是这样,很多同学不想用虚拟机就是因为电脑根本带不动在虚拟机上运行IDEA。
课程收获与不足
- 自己的收获(投入,效率,效果等)
我觉得Java学到的不仅是Java编程的知识还有主动解决问题的能力。也许后者的对今后的学习工作的作用还会更大的帮助。学了一学期Java还是比较辛苦的,花的时间精力很多遇到的问题也不少,有时候也觉得很头疼困难解决不了。有时候感觉到还是效率比较低,我希望以后老师能在课堂上讲讲书上的重点难点,有的时候感觉自学搞半天不如老师指导一下关键点来的快。。但是也接触到了很多新鲜事物,学会很多感觉很厉害的东西,我现在还记得安卓开发实验的时候自己写的应用在手机上运行出来的时候真的是非常激动啊。很多时候写了很久的代码运行出来真的很有成就感。
- 自己需要改进的地方
学了一学期Java大概知道做中学大概的模式了,我想我应该再多花点功夫到看书看资料上去,有时候遇到问题翻翻书就解决了,有时候还是对教材不够熟悉。教材还是最根本最主要的资料,我觉得有时候还是没有静下心来好好看看教材。所以以后还是得继续努力。
- 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供
我感觉我和搭档做的还是不错,我们两个总是先自己研究问题然后选个时间集中讨论问题,我觉得这样子比遇到问题马上讨论要好。有些问题多想想就知道怎么回事了,有的问题等等再问整理一下思路和语言再讨论容易找到重点,讨论效率比较高。更重要的是我想,遇到问题马上就问容易打扰别人的思考。
参考建议
给开学初的你和学弟学妹们的学习建议:在学习中问题肯定会是遇到的,但最终都是会得到解决的,不要畏惧困难
如果重新学习这门课,怎么做才可以学的更好:也许更多的主动与老师在群里交流沟通会有帮助
下学期有什么可行的计划提升学习效果?抓紧时间提高效率不要磨叽不要把问题拖到以后解决
问卷调查
- 你平均每周投入到本课程有效学习时间有多少?大约7-9小时
- 每周的学习效率有提高吗?你是怎么衡量的?有一定提高,看书逐渐知道应该挑重点看,集中解决难点的问题。
- 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?有一定帮助,有了问题求助比较方便。希望老师多看看答疑活动,有的问题想要得到尽快解答。
- 你觉得这门课老师应该继续做哪一件事情?课堂实践
- 你觉得这门课老师应该停止做哪一件事情?
- 你觉得这门课老师应该开始做什么新的事情?教材习题讲解