现代软件工程 学生阅读、思辨和调查作业

软件工程作业汇总

 

大学生都是探索真理的成年人,  要多读书,多提问,多思考,多辩论交流。不要盲目地认为经典的书、老师的话都是完美无误的,要时时提醒自己“为学要不疑处有疑,才是进步!”。 大家可以喜欢名言,喜欢老师,但更要喜欢真理。  这门课有至少四个机会让大家读书、调查,探求真理。 

 

下面的读书和调查作业必须在截止日期前发表在个人博客上

 

阅读和提问作业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你的项目有一个大泥球么? 有什么解决办法?

花时间提高软件工程的质量,似乎就不能用这个时间来写代码,那么,值得花时间提高质量么?

http://www.laputan.org/mud/

https://martinfowler.com/articles/is-quality-worth-cost.html 

CatB – Cathedral and the Bazaar 你的团队是用什么方式建造软件?   <link>
Lost in CatB. 这些情况在你的团队中出现过么? 

http://queue.acm.org/detail.cfm?id=2349257

中文版:http://www.ituring.com.cn/article/9363 

方法的好和坏  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  
软件工程的方法论到底有多少用处?  同时好好读一下两个文章的评论。 

Link1

Link2  

阅读材料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

ACM 文章,计算机系要教什么给将来的程序员

 

世界级的机构如何在工作中把计算机科学的研究, 工程, 数学, 实验方法结合起来:  

  Google's Hybrid Approach to Research

      http://norvig.com/hybrid-research.pdf  

 

软件开发 vs 软件工程

 

软件工程的黄金时代已经到来了么?

采访本校上过传统的 <软件工程> 课的学生
    他们的课程设计, 阅读, 写程序, 合作, 团队实践各有什么特点? 他们有什么希望? 

寻找本校计算机系, 软件学院或其他院系中上过这门课的同学一或几名,

进行采访 (要做调查表, 列出具体事例, 具体要求, 具体的代码行数, 等等)。

例子: 1, 2, 3, 4, 例子:

国外大学的软件课是怎么教的   

一流大学的助教和学生是怎么互动的 

UCSD 怎么教软件工程

 我是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 

(快照:http://web.archive.org/web/20131126030318/http://www.cs.sjtu.edu.cn/~liwujun/paper/ugresearch_cccf.pdf

 

posted @ 2012-10-14 23:27 SoftwareTeacher 阅读(...) 评论(...) 编辑 收藏