2016-2017-2学期《程序设计与数据结构》教学进程

2016-2017-2学期《程序设计与数据结构》教学进程

目录

考核方式

参考「《程序设计与数据结构》 课程教学」中的考核方式。

返回目录

课前准备

课程基础

预备作业

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

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

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

返回目录

教学进程

学习方法

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

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

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

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

总结模板(Markdown)如下:


# 学号 2016-2017-2 《程序设计与数据结构》第X周学习总结

## 教材学习内容总结

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

## 教材学习中的问题和解决过程
- 问题1:XXXXXX
- 问题1解决方案:XXXXXX
- 问题2:XXXXXX
- 问题2解决方案:XXXXXX
- ...

## 代码调试中的问题和解决过程
- 问题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程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)

-  [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)
-  ...
 

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

xr

返回目录

第0周学习指导

学习目标

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

学习资源

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

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

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

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

  5. 做中学:实践,刻意练习

  6. 技能的反面 - 魔方和模仿: 通过不断的练习, 把那些低层次的问题都解决了, 变成不用经过大脑的自动操作, 然后才有时间和脑力来解决较高层次的问题。

  1. 软件开发不是闭卷考试: 对问题的了解,对技术的了解,估计任务的能力, 沟通和管理风险的能力,拒绝的能力

  2. 编程的智慧:反复推敲代码,写优雅的代码,写模块化的代码,写可读的代码,写简单的代码,写直观的代码,写无懈可击的代码,正确处理错误,防止过度工程,

学习任务

  • 阅读以上博客,鼓励发学习体会博客

返回目录

第一周(2.27-3.05)

学习目标

  • 了解Java程序设计语言
  • 掌握Java程序编辑/编译/运行/调试的方法
  • 了解程序开发过程和
  • 了解面向对象三要素
  • 了解解决问题的一般方法

学习资源

学习任务

  • 教材第一章
  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第一周学习总结
    • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
    • 截止时间:本周日 24:00,不按时发博客要扣1分,优秀博客加1分
    • 不按上面的模板写的要重写,否则会扣1分
    • 严禁抄袭,违反者列入立此存照-抄袭作业者的曝光台

返回目录

第二周(3.06-3.12)

学习目标

  • 掌握Java字符串
  • 理解变量并会使用
  • 掌握Java基本数据类型
  • 掌握表达式
  • 会用Scanner类进行输入

学习资源

学习任务

  • 教材第二章
    • 编辑、编译、运行教材上代码,参考「积极主动敲代码,使用Junit学习Java程序设计
    • 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
    • 代码托管到git@OSC,
    • 完成课后自测题,并参考答案学习
    • 完成课后练习题
    • 完成程序设计项目:至少完成PP2.2, PP2.4, PP2.6, PP2.08, PP2.10
    • 有问题去答疑论坛提问,不在微信群和QQ群解答学习问题
    • 课堂考试题目和参考答案在这,每周考核答案,考完核对一下,找出自己做错的题目修正并学习相关知识点,学习成果要在学习博客中体现。重点内容以及错的多的知识点会多次考核
    • 常来这看看自己的成绩,每周更新,排名靠后的,不及格的要努力了,第四周起会对排名靠后的同学加强知道和要求
  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第二周学习总结
    • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
    • 截止时间:本周日 24:00,不按时发博客并提交要扣1分,优秀博客加1分
    • 不按上面的模板写的要重写,否则会扣1分
    • 严禁抄袭,违反者列入立此存照-抄袭作业者的曝光台

返回目录

第三周(3.13-3.19)

学习目标

  • 理解并掌握对象创建
  • 掌握String类的使用
  • 理解包与代码组织
  • 会用常见的类如:Math,Random,NumberFormat,DecimalFormat
  • 会用包装类

学习资源

学习任务

  • 教材第三章
  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第三周学习总结
    • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
    • 截止时间:本周日 24:00,不按时发博客并提交要扣1分,优秀博客加1分
    • 不按上面的模板写的要重写,否则会扣1分
    • 严禁抄袭,违反者列入立此存照-抄袭作业者的曝光台
  • 参考实验一 Java开发环境的熟悉(Linux + Eclipse)Intellj IDEA 简易教程
    完成实验一
    • Eclipse 内容换成IDEA
    • 练习(通过命令行和IDEA两种方式实现)换成前两周项目内容
    • 周五实验课上进行验收:PP1.1,PP1.2,PP2.2, PP2.4, PP2.6, PP2.08, PP2.10
    • 下周日 24:00前发表博客,标题“学号 实验一《Java开发环境的熟悉》实验报告

返回目录

第四周(3.20 - 3.26)

学习目标

  • 理解流程控制
  • 理解并应用布尔运算
  • 掌握分支语句的编写:if...else;switch...case
  • 掌握循环语句的编写:while;do...while;for
  • 理解并应用数组

学习资源

学习任务

  • 教材第4章,第7章
  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第四周学习总结
    • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
    • 截止时间:本周日 24:00,不按时发博客并提交要扣1分,优秀博客加1分
    • 不按上面的模板写的要重写,否则会扣1分
    • 严禁抄袭,违反者列入立此存照-抄袭作业者的曝光台

返回目录

第五周(3.27 - 4.02)

学习目标

  • 理解类与对象
  • 会自定义类
  • 理解方法的作用
  • 了解方法设计的问题
  • 会用UML建模工具
  • 熟悉Java Collection API

学习资源

学习任务

  • 视频:学习云班课中的相关视频
    • 视自己的情况与教材学习二选一或都选
  • 教材第5章
  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第五周学习总结
    • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
    • 截止时间:本周日 24:00,不按时发博客并提交要扣1分,优秀博客加1分
    • 不按上面的模板写的要重写,否则会扣1分
    • 严禁抄袭,违反者列入立此存照-抄袭作业者的曝光台

返回目录

第六周(4.03 - 4.09)

学习目标

  • 理解继承和代码复用
  • 理解抽象类
  • 理解方法重载
  • 会用UML建模工具
  • 熟悉Java多线程API

学习资源

学习任务

  • 视频:学习云班课中的相关视频
    • 视自己的情况与教材学习二选一或都选
  • 教材第8章
  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第六周学习总结
    • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
    • 截止时间:本周日 24:00,不按时发博客并提交要扣1分,优秀博客加1分
    • 不按上面的模板写的要重写,否则会扣1分
    • 严禁抄袭,违反者列入立此存照-抄袭作业者的曝光台

返回目录

第七周(4.10 - 4.16)

学习目标

  • 理解多态
  • 掌握抽象类和接口使用
  • 理解方法覆盖和动态绑定
  • 会用UML建模工具
  • 熟悉Java与密码学相关的API

学习资源

学习任务

  • 视频:学习云班课中的相关视频
    • 视自己的情况与教材学习二选一或都选
  • 教材第9章
  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第七周学习总结
    • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
    • 截止时间:本周日 24:00,不按时发博客并提交要扣1分,优秀博客加1分
    • 不按上面的模板写的要重写,否则会扣1分
    • 严禁抄袭,违反者列入立此存照-抄袭作业者的曝光台
  • 把Eclipse 换成IDEA,参考实验二 Java面向对象程序设计 完成实验并在本周日 24:00前发实验报告博客

返回目录

第八周(4.17 - 4.23)

学习目标

  • 熟悉异常继承体系
  • 掌握异常处理
  • 理解方法覆盖和动态绑定
  • 会用UML建模工具
  • 熟悉Java IO API

学习资源

学习任务

  • 视频:学习云班课中的相关视频

    • 视自己的情况与教材学习二选一或都选
  • Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)第十六章

  • 教材第10章

  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第八周学习总结

    • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
    • 截止时间:本周日 24:00,不按时发博客并提交要扣1分,优秀博客加1分
    • 不按上面的模板写的要重写,否则会扣1分
    • 严禁抄袭,违反者列入立此存照-抄袭作业者的曝光台

第九周(4.24 - 4.30)

学习目标

  • 了解数据库相关基本概念
  • 会用常见的SQL语句
  • 初步掌握MySQL的使用
  • 了解SQLite的使用
  • 熟悉Java 网络编程的API

学习资源

学习任务

  • 视频:学习云班课中的相关视频

    • 视自己的情况与教材学习二选一或都选
  • Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)第22章

  • 教材第21章

  • 参考上面的学习总结模板,把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第九周学习总结

    • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
    • 截止时间:本周日 24:00,不按时发博客并提交要扣1分,优秀博客加1分
    • 不按上面的模板写的要重写,否则会扣1分
    • 严禁抄袭,违反者列入立此存照-抄袭作业者的曝光台

返回目录

第十周(5.01 - 5.07)

学习目标

  • 了解Android开发的一般流程
  • 了解Android
  • 初步掌握MySQL的使用
  • 了解SQLite的使用
  • 熟悉Java 密码学相关的API
  • 了解混合密码系统

学习资源

学习任务

返回目录

第十一周(5.08 - 5.14)

学习任务

返回目录

第十二周(5.15 - 5.21)

学习任务

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

返回目录

第十三周(5.22 - 5.28)

学习目标

学习资源

学习任务

返回目录

第十四周()

学习目标

学习资源

学习任务

返回目录

第十五周(5.29 - 6.04)

学习目标

学习资源

学习任务

后续学习预告

返回目录

第十六周(6.05 - 6.11)

学习目标

学习资源

课程总结要求

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

发表一篇博客

  • 学号 2016-2017-2《程序设计与数据结构》课程总结

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

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

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

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

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

    • 代码托管链接:

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

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

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

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

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

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

      • 你平均每周投入到本课程有效学习时间有多少?
      • 每周的学习效率有提高吗?你是怎么衡量的?
      • 蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
      • 你觉得这门课老师应该继续做哪一件事情?
      • 你觉得这门课老师应该停止做哪一件事情?
      • 你觉得这门课老师应该开始做什么新的事情?
    • 对[谢涛老师]https://home.cnblogs.com/u/vertextao/)的工作给矛评价或建议

    • 其他任意发挥

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

返回目录

个人项目

四则运算

词频统计

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

其他

返回目录

团队项目

基本要求

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

逆向Android项目

要求:

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

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

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

博客园客户端

返回目录

课程学习资源

教材与参考资料

Java API

MOOC & 视频

其他

返回目录


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

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

rocedu



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


posted @ 2016-11-15 06:36  娄老师  阅读(2527)  评论(0编辑  收藏  举报