每周作业链接汇总
- 第一周作业:
- 教材第十二章
- 编辑、编译、运行教材上代码,参考「积极主动敲代码,使-用Junit学习Java程序设计」
- 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
- 代码托管到git@OSC,参考一下使用开源中国托管代码
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目:无
- 完成云班中本周课下考试
- 第二周作业:
- 开设团队项目博客,分配《构建之法》学习内容,提出不少于十个问题
- 下载Java Collection API源代码,下载工具搭建源码分析环境
- 掌握Java中泛型类,泛型方法的设计
- 复习Java开发,调试的内容,Git的内容
- 第三周作业:
- 教材第十三章
- 编辑、编译、运行教材上代码,参考「积极主动敲代码,使用Junit学习Java程序设计」
- 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
- 代码托管到git@OSC,参考一下使用开源中国托管代码
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目:13.1 13.3 13.6 13.7
- 完成云班中本周课下考试
- 阅读知其所以然(以算法学习为例)(参考知其所以然(续),知其所以然(三):为什么算法这么难?)
- 研究一个查找或排序算法(寻找该算法的原始出处;原始的出处其实也未必就都推心置腹地和你讲得那么到位,自己揣摩;不仅学习别人的思路,整理自己的思路也是极其重要的)
- 第四周作业:
- 理解线性表的概念
- 掌握用数组和链表实现线性表的方法
- 熟练应用线性表解决问题
- 分析Java Collections API中ArrayList和LinkedList的实现
- 第五周作业:
- 教材第十四章
- 编辑、编译、运行教材上代码,参考「积极主动敲代码,使用Junit学习Java程序设计」
- 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
- 代码托管到git@OSC,参考一下使用开源中国托管代码
- 完成课后自测题,并参考答案http://www.cnblogs.com/rocedu/p/7483915.html学习
- 完成课后练习题
- 完成程序设计项目:PP14.1 ,PP14.9(Android),PP14.10
- 完成云班中本周课下考试
- 参考Java Collections API源码分析,分析Java Collections API中的Stack类: 相对自己的实现有什么设计精巧的地方?你学到了什么?
- 阅读知其所以然(以算法学习为例)(参考知其所以然(续),知其所以然(三):为什么算法这么难?)
- 第六周作业:
- 教材第十五章
- 编辑、编译、运行教材上代码,参考「积极主动敲代码,使用Junit学习Java程序设计」
- 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
- 代码托管到git@OSC,参考一下使用开源中国托管代码
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目:PP15.1 ,PP15.6,PP15.8(Android),PP15.9
- 完成云班中本周课下考试
- 阅读知其所以然(以算法学习为例)(参考知其所以然(续),知其所以然(三):为什么算法这么难?)
- 第七周作业:
- 教材第十六章
- 编辑、编译、运行教材上代码,参考「积极主动敲代码,使用Junit学习Java程序设计」
- 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
- 代码托管到git@OSC,参考一下使用开源中国托管代码
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目:PP16.1 ,PP16.2,PP16.6,PP16.8
- 完成云班中本周课下考试
- 阅读知其所以然(以算法学习为例)(参考知其所以然(续),知其所以然(三):为什么算法这么难?)
- 第八周作业:
- 教材第十七章
- 编辑、编译、运行教材上代码,参考「积极主动敲代码,使用Junit学习Java程序设计」
- 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
- 代码托管到git@OSC,参考一下使用开源中国托管代码
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目:PP17.1 ,PP17.2,PP17.5
- 完成云班中本周课下考试
- 阅读知其所以然(以算法学习为例)(参考知其所以然(续),知其所以然(三):为什么算法这么难?)
- 第九周作业:
- 教材第十八章
- 编辑、编译、运行教材上代码,参考「积极主动敲代码,使用Junit学习Java程序设计」
- 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
- 代码托管到git@OSC,参考一下使用开源中国托管代码
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目:PP18.1 ,PP18.5
- 完成云班中本周课下考试
- 阅读知其所以然(以算法学习为例)(参考知其所以然(续),知其所以然(三):为什么算法这么难?)
- 第十周作业:
- 教材第十九章
- 编辑、编译、运行教材上代码,参考「积极主动敲代码,使用Junit学习Java程序设计」
- 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
- 代码托管到git@OSC,参考一下使用开源中国托管代码
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目:PP19.1 ,PP19.2,PP19.7
- 完成云班中本周课下考试
- 阅读知其所以然(以算法学习为例)(参考知其所以然(续),知其所以然(三):为什么算法这么难?)
- 第十一周作业:
- 教材第十九章
- 编辑、编译、运行教材上代码,参考「积极主动敲代码,使用Junit学习Java程序设计」
- 代码中不懂的内容仔细阅读教材,参考Java API帮助文档
- 代码托管到git@OSC,参考一下使用开源中国托管代码
- 完成课后自测题,并参考答案学习
- 完成课后练习题
- 完成程序设计项目:PP20.1 ,PP20.2,PP20.3,PP20.11
- 完成云班中本周课下考试
- 阅读知其所以然(以算法学习为例)(参考知其所以然(续),知其所以然(三):为什么算法这么难?)
实验报告链接汇总
- 实验一——线性表的应用:
- 1 Java中的线性表的测试:过程,问题
- 2 Java中的线性表的应用:过程,问题
- 3 顺序表的实现(伪代码,产品代码,测试代码):过程(分析,设计,实现,测试),问题
- 4 链表的实现(伪代码,产品代码,测试代码):过程(分析,设计,实现,测试),问题
- 5 Java ArrayList,LinkedList源码分析:过程,学到的技巧
- 实验二——树:
- 1 参考教材p375,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)
- 2 基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如教材P372,给出HDIBEMJNAFCKGL和ABDHIEJMNCFGKL,构造出附图中的树
- 3 完成PP16.6
- 4 完成PP16.8
- 5 完成PP17.1
- 6 参考http://www.cnblogs.com/rocedu/p/7483915.html对Java中的红黑树(TreeMap,HashMap)进行源码分析,并在实验报告中体现分析结果
- 实验三——查找与排序:
- 1 完成教材P302 Searching.Java ,P305 Sorting.java中方法的测试
不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位 - 2 重构你的代码
把Sorting.java Searching.java放入 cn.edu.besti.cs1623.(姓名首字母+四位学号) 包中
把测试代码放test包中 - 3 参考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中补充查找算法并测试
- 4 补充实现课上讲过的排序方法:希尔排序,堆排序,桶排序,二叉树排序等
测试实现的算法(正常,异常,边界) - 实验4——图及应用
- 1 用邻接矩阵实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器
- 2 用十字链表实现无向图(边和顶点都要保存),实现在包含添加和删除结点的方法,添加和删除边的方法,size(),isEmpty(),广度优先迭代器,深度优先迭代器
- 3 实现PP19.9
- 实验5
- 1 编译、运行、测试:
- git clone 小组项目
- 编译项目,提交编译成功截图(全屏,要有学号信息)
- 提交运行过程中的截图(全屏,要有学号信息)
- 2 代码修改:
- 在小组项目中,找一个合适的地方添加一个按钮,点击显示自己的学号
- 在项目中找一个界面,自己复制一份命名为XXXbak,修改代码,替换原来的部分
团队项目报告链接汇总
- 第一周:
- 快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的个人博客上。
- 如何提出有价值的问题? - 请看这个文章,以及在互联网时代如何提问题。
- 还有这些要点:
- ① 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文。
- ② 列出一些事例或资料,支持你的提问 。
- ③ 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
- 第二周:
团队讨论选取Android上的一个游戏软件, 请回答:
1 此类软件是什么时候开始出现的, 这些软件是怎么说服你(陌生人)成为他们的用户的? 他们的目标都是盈利么? 他们的目标都是赚取用户的现金么?还是别的?
2 你个人第一次用此类软件是什么时候,你当时多大,具体在什么学校读几年级,老师是谁,同桌叫啥?软件是如何到你手里的?例如:邮购,下载,互相拷贝,从应用商店购买,等等。 (这个部分必须详细写,不然这道题目得0分,我要看看全世界的学生怎么抄袭这一段的)。
3 我们知道有些软件是收费的,有些是“免费” 的, 那么,软件公司为何会给你免费使用这个软件呢? 写这个软件的工程师们,他们的工资如果不从你(用户)这里来, 从哪里来呢? 目前你们当地的软件工程师的工资大约是多少,请给出尽量详细的分析,精确到年收入多少万元人民币。
4 你是如何学会用这软件的?它给你什么好处,坏处? 这些软件是如何处理 bug 的? 如何更新新版本的? 你估计软件团队更新一个主要版本花了多少 人月? 请写上人月的定义. 如果你们宿舍(或者你和另外三四个同学)要做同样水平的软件,请估计你们需要多少时间?
5 同一类型的软件之间是如何竞争的?你现在还用它么,你为何选择这个产品,而不是它的竞争对手?
6 5年后, 这种软件运行的硬件会有什么变化, 软件再过 5 年还会存在么,为什么?
- 7 列举你在使用上述软件的时候观察到的 “特殊”现象,它们和硬件有什么不同? 这些能说明软件的某些本质特性么?
- 第三周:
- 1 团队展示
- 2 队员风采
- 3 采访
- 4 初步合作总结
- 第四、五周:
《需求规格说明书》要求(参考蓝墨云班课第八周中的示例):
1 参考《软件需求规格说明书》国标规范文本,撰写对应项目的软件需求规格说明书。
2 除形式上满足规范文本要求外,整体内容必须围绕项目实质展开,对所要开发的项目确保尽力做到清晰完整准确。
3 采用分层形式描述,随着“层”的深入,描述的内容细节越具体。
4 使用一致的图形符号和文字描述内容。
5 所有的缩写须事先定义。
6 图文并茂,通篇文档有一个统一的样式风格(对于该md文件,要求团队内每个人都需进行相应的commit,作为团队开发的第一次尝试)。
7 将自己置于读者的立场——如果对软件项目不熟悉的人员,通过阅读这份文档,能否完全读懂软件要做什么。
8 访问软件项目的真实用户(找找计算机专业的学过数据结构的学生),确保软件真正体现用户的需求,为软件最终可用奠定基础。
9 需求规格说明书里描述的细分功能、边界范围等,限定于本学期期末验收时能达到的功能,最终答辩验收将对照需求规格说明书进行。 亮点以及未来预期完成的功能,可在需求规格说明书里独立专章描述。
10 团队协作,加强分工,需要描述每个成员的具体分工及占整个文档任务的工作量比例。
- 11 Checklist: 引言(5 ') 、 用户场景(15 ')、类图(10 ')、界面原型(15 ')、功能描述(20 ')、验收验证标准(20 ')、文档的图表、文字、样式统一且符合规范(15 ')
- 第六、七周:
1 修改完善上周提交的需求规格说明书,并在博客中描述:上次的《需求规格说明书》初稿有哪些不足?修改需同时体现在Github的MarkDown文件与PDF中。(提示:功能考虑不全或需求文档描述缺少的地方。)(5')
2 讨论制定团队的编码规范,讨论之前和讨论之后,队员阅读《构建之法》第四章内容,并讨论总结。将代码规范和编码原则发布在随笔上,并说说你们这么选择的理由。(5')
3 通过Powerdesigner完成团队项目的数据库设计,并在随笔中提供相应ER图。(10')
4 进行项目的后端架构设计,要与需求规格说明书中的界面原型设计相对应。这部分的介绍最好图文搭配,需要在周六实践课上介绍。(15')
五、确定团队分工。请参考分而治之(WBS - Work Breakdown Structure),提供下述内容:(15')
利用象限法确定各个核心需求的优先级,依据需求优先级确定团队Alpha 版本需要实现的功能,在博客中叙述并给出相应的WBS图。
在团队管理软件中(比如Github的Issue,Leangoo等)将各个叶子结点的功能加入,并确定每个子功能的工作量,在博客中给出分配后的截图。值得注意的是,与学习技术相关的任务也需要考虑在工作量中,开发需要检验产出,学习同样要有结果。PM可以用小Demo演示或学习心得博客作为学习任务的检验。
给出团队各个成员(用3位短学号代替姓名)认领的工作,列出当前团队的TODOList,并在最后给出燃尽图。
六、描述组员在上述任务中的分工和工作量比例。
七、以上内容发表成一篇随笔,Alpha 版本的发布时间安排在11月中旬,请各个团队注意时间结点,尽快开始开发。
- 第八周:
1 团队分工(5分)
描述团队的每个成员分别完成了UML图的哪些部分,可以选择多种方式呈现,推荐泳道图。(可以参考@thousfeet)2 UML(需求规格说明书里已经练习过了整个系统的UML设计,这里不需要对整个系统建模,只需要每个团队成员找到自己负责部分的核心或最复杂模块做UML练习)(20分)
- 用例图(必选)
- 类图(必选)
- 活动图(必选)
- 状态图(必选)
- 注:对于每个图,需描述对应的是系统哪部分、这部分面临什么样的问题、这样的设计解决了哪些问题?
- 3 工具选择(大家可以共享经验,相互推荐,谈谈为什么选择这个工具)(5分)
- 最快的可以手画在纸上,拍照上传,后面再电子化
- 推荐用上课讲过的WhiteStarUML
- Visio
- ROSE
- 搜索选择其它工具(包括一些在线工具)...
- 第九、十周:
冲刺(7次 Scrum)
团队在日期区间[11.27,12.10]内,任选7天进行冲刺,冲刺当天晚10点前发布一篇随笔,共7篇。具体的博文规范如下:1)第 1 篇 Scrum 冲刺博客对整个冲刺阶段起到领航作用,应该主要包含四个部分的内容:
各个成员在 Alpha 阶段认领的任务
明日各个成员的任务安排
整个项目预期的任务量(使用整数表示,与项目预估的总工作小时数一致。比如项目A预估需120小时才能完成,则任务量为120。)
团队成员贡献值的计算规则
- 2)第 2-7 篇 Scrum 冲刺博客是冲刺阶段的主要产出,主要包含四个部分的内容:
各个成员今日完成的任务(如果完成的任务为开发或测试任务,需给出对应的Github代码签入记录截图;如果完成的任务为调研任务,需给出对应的调研总结博客链接;如果完成的任务为学习技术任务,需给出学习总结博客链接)
各个成员遇到的问题
明日各个成员的任务安排
各个成员今日对项目的贡献量(使用整数表示,如无产出则为0,整个冲刺阶段所有成员的贡献量总和应与项目预期任务量相近)
- 3)第 7篇 Scrum 冲刺是对冲刺阶段的总结,主要包含两个部分的内容:
各个成员今日完成的任务(要求同上)
项目的发布说明,主要包含:本版本的新功能,软件对运行环境的要求,系统已知的问题和限制,软件的发布方式以及发布地址。
除上述博客内容外,每次 Scrum 冲刺博客都需要提供当天站立式会议照片一张,发布项目燃尽图,并描述项目整体的进展情况。
代码托管链接:
- 给出statistic.sh的运行结果,说明本学期的代码量目标达到没有?
- 加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
- 积极主动敲代码做到没?教材实践上有什么经验教训?
课堂项目实践
第三周
- 1、算法复杂度-1、算法复杂度-2、算法复杂度-3:
- 有用Java语言描述的算法,说明其功能并计算复杂度。
- 用 Java语言实现算法并进行单元测试,并给出算法的时间复杂度。
- 2、泛型类-Bag:
- 参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并对方法进行单元测试(JUnit),测试要涵盖正常、异常情况、边界情况。
第四周
- 1、创建单链表
- 2、链表结点删除
- 3、链表结点插入
第五周
- 1、排序课堂测试:用JDB或IDEA单步跟踪对3 8 12 34 54 84 91 110进行快速排序的过程
- 2、查找课堂测试: 用JDB或IDEA单步跟踪在下列数据中(3 8 12 34 54 84 91 110)查找45和54的过程,对比使用顺序查找和二分查找的执行过程
- 3、排序课下作业:给定下列数据:90 8 7 56 123 235 9 1 653
用JDB或IDEA单步跟踪下列算法的执行过程:选择排序,插入排序,希尔排序,冒泡排序,快速排序,归并排序 - 4、Android演示Stack(课下作业):使用自己实现的栈构建Android程序,提供用于栈的一个puh按钮和pop按钮,在文本域接收一个字符串作为push的输入,文本区将显示每个操作后的内容
- 5、用链表实现栈:给出size,isEmpty及toString方法的定义,完成LinkedStack 类并用Junit进行单元测试(正常,异常,边界情况)
- 6、用数组实现栈:参考教材内容,实现ArrayStack,完成peek,isEmpty,size及toString方法,并用Junit进行单元测试(正常,异常,边界情况)
第六周
- 1、队列加分项:用循环队列打印杨辉三角
- 2、队列课下作业: 参考15.3节,用自己完成的队列(链队,循环数组队列)实现模拟票务柜台排队功能。
- 博客链接
- 3、用链表实现队列:参考程序15.5给出方法deque,first,isEmpty,size,toString的定义,完成LinkedeQueue 类并用Junit进行单元测试(正常,异常,边界情况)
- 4、用数组实现循环队列:参考程序15.6给出方法deque,first,isEmpty,size,toString的定义,完成CireclularArrayQueue 类并用Junit进行单元测试(正常,异常,边界情况)
- 5、Java Queue的测试:
1 使用Java Collections API实现Caesar密码的变化Key
2 学习Java 接口 Queue Deque,了解实现类
3 参考教材程序15.2 完成代码
第七周
- 1、中后序构建树
- 2、遍历树
- 3、遍历树-2
- 4、树计算
第九周
- 1、堆排序:完成pp18.1并用上面的例子进行测试
提交getMax()的代码 - 2、构建堆:建成(最大)堆,画出完全二叉树,写出堆排序过程。 {29,10,25,26,58,12,31,18,47}
- 3、堆的概念:说明堆与二叉排序树的差别
- 4、哈夫曼树的实现:
1 采用静态三叉链表TriElement(已经完整实现)存储HuffmanTree
2 理解HuffmanTree的构造过程,补充代码完成decode()
3 在HuffmanTreeTest中补充代码完成上个练习中的内容
- 5、构造哈夫曼树:在作业本上分别针对权值集合W=(6,5,3,4,60,18,77)和W=(7,2,4,5,8)构造哈夫曼树
第十周
- 1、十字链表
- 2、邻接表
- 3、邻接矩阵
- 4、图表示
第十一周
- 1、关键路径:附图列出某工程之间的优先关系和各工程所需时间,要求:
- 画出AOE网
- 列出各事件的最早、最迟发生时间
- 找出该AOE网中的关键路径,并回答完成该工程需要的最短时间
2、Dijkstra:Dijkstra算法,求解附图顶点A的单源最短路径
- 3、最小生成树:构造附图带权无向图的最小生成树,给出该最小生成树代价。说明Prim和Kruskal算法差别。
- 4、图的广度优先遍历:写出附图从每个顶点出发的一次广度优先搜索遍历序列。
5、图的深度优先遍历:写出附从每个顶点出发的一次深度优先搜索遍历序列。
第十二周
- 1、hash:利用除留余数法为下列关键字集合的存储设计hash函数,并画出分别用开放寻址法和拉链法解决冲突得到的空间存储状态(散列因子取0.75)
关键字集合:85,75,57,60,65,(你的8位学号相加值),98,74,89,12,5,46,97,13,69,52,92
- 课堂实践对提高应用能力有帮助吗?
- 有帮助,至少在写代码时脑子里面会有思路,课上讲的东西很明确了。
- 课堂实践上自己有什么经验教训?
- 做不出来的课堂实践千万千万一定要在下课第一时间去问同学怎么做。别拖着!到两天后再问他们就只能给你模糊地讲怎么做了!因为他们是课堂上就把实践做出来了。
- 课堂实践上对老师有什么教学建议?
- 一点非常非常微不足道的建议:就是我希望老师在以后对学弟学妹的课堂实践上,给出正确答案。(在课后)因为我们课堂实践是算分的,有些同学在课堂上提交了自己的答案后并不知道自己是对是错,等给分结果出来后才会知道。这样这些同学也没有及时补上博客,分数会白白丢失(明明已经在课堂上做过的题目为什么我还没有分?)。
- 课程收获与不足(不要抄上学期的,否则会扣分)
- 前半段的课堂,是真的真的没有认真听讲(导致实践丢了特别多的分数)。但是后半段在接触到各种各样的算法(最短路劲、最小生成树、分支界限法)后,感觉接触到了一个新的世界(原来这种问题还有这么美妙的解决方式,比重举法好多了)。
- 自己的收获(投入,效率,效果等)
- 我觉得课堂真的是一个学习效率特别高的地方(除非你没有在课堂上与周公神游)。试想一下,你只需要在一个几十平方的屋子内,投入45分钟(一节课)的精力,大脑高速运转,就能收获到你课下2、3个小时自我学习的结果,何不美哉?虽然老师讲的地方你可能不理解,但你到课下自学的时候,是不是会带着问题去自学?是不是会更加促进课下学习的效率?我觉得上课类似于人们养生所推崇的瑜伽(类比一下)。他们进行的是一场肉体的修炼,以达到天人合一的效果。而我们呢,追求的是一场大脑的旅程,而这段旅程的终点站,取决于你这台跑车(大脑),在这段旅程中的平均速度(有无走神,是否全神贯注)。
- 自己需要改进的地方
- 对待学习这件事情,还是需要抱着多一点的严肃,少一点不必要的自作多情。
- 结对学习是不是真正贯彻了?写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
确实有贯彻了,但我觉得我的结对伙伴这段过程过得可能挺闹心的(我太菜了)。可能他的体验不是特别的好。我在后半段的时候,经常会因为课堂上的一个小知识点与刘伟康闹得面红耳赤:我不理解他在讲什么,他更不理解我在讲什么。但总得来说我们还是会有思想上的碰撞(没有融合,要不然你想象一下刘伟康变成我的样子,那脑洞不敢想象···)
我看了看刘伟康给我的评价:
莫礼钟本学期的学习状态不好,主要是因为太沉迷游戏,但是他与生俱来的幽默感也为我和他相处的过程增添了很多乐趣。可能大学的学习制度确实不太适合莫礼钟,我觉得他比较适合做演员。
我反倒觉得刘伟康高看我了,因为我觉得这种评价要么就是贬义要么褒义,当然了,我这样乐天派的人,肯定会把这段评价看成褒义(他敢写我不好???)。不过做演员就太过分了哈,没那个颜值。
对于我怎么评价刘伟康的呢,我觉得我写出来可能很像一个征婚启示(有单身女性看的话可以考虑一下我这个结对伙伴):
我的结对伙伴,是那种会让你特别放心的人。他总是能在任何事情上给你带来正反馈(附带一点超出预期的小惊喜)。每次当我遇到代码上的问题,我脑海中蹦出来的第一个想法不是:问问老师这个该怎么做;而是:刘伟康肯定懂这个,我得去问问他。而每次我都能满意地收获到我想要的答案。但他可能有一点在我看来的缺点:太规则化。
很多事情他都想尽力追求完美,而为了这个追求“完美”的过程,他遭受了不少的白眼(没错有我一个)。可能有很多人不能理解:为什么一篇团队博客会在有模版的情况下刘伟康还能从晚上十点多写到第二天凌晨五点。
但作为他的结对伙伴,我知道他的心中一直想追求完美:即使在有些事情上我的水平不是最高,但我可以把这件事情做到在我的水平阶段上最完美的结果。他就是这样的一个人:有责任心、力求完美。虽然追求完美的过程会付出很多而且会遭受指责,但既然结果都是完美的了,谁还会在乎过程有多艰辛呢?
我觉得结对这件事情,首先需要代码水平相近或者一高一低的组合模式。如果是两个连Hello World都不会敲的人结对有什么意义,大家一起相约打游戏么?
在理想的结对基础上,提升的不仅仅有双方的代码水平还有思想上的转变,同时也是对于二人的社交水平有了极大的提升:你看刘伟康,大学刚来的时候那么羞涩单纯的一个小伙子都能用这么高水平的话来夸结对伙伴了。
建议是把结对这个项目独立设置成加分项:如同出门门票那样,不然很多人可能不会把这个结对当成一回事。
很多事情不能指望个人的自觉,只有在强制命令之下养成的习惯才能变成自己的自觉。
问卷调查
- 你平均每周投入到本课程有效学习时间有多少?
大约7-8个小时
每周的学习效率有提高吗?你是怎么衡量的?有提高。
衡量标准就是我对于课堂内容的理解,以前觉得非常的晦涩,要在刘伟康的帮助下理解。但是到后面我自己看PPT回忆的时候反而是自己总结了一下然后给刘伟康讲,每次都会有新的收获
蓝墨云班课的使用对你的学习有促进吗?有什么建议和意见吗?
有的,这款软件能提醒我这周有什么资源没看,落后同学多少,同时会提醒我有什么作业是没有完成的。
建议就是希望蓝墨云课堂能在资源上设置更多分类:PPT类、链接类。你觉得这门课老师应该继续做哪一件事情?
继续完善结对伙伴的结对方式以及出门门票的给分方式:没写的不给分,写的加分。你觉得这门课老师应该停止做哪一件事情?
无论单双周都应该写博客,即使有实验报告也不例外,双周博客你可以说因为有实验报告写的水一点,但不能以这个为借口告诉自己:我已经努力过了没有必要再去做多一点努力。
强制性地写博客给学生带来的不是负担,反而是让学生强迫自己回忆起本周所学知识点。博客模版可以改成:本周你学习了什么,而不是本周学习内容,让同学们用自己的话来总结知识点,杜绝复制粘贴课本上的内容并且让同学们能真正在写博客这个过程中对知识点起到回忆总结的收获。不是不建议复制粘贴,而是不允许你直接拿走知识点而不是自己总结。
你觉得这门课老师应该开始做什么新的事情?
在每次课堂实践结束后提供答案供参考,让没做的人知道该怎么做,让做错的人有机会补博客。你如何评价出门门票和做笔记的要求?
非常好,至少能让结对伙伴知道对方有没有在听课。一方交不出出门门票的后果是需要结对双方来承担,起到互相监督学习的作用。效果显著,至少刘伟康因为我提的问题太简单和我进行了几次讨论(互怼)。