1.  像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的“软件”,和同学们比较一下各自程序的功能、实现方法的异同等等。

2.  列举你在使用软件的时候观察到的“特殊”现象,它们能说明软件的某些本质特性么?

3.  上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点? (提示:搜索一下Microsoft TFS、GitHub、Trac、Bugzilla、Rationale,Apple XCode)? 这个可以作为一道附加作业。

4.  Dijkstra曾经提到:“Software engineering, of course,presents itself as another worthy cause,but that is eyewash: if you carefully read its literature and analyse what its devotees actually do,you will discover that software engineering has accepted as its charter ‘How to program if you cannot.’”[i]

软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看?

5.  你所在的学校有计算机科学专业和软件工程专业么?相关专业的教学计划和毕业出路有什么不同?阅读有关软件工程和计算机科学的区别的文章,谈谈你的看法。文章:http://www.drdobbs.com/architectureand-design/software-engineering-computer-science/217701907 

6. 有学生提到,在大学选课的时候,可以写一个“刷课机”的程序,利用学校选课系统的弱点或漏洞,帮助某些人选到某些课程。或者帮助用户刷购票网站,先买到火车票。这些软件合法么?符合道德规范么?是在“软件工程”的研究范围么? 请大家讨论。

7. 有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么? 

  参考:

    http://weibo.com/2210132365/BiYTws242

  http://www.chinesepython.org/ 

    http://baike.baidu.com/subview/545069/545069.htm 

 

8. 创建个人技术博客 (建议是 cnblogs.com)

9. 快速看完整部教材,列出你不懂的 5 - 10 个问题,发布在你的个人博客上。

10. 课上同学们应该根据自己的爱好和情况组成了5-6 人的项目小组。 并且报告了助教。

      10.1: 请每个小组在 cnblogs.com 上面创建团队博客,第一个博客把小组成员都介绍一下  #团队博客作业1

      10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下:

                - 当时的项目有多少用户,给用户多少价值? 现在还有人用吗?

                - 这个项目能否给我们团队继续开发,源代码/文档还有么?

                - 项目开发有什么经验和教训

                - 对学好软件工程有什么建议

                写成一个博客   #团队博客作业2


11. Software 这一名词的来源

       http://en.wikipedia.org/wiki/John_Tukey

      请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人


[i] 来源: http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html