zoukankan      html  css  js  c++  java
  • 2017-2018-1学期《程序设计与数据结构》教学进程

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

    目录

    考核方式

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

    返回目录

    课前准备

    课程基础

    教学进程

    学习方法

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

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

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

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

    总结模板(Markdown)如下:

    
    # 学号 2017-2018-1 《程序设计与数据结构》第X周学习总结
    
    ## 教材学习内容总结
    
    尽量简单的总结一下本周学习内容
    尽量不要抄书,浪费时间
    看懂就过,看不懂,学习有心得的记一下
    
    ## 教材学习中的问题和解决过程
    (一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。 )
    
    - 问题1:XXXXXX
    - 问题1解决方案:XXXXXX
    - 问题2:XXXXXX
    - 问题2解决方案:XXXXXX
    - ...
    
    
    ## 代码调试中的问题和解决过程
    - 问题1:XXXXXX
    - 问题1解决方案:XXXXXX
    - 问题2:XXXXXX
    - 问题2解决方案:XXXXXX
    - ...
    
    ## [代码托管](码云学习项目链接)
    
    (statistics.sh脚本的运行结果截图)
    
    ## 上周考试错题总结
    - 错题1及原因,理解情况
    - 错题2及原因,理解情况
    - ... 
    
    ## 结对及互评
    
    ### 点评模板:
    - 博客中值得学习的或问题:
        - xxx
        - xxx
        - ...
    - 代码中值得学习的或问题:
        - xxx
        - xxx
        - ...
    - 其他
    
    ### 本周结对学习情况 
        - [结对同学学号1](博客链接)
        - 结对照片
        - 结对学习内容
            - XXXX
            - XXXX
            - ...
    
    ## 其他(感悟、思考等,可选)
    
    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. 编程的智慧:反复推敲代码,写优雅的代码,写模块化的代码,写可读的代码,写简单的代码,写直观的代码,写无懈可击的代码,正确处理错误,防止过度工程,

    学习任务

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

    返回目录

    第一周(9.4-9.10)

    学习目标

    • 了解问题解决的一般方法
    • 了解软件工程基本过程
    • 掌握算法分析的方法
    • 理解渐进复杂度,增长函数

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

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

    返回目录

    第二周(9.11-9.17)

    学习目标

    • 开设团队项目博客
    • 下载Java Collection API源代码,下载工具
    • 掌握Java中泛型类,泛型方法的设计

    学习资源

    学习任务

    • 开设团队项目博客,分配《构建之法》学习内容,提出不少于十个问题
    • 下载Java Collection API源代码,下载工具搭建源码分析环境
    • 掌握Java中泛型类,泛型方法的设计
    • 复习Java开发,调试的内容,Git的内容
    • 建议把学习过程通过博客(随笔)发表,博客标题“学号 《程序设计与数据结构》第二周学习总结
      • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
      • 截止时间:本周日 24:00,优秀博客加1分
      • 严禁抄袭,违反者总成绩清零

    返回目录

    第三周(9.18-9.24)

    学习目标

    • 初步理解穷举和分治的算法设计思想
    • 掌握线性和二分查找算法
    • 掌握各种排序算法

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

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

    返回目录

    第四周(9.25 - 10.1)

    学习目标

    • 理解线性表的概念
    • 掌握用数组和链表实现线性表的方法
    • 熟练应用线性表解决问题
    • 分析Java Collections API中ArrayList和LinkedList的实现

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

    • 参考上面的学习总结模板,完成实验一,通过博客(随笔)发表实验报告,博客标题“2017-2018-1 学号 《程序设计与数据结构》第四周学习总结
      • 提高学习效率,提高写博客效率:尽量少摘抄书上的内容,主要写有疑惑和有收获的内容
      • 截止时间:本周日 24:00,不按时发博客要扣1分,优秀博客加1分
      • 不按上面的模板写的要重写,否则会扣1分
      • 严禁抄袭,违反者总成绩清零

    返回目录

    第五周(10.2 - 10.8)

    学习目标

    • 掌握Java Collections API的基本结构
    • 理解Collection的抽象设计
    • 掌握Collection实现的Java相关技术:继承/多态/泛型/接口
    • 掌握栈的应用
    • 掌握栈的实现(数组,链式)
    • 分析Java Stack API

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

    返回目录

    第六周(10.09 - 10.15)

    学习目标

    • 理解queue抽象数据类型
    • 会用queue解决问题
    • 掌握queue的实现(数组,链表)
    • 分析Java Collections API中queue相关的类

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

    返回目录

    第七周(10.16 - 10.22)

    学习目标

    • 理解树抽象数据类型
    • 会用树解决问题
    • 掌握树的遍历方法
    • 掌握二叉树的实现(数组,链表)
    • 会用二叉树表示决策树
    • 分析Java Collections API中树相关的类

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

    返回目录

    第八周(10.23 - 10.29)

    学习目标

    • 理解二㕚查找树
    • 掌握二叉查找树的实现
    • 掌握二叉查找树的应用
    • 理解平衡二㕚树
    • 分析Java Collections API中树相关的类

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

    返回目录

    第九周(10.30 - 11.05)

    学习目标

    • 理解堆和优先队列
    • 理解堆和优先队列的关系
    • 掌握堆的实现
    • 掌握堆排序的实现
    • 分析Java Collections API中堆和相关的类

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

    返回目录

    第十周(11.06 - 11.12)

    学习目标

    • 理解图与有向图、无向图
    • 理解带权图
    • 会应用带权图
    • 理解图的广度优先遍历和深度优先遍历
    • 掌握最小生成树算法
    • 掌握图的实现

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

    返回目录

    第十一周(11.13 - 11.19)

    学习目标

    • 掌握Hash 函数的实现
    • 理解哈希表中的冲突问题
    • 分析Java Collection API中的Hash 实现

    学习资源

    • 教材:学习指导在这,重点内容,考试内容都有
    • 阅读 「反作弊」:任何时候发现同学们有抄袭作业,抄袭代码的情况,即时课程总成绩清零
    • 云班课PPT

    学习任务

    返回目录

    第十二周(11.20 - 11.26)

    学习目标

    学习资源

    学习任务

    返回目录

    第十三周(11.27 - 12.3)

    学习目标

    学习资源

    学习任务

    返回目录

    第十四周(12.04-12.10)

    学习目标

    学习资源

    学习任务

    返回目录

    第十五周(12.11 - 12.17)

    学习目标

    学习资源

    学习任务

    后续学习预告

    返回目录

    第十六周(12.18 - 12.24)

    学习目标

    学习资源

    课程总结要求

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

    发表一篇博客

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

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

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

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

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

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

      • 代码托管链接:

        • 给出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



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


  • 相关阅读:
    Python-Collections模块之defaultdict
    Python-Collections模块之deque
    Python-Collections模块之NameTuple
    Python-Collections模块之OrderedDict
    @常见的远程服务器连接工具:Xshell与secureCRT的比较!!!(对于刚接触的测试小白很有帮助哦)
    告诉你:传统测试和敏捷测试的区别!!!(比较全的解答,一看便明白)
    @软件测试环境搭建的详细流程(初学者不要错过哦,很实用)!!!!
    Netlib文件转化为mps文件
    新设备关联Gitlab
    CMake与OpenMP
  • 原文地址:https://www.cnblogs.com/rocedu/p/7484252.html
Copyright © 2011-2022 走看看