(软件工程作业汇总)
大学生都是探索真理的成年人, 要多读书,多提问,多思考,多辩论交流。不要盲目地认为经典的书、老师的话都是完美无误的,要时时提醒自己“为学要不疑处有疑,才是进步!”。 大家可以喜欢名言,喜欢老师,但更要喜欢真理。 这门课有至少四个机会让大家读书、调查,探求真理。
下面的读书和调查作业必须在截止日期前发表在个人博客上。
阅读和提问作业1 (在开学第一周完成)
先看 对IT教育的反馈 和 课程特点 两个博客。并说明你对学校现存教育方式的反馈,在学校中碰到了什么样的师生关系, 希望在这个课程中有什么样的师生关系。
快速阅读完《构建之法》全书,写一个博客,提出至少五个问题。(温馨提示:不必按照章节次序来读,可以从第16章(创新)入手)。
① 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文。
② 列出一些事例或资料,支持你的提问 。
③ 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?一个模板可以是这样:
我看了这一段文字 (引用文字,包括章节信息,第几页),有这个问题 (提出问题)。 我查了资料(网上搜索或者其他方法),有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太明白,我的困惑是(说明困惑)。
【或者】
我反对作者的观点(提出作者的观点,自己的观点,以及理由)。
如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 大学生应该能写出自己的思考, 而不是摘抄书本内容。
阅读和提问作业2 (期中作业)
这时候你学习了很多知识, 做了个人,结对,和alpha 的团队项目, 一定有很多体会吧!书上写的那些原则、知识点在你的实践中有用么?请写一篇博客,结合你实际的项目,回答自己在第一篇提出的那五个问题,再提出五个左右新的问题。同学们可以看看下表列出的各种阅读材料。 另外,如果你想抄袭网上的 “软件工程总结”,可以看这里 -- 老师都帮你总结好了! 另外,你纳闷怎么有这么多阅读写作的作业,对吧?可以看看为什么写作对软件工程师很重要。学有余力的同学,请看下面的要求。
阅读和提问作业3 (期中作业)
这时候,你经历了两个里程碑的开发,也看到别的团队的各种项目的结果,你对软件工程的理解一定更深刻了。 请写一篇博客,阅读下面列出的文章(见下表),结合自己在 个人/结对/团队项目的经历, 回答自己在第一篇、第二篇提出的那些问题,再提出两三个新的问题。 如果能总结一下你学到的软件工程的秘诀,规律等,请一起写上。
阅读材料 1: 软件工程的瀑布, 大泥球, 教堂,集市,和银弹 | 网页地址 |
没有银弹 No Silver Bullet - Essence and Accidents ... - Brooks | <link> |
可能有银弹 There Is a Silver Bullet – Brad J Cox | <link> |
big ball of mud你的项目有一个大泥球么? 有什么解决办法? 花时间提高软件工程的质量,似乎就不能用这个时间来写代码,那么,值得花时间提高质量么? | https://martinfowler.com/articles/is-quality-worth-cost.html |
CatB – Cathedral and the Bazaar 你的团队是用什么方式建造软件? | <link> |
Lost in CatB. 这些情况在你的团队中出现过么? | |
方法的好和坏 Worse is Better – Richard Gabriel | The Rise of Worse is Better Is Worse Really Better |
Managing the development of large software systems: concepts and techniques这是后来大家说的 “瀑布模型”,它有什么特点? | <link> 对此模型的误解: <link> |
Agile Method – by Martin Fowler你的团队在开发中用了那些敏捷的思想和做法? | http://martinfowler.com/articles/newMethodology.html |
软件工程的方法论到底有多少用处? 同时好好读一下两个文章的评论。 | |
阅读材料2: 教好, 学好软件工程 | 网页地址 |
Software Engineering vs. CS, how to teach SE? 软件工程和计算机科学的有区别么?怎样才能教好、学好软件工程? 在博客中阐述: 你觉得你在本校受到的计算机教育怎么样? 有什么可以改进的部分? | http://blog.sina.com.cn/s/blog_553f355101017g6l.html http://blog.sina.com.cn/s/blog_553f355101017j8q.html (原文) 为什么计算机系的老师教不好软件工程水平的编程? http://programmers.stackexchange.com/questions/11721 http://www.cnblogs.com/codingcook/archive/2012/12/12/2814033.html http://www.cnblogs.com/buaashine/archive/2012/12/12/2813931.html
世界级的机构如何在工作中把计算机科学的研究, 工程, 数学, 实验方法结合起来: Google's Hybrid Approach to Research http://norvig.com/hybrid-research.pdf
|
采访本校上过传统的 <软件工程> 课的学生。 他们的课程设计, 阅读, 写程序, 合作, 团队实践各有什么特点? 他们有什么希望? | 寻找本校计算机系, 软件学院或其他院系中上过这门课的同学一或几名, 进行采访 (要做调查表, 列出具体事例, 具体要求, 具体的代码行数, 等等)。 |
我是CS 的, 我就要做计算机科学家! | 那么看看这个CS PhD 的故事 PhD Grind |
习而学的软件工程教育 你觉得文中提到的方法有什么优缺点? | <Link> |
团队博客:这个作业以团队为单位写。 分工合作, 阅读关于软件工程教学的文章, 采访一下高年级的同学, 发表你们团队对于计算机软件工程师教育的看法。
作业期限: 一般是第十周
个人总结: 回顾整个课程, 软件开发的过程, 以及你自己以前读书的疑问和困惑, 谈谈自己在这方面的的理解或心得 (经历了十几周的课程, 你总会有一些心得吧), 统计自己在这门课写了多少代码, 多少博客, 看了多少文章, 开了多少会... 作业期限: 一般是学期结束前
读完技术论文后, 你怎么总结呢?建议用下面的格式 (来源):
1. 作者写这篇文章的动机是什么?
2. 作者提出了什么解决方案?
3. 作者用了什么衡量标准来度量方案的优劣?
4. 作者在文章中的具体贡献是什么?
5. 下一步的研究方向, 行动方向, 或改进方向是什么?
觉得阅读量大么? 请与国际上排名前 20 名左右的学校比较一下:
例如: http://www.cs.umd.edu/class/spring2003/cmsc838p/topics.htm 他们 (研究生) 一个学期读40多篇论文, 并写报告。
本科生是否有能力看论文? 怎么培养科研能力? 请看:
http://www.cs.sjtu.edu.cn/~liwujun/paper/ugresearch_cccf.pdf