《Java程序设计》教学进程

《Java程序设计》教学进程

目录

考核方式

参考「《Java程序设计》 课程教学」中的考核方式。

返回目录

课前准备

课程基础

预备作业

  • 预备作业01:你期望的师生关系是什么?: 让同学们了解「Trainer/Trainee」是最好的师生关系,让同学们对即将到来的翻转课堂有个心理准备,让同学们对即将到来学习任务,学习压力有个心理准备,副作用是让同学们学会了Markdown。

  • 预备作业02 : 体会做中学(Learning By Doing):让同学们了解「做中学(Learing By Doing)」的学习方法与刻意训练在技能获取中的重要性,进一步理解有学习压力的必要性,副作用是让同学们展示自己,老师了解学生,同学们之间加深交流了解。

  • 预备作业03:课程基础:利用搜商,打下课程的Linux基础,初步体会什么叫学习上的举一反三,融会贯通。老师教十个你会六个就及格了?不,应该是老师教十个,你会一百个个乃至更多,至少具备这样的潜能。

返回目录

教学进程

学习方法

  1. 进度很重要:注意前紧后松,必须跟上每周的进度,教材阅读与总结,教材上的练习,问答小组,项目。我和助教们会认真对待每一位同学,请你不要因为困难而放弃,坚持下来,会发现自己的不可思议。

  2. 问答很重要:遇到知识难点请多多提问,这是你的权利更是您对自己负责的义务。问答到课程讨论小组,提问请阅读一下「如何提问」,答疑注意事项.

  3. 实践很重要:解决书中习题,实践教材中实例,完成个人和团队项目,才算真的消化了课程内容。可以通过实验楼课程配套环境或自己安装的虚拟机在实践中进行学习.实践时参考「积极主动敲代码,使用Junit学习Java程序设计」。

  4. 学习总结、实验报告很重要:总结学习与实践中的问题,得到老师和同学们的反馈,是进步的捷径。学习完成后在博客园中把学习过程通过博客(随笔)发表,博客标题「学号 2016-2017-2 《Java程序设计》第x周学习总结」

总结模板(Markdown)如下:


# 学号 2016-2017-2 《Java程序设计》第X周学习总结

## 教材学习内容总结

尽量简单的总结一下本周学习内容
尽量不要抄书,浪费时间
看懂就过,看不懂,学习有心得的记一下

## 教材学习中的问题和解决过程

教材学习有问题先去[https://shimo.im/doc/1i1gldfsojIFH8Ip/](https://shimo.im/doc/1i1gldfsojIFH8Ip/)看看,如果别人没有提出相同问题,可以编辑文档添加,然后把自己提出的问题复制到下面:

- 问题1:XXXXXX
- 问题1解决方案:XXXXXX
- 问题2:XXXXXX
- 问题2解决方案:XXXXXX
- ...

## 代码调试中的问题和解决过程

教材中代码调试有问题先去[https://shimo.im/doc/1i1gldfsojIFH8Ip/](https://shimo.im/doc/1i1gldfsojIFH8Ip/)看看,如果别人没有提出相同问题,可以编辑文档添加,然后把自己提出的问题复制到下面:

- 问题1:XXXXXX
- 问题1解决方案:XXXXXX
- 问题2:XXXXXX
- 问题2解决方案:XXXXXX
- ...

## [代码托管](码云学习项目链接)

(statistics.sh脚本的运行结果截图)

## 上周考试错题总结
- 错题1及原因,理解情况
- 错题2及原因,理解情况
- ... 

## 结对及互评

### 评分标准

1. 正确使用Markdown语法(加1分):
    - 不使用Markdown不加分
    - 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    - 排版混乱的不加分
2. 模板中的要素齐全(加1分)
    - 缺少“教材学习中的问题和解决过程”的不加分
    - 缺少“代码调试中的问题和解决过程”的不加分
    - [代码托管](链接)不能打开的不加分
    - 缺少“结对及互评”的不能打开的不加分
    - 缺少“上周考试错题总结”的不能加分
    - 缺少“进度条”的不能加分
    - 缺少“参考资料”的不能加分

3. 教材学习中的问题和解决过程, 一个问题加1分

4. 代码调试中的问题和解决过程, 一个问题加1分

5. 本周有效代码超过300分行的(加2分)
    - 一周提交次数少于20次的不加分
    
6. 其他加分:
    - 周五前发博客的加1分
    - 感想,体会不假大空的加1分
    - 排版精美的加一分
    - 进度条中记录学习时间与改进情况的加1分
    - 有动手写新代码的加1分
    - 课后选择题有验证的加1分
    - 代码Commit Message规范的加1分
    - 错题学习深入的加1分
    - 点评认真,能指出博客和代码中的问题的加1分
    - 结对学习情况真实可信的加1分
    
7. 扣分:
    - 有抄袭的扣至0分
    - 代码作弊的扣至0分
    - 迟交作业的扣至0分

### 点评模板:

- 博客中值得学习的或问题:
    - xxx
    - xxx
    - ...
- 代码中值得学习的或问题:
    - xxx
    - xxx
    - ...
    
- 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

- [参考示例](http://www.cnblogs.com/haoliberale/p/6580822.html#3650972) 

### 点评过的同学博客和代码

- 本周结对学习情况 
    - [结对同学学号1](博客链接)
    - 结对照片
    - 结对学习内容
        - XXXX
        - XXXX
        - ...
- 上周博客互评情况(只要链接,具体点评放相应博客下)

    - [学号1](博客链接)
    - [学号2](博客链接)
    - [学号3](博客链接)
    - [学号4](博客链接)
    - ...
    
## 其他(感悟、思考等,可选)

xxx
xxx

## 学习进度条

|            | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|
| --------   | :----------------:|:----------------:|:---------------:  |:-----:|
| 目标        | 5000行            |   30篇           | 400小时            |       |
| 第一周      | 200/200           |   2/2            | 20/20             |       |
| 第二周      | 300/500           |   2/4            | 18/38             |       |
| 第三周      | 500/1000          |   3/7            | 22/60             |       |
| 第四周      | 300/1300          |   2/9            | 30/90             |       |


尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:[软件工程软件的估计为什么这么难](http://www.cnblogs.com/xinz/archive/2011/04/05/2005978.html),[软件工程 估计方法](http://www.cnblogs.com/xinz/archive/2011/04/06/2007294.html)

- 计划学习时间:XX小时

- 实际学习时间:XX小时

- 改进情况:

(有空多看看[现代软件工程 课件 
软件工程师能力自我评价表](http://www.cnblogs.com/xinz/p/3852177.html))


## 参考资料

-  [Java学习笔记(第8版)](http://book.douban.com/subject/26371167/) 

-  [《Java学习笔记(第8版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)
-  ...
 

上面模板中用Markdown写的总结的渲染效果如下:

xr

返回目录

第0周学习指导

学习目标

  1. 了解课程上课方式
  2. 做好心理预期

学习资源

  1. 现代软件工程讲义 0 课程概述

    • 师生关系:trainer/trainee
    • 负担与压力:现在辛苦是因为欠帐,现在的努力可以发现自己的不可思议
  2. 现代软件工程 习而学的软件工程教育

    • 编程也一样
    • 学习科学日益主流的观念:从「情景学习」出发,当一名「认知学徒」,它的要点有:
      • 找到学习共同体:因为大量知识存在于学习共同体的实践中,不是书本中,所以有效的学习不是关门苦练,而是找到属于自己的学习小团体。如程序员在类似于github这样的网站练习编程。
      • 隐性知识显性化:隐性知识是使人们有能力利用概念、事实以及程序来解决现实问题的知识。
      • 模仿榜样:榜样可以是现实生活中的导师,也可以是网上的导师;
      • 培养多样性:在多种情境中实践,以此强调学习广阔的应用范围。如裁缝出师并不是已经练习了一万小时,而是能够缝制出足够好的,各种各样的衣服。
  3. 现代软件工程讲义 1 软件工程概论: 程序和软件的不同

  4. 为什么一定要自学?:善于自学的人,最终会形成一个重要的能力:融会贯通。

  5. 做中学

学习任务

  • 阅读以上博客

返回目录

第一周学习指导(2.20-2.26)

学习目标

  • 了解Java基础知识
  • 了解JVM、JRE与JDK,并下载、安装、测试JDK
  • 了解PATH、CLASSPATH、SOURCEPATH的作用并会设置
  • 初步使用IDE(推荐IDEA),会编译、运行、调试简单的Java程序

学习资源

学习任务

  • 浏览教材,根据自己的理解每章提出一个问题
  • 认真学习教材第一章、第二章
  • 代码托管到git@OSC, 这样老师和助教才能看到,参考一下使用开源中国托管代码
  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 2016-2017-2 《Java程序设计》第一周学习总结

返回目录

第二周(2.27-3.05)

学习目标

  1. 了解Java编程风格
  2. 认识Java的类型与变量
  3. 掌握Java流程控制的方法(分支、循环)

学习资源

学习任务

返回目录

第三周(3.06-3.12)

学习目标

  • 区分基本类型与类类型
  • 理解对象的生成与引用的关系
  • 掌握String类和数组
  • 理解封装的概念
  • 掌握构造方法的定义
  • 理解重载的概念
  • 掌握static的应用

学习资源

学习任务

返回目录

第四周(3.13-3.19)

学习目标

  • 理解封装、继承、多态的关系
  • 理解抽象类与接口的区别
  • 掌握S.O.L.I.D原则
  • 了解模式和设计模式
  • 能正确覆盖方法
  • 了解垃圾回收机制
  • 掌握Object类
  • 掌握enum

学习资源

学习任务

返回目录

第五周(3.20 - 3.26)

学习目标

  • 理解异常架构
  • 牚握try...catch...finally处理异常的方法
  • 会用throw,throws
  • 理解Collection和Map架构
  • 会用常见的数据结构和算法
  • 了解Lambada和泛型

学习资源

学习任务

返回目录

第六周(3.27 - 4.02)

学习目标

  • 理解流与IO
  • 理解InputStream/OutPutStream的继承架构
  • 理解Reader/Writer继承架构
  • 会使用装饰类
  • 会使用多线程进行并发程序设计

学习资源

学习任务

返回目录

第七周(4.03 - 4.09)

学习目标

  • 了解Lambda语法
  • 了解方法引用
  • 了解Fucntional与Stream API
  • 掌握Date与Calendar的应用
  • 会使用JDK8新的时间API

学习资源

学习任务

返回目录

第八周(4.10 - 4.16)

学习目标

  • 了解NIO
  • 会使用Channel、Buffer与NIO2
  • 会使用日志API、国际化
  • 会使用正则表达式
  • 了解JDK8增强功能

学习资源

学习任务

返回目录

第九周(4.17 - 4.23)

学习目标

  • 了解JDBC架构
  • 掌握JDBC架构
  • 掌握反射与ClassLoader
  • 了解自定义泛型和自定义枚举
  • 会使用标准注解

学习资源

学习任务

返回目录

第十周(4.24 - 4.30)

学习目标

  • 了解计算机网络基础
  • 掌握Java Socket编程
  • 理解混合密码系统
  • 掌握Java 密码技术相关API的使用

学习资源

学习任务

  • 完成学习资源中相关内容的学习

  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 2016-2017-2 《Java程序设计》第十周学习总结

返回目录

第十一周(5.01 - 5.07)

学习任务

返回目录

第十二周(5.08 - 5.14)

学习任务

  • 团队项目
    • 在本周日(5.22) 24:00前发博客介绍项目进展、成员贡献、与计划相符情况、改进措施等

返回目录

第十三周(5.15 - 5.21)

学习目标

学习资源

学习任务

  • 参考实验四 Andoid开发基础 完成实验并在本周日 24:00前发实验报告博客
    • 基于Android Studio开发简单的Android应用并部署测试;
    • 了解Android组件、布局管理器的使用;
    • 掌握Android中事件处理机制。
    • AndroidStudio安装
  • 团队项目

返回目录

第十四周(5.22 - 5.28)

学习目标

学习资源

学习任务

返回目录

第十五周(5.29 - 6.04)

学习目标

学习资源

学习任务

课程总结要求

  • 课程总结:这个总结写的好的会被选出来出成一本博客书,大家认真写一下,被选中的会送你一本。
  • 文中的链接都要配上二维码,可以使用草料二维码工具或博客园的功能,点击自己每篇文章的最下面的微信图标就有二维码:

发表一篇博客

  • 学号 2017-2018-2《Java程序设计》课程总结

    • (按顺序)每周作业链接汇总

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

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

    • 作业中与师生交互最多的一篇博客是?谈谈收获

    • (按顺序)实验报告链接汇总

    • 代码托管链接:

      • 给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?
      • 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
      • 积极主动敲代码做到没?教材实践上有什么经验教训?
    • 课堂项目实践

    • 你有什么项目被加分,谈谈你的经验

      • 优秀作业(给出链接)
      • 总结(给出链接)
      • 项目(给出链接)
      • 教程(给出链接)
      • ...
    • 你有什么项目被扣分,谈谈你的教训

      • 不动手实践
      • 迟交作业
      • 不验收代码
      • ...
    • 课程收获与不足

      • 自己的收获(投入,效率,效果等)
      • 自己需要改进的地方
      • 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
    • 给开学初的你和学弟学妹们的学习建议

      • 如果重新学习这门课,怎么做才可以学的更好
      • 下学期有什么可行的计划提升学习效果?
    • 问卷调查

      • 你平均每周投入到本课程有效学习时间有多少?
      • 每周的学习效率有提高吗?你是怎么衡量的?
      • 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
      • 你觉得这门课老师应该继续做哪一件事情?
      • 你觉得这门课老师应该停止做哪一件事情?
      • 你觉得这门课老师应该开始做什么新的事情?
    • 其他任意发挥

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

返回目录

第十六周(6.05 - 6.11)

学习目标

学习资源

学习任务

返回目录

个人项目

四则运算

词频统计

  • 收集近二十年CET-4(or CET-6)的试题
  • 统计最常用的1000词汇
  • 调用词典API制作电子书

其他

返回目录

团队项目

基本要求

  • 单元测试要不少于产品代码的行数
  • git 提交在函数级别上
  • 对系统进行UML建模
  • 团队合作要有代码规范,风格要一致

逆向Android项目

要求:

  • 至少两人一个团队(总分25*人数)

移动学习之网站(做的好有开发费用支持)

移动学习之Android App(做的好有开发费用支持)

博客园客户端

返回目录

课程学习资源

教材与参考资料

Java API

MOOC & 视频

其他

返回目录


欢迎关注“rocedu”微信公众号(手机上长按二维码)

做中教,做中学,实践中共同进步!

rocedu



如果你觉得本文对你有帮助,请点一下左下角的“好文要顶”和“收藏该文


posted @ 2017-01-06 12:25  娄老师  阅读(5588)  评论(19编辑  收藏  举报