USTC 2011 homework list [现代软件工程 作业]

这是现代软件工程课的作业列表 (每周更新), 作业分为:

  1. 个人项目 Individual Project: 一个人独立完成
  2. 结对项目 Pair Project: 一对同学用结对编程的方法完成
  3. 团队项目 Team Project: 一组同学 (5-7人) 用软件工程的方法完成
  4. 团队作业 Team Homework:  适合团队完成的作业
  5. 个人作业 Individual Homework:  个人完成的作业 (读书报告等)

 

Individual Project

we had played the “number game” once, now what if you can design an AI algorithm to play with other AI programs?

write a program to play the “number game” in a group setting.

requirement: a game server program, it manages “players”, and keep the score of a “number game tournament”. (we need a volunteer to write such server).

a tournament has many rounds of matches, during one match, each player submits one number, and the server calculates the g-number, decides the winner/loser, and send back the result.

for example,  our formal Tournament of Golden Number game will consists of 100 rounds.

 

a player program: each USTC student will write one. it can do the following:

  1. register itself to the server, get game info (how many rounds per tournament)
  2. submit the “number” upon request from server
  3. get the result of last round

My requirement for server is that it should be able to run at least 10 rounds of matches/minute, and for the client, it needs to send data (your number) to server with no more than 1 sec delay.

 

the player program can be implemented in any language as long as it can communicate with the server via pre-defined protocols.

 

rules:

number:  a rational number between (100, 0),  not equal to 100, or 0.

in each match, the winner (or winners) is the player whose number is closest to the G-number,  winner will get 10 points.

the loser (or losers) is the player whose number is furthest away from G-number.  loser will get –3 points.

 

due date: after alpha release, around Oct. 20th. more details will follow.

Pair Project

http://academic.research.microsoft.com/academicmap

tasks for each pair:

learn the current architecture and feature

review new feature suggestions, and come up with your own features and improvements

pick 1-2 new features, and implement them in 2 weeks, using pair-programming collaboration model

break your feature into sub-tasks (see work breakdown structure, WBS), write down your estimation of the cost (how many hours). after the code is completed, write down the actual cost of time.

take a photo of 2 of the pair actually working, write a blog (including the photo) to share what you’ve learned in pair-project.

the developer of map view - John - will talk about the following:

a) The brief intro of SL programming

b) Architecture of map view code

c) Feature list of map view

deadline: 8/25, Thursday Noon. code checked in. be able to build from the project and run the demo.

8/25 afternoon (1-2pm), each pair present their work in real time demo and/or PPT.

8/31 noon. blog about your pair project should be posted online.

an acceptable pair project summary blog looks like this:

a) your project title

b) team members

c) the goal of the project, and WBS (break the goal into manageable pieces)

d) your estimate of each piece of work, and the actual cost of each pieces of work

e) your result (show some screenshots of your working feature)

f) the photo of both of you working in pair-programming style

g) the benefits and costs of pair-programming, from your own perspective. how did pair-programming help your pair overcome difficulties? what’s the cost of doing so?

h) how do you evaluate your partner? show us the strength and weak areas of your partner, give him/her constructive feedback in "sandwich style”.

 

 

Team Homework #1:  interview past projects

 

¡  For each team, pick a past Software Engineer Course project (either done by USTC team, or by Tsinghua students),  Interview students of that team, read their blogs, and report on your learning, then publish to your team blog. 

§  Did they reach their goals in project?  how many users do they have?

§  lessons learned from them,

§  and what would you do differently if you were in that team,  or if you could re-do the same project from scatch.

§  You can interview by face to face talk, email, phone, or interview their users.

 

Please post your homework to your homepage.

Deadline: Noon, Monday, 8/22/2011

 

 

Team homework #2:  innovation in new application domains.

 

Please read books about innovation,  and blogs about innovation,  e.g.  I have several:

http://www.cnblogs.com/xinz/archive/2011/07/09/2102052.html

http://www.cnblogs.com/xinz/archive/2011/07/10/2102310.html

http://www.cnblogs.com/xinz/archive/2011/07/11/2102667.html

 

 

I had an old assignment for PKU students:  http://www.cnblogs.com/xinz/archive/2011/06/26/2090631.html.

 

Now I’d like to see you do the same thing with 微博,  or 团购.   (就是把作业中所有提到 博客 的地方都换成 微博,  or 团购),  since we have 4 teams,  I’d like to see team 1 and 2 pick 微博,   team 3 and 4 pick 团购.  

 

Deadline:  Noon, Monday, 10/10/2011

you need to apply accounts, and use these accounts for a period of time in order to have meaningful investigation.  So I suggest you start early.

 

 

Team homework #3: how does your team evaluate member’s performance?

 

Please have a team meeting and decide how your team plan to evaluate each member’s performance.

see this blog for details.

Deadline: Noon, Monday, 10/10/2011

 

Team homework #4: Test Plan and Test Matrix

Write a blog to describe in detail how you’re going to test your software based on scenario and persona

1. your test plan

2. the personas (典型人物) of your software 

3. How do you expect different personas (some teams have 3 personas) to use your software? What’s their need and their goals, how your features work together to solve their needs?

4.Your test matrix (测试矩阵)

On what platform, what language, what type of machines, what type of browser, etc. to test your software?

5.What is “exit criteria” (good enough) for your software for beta release?

Hint: focus on the first 5-15 minutes.

Deadline: Noon, Monday, 10/31/2011

 

Team homework #5: bug bash

Each team has released beta 1 version.  now USTC students can test each others’s release.

 

to do: write test report, list all the bugs.

 

due date: right after beta 1 release.

 

 

Individual Homework #1

report the reference book (not the text book) you’re about to read.  see reference book list:

http://book.douban.com/doulist/1204928/

http://book.douban.com/doulist/1253169/ 

 

in the later part of this course, each student needs to write a blog and present his learning in the class.

deadline: week of 10/31/2011. (depends on TA arrangement)

 

Individual Homework #2

a good question is 50% of a good solution,  now let’s share your questions about the text book(s), and post them online.

todo:

  1. pick a text book (we have 3 of them),  start reading, take notes about things you don’t understand. 
  2. search the web to see if there exist answers
  3. if not, refine your questions, make sure readers can understand what you’re talking about.
  4. post them on your team blog (you can mark your name in the blog post).
  5. you only need to share about 5 questions.

deadline: Noon, Monday 10/10/2011.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程讲义 3 两人合作(2) 要会做汉堡包

[上回书说到这里: http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html ] 很多同学憧憬在大型软件团队中和各式各样的人打交道, 推动项目进展, 但是他们往往连一对一的合作的技巧和经验都很缺乏。 请问, 从小学到高中, 大家有没有练习过 1:1 的合作? 上课? 没有…

现代软件工程讲义 4 团队和流程

Advanced Software Engineering, Team Structure and Development Process 软件团队和开发流程 非团队和团队 在讲团队之前, 我们要讲什么是“非团队”。王屋村里经常发生这样的一幕: 王屋村的大智要把一堆砖头从村头搬到村尾。 他到顶球酒吧前, 看到前面三三两两地蹲着一…

现代软件工程讲义 12 绩效管理

我们前文讲了怎样衡量软件工程师的能力, 工程师如何成长, 如何证明自己的成长, 等等. 这些都是在一个独立的, 不受外界干扰的空间中做出来的判断。 我们假设一个有能力的工程师, 到了另一个团队, 仍然是一个有能力的工程师。 如何衡量个人在团队中的绩效? 如果一个工程师能…

校园招聘 - 比较容易的面试题

又到校园招聘的季节了, 自从和一些同事出版了《编程之美》一书之后, 我经常收到一些关于面试, 编程, 和“题库”的询问。 其实我自己对算法没有什么研究, 有些问题都答不上, 研究院最近搬了一次家, 原来的 “题库”也不知道搬到那一层楼去了。 不过, 常在河边走,…

现代软件工程讲义 2 工程师的能力评估和发展

Advanced Software Engineering 现代软件工程 讲义 软件工程师的能力评估和职业发展 介绍: 个人软件流程, 职业发展, 个人绩效的衡量和提高, 软件开发是科学, 工程, 手艺, 或是艺术? 我们刚讲了软件工程, 它包括了什么呢? 软件工程包括了开发,…

现代软件工程讲义 7 设计阶段 典型用户 - 故事 - 任务 - 具体工作

当我们写一个软件的时候, 都知道要为用户考虑, 但是用户在哪里? 有同学写 “图书馆管理系统” - 说来图书馆的同学都是我的用户, 但是他们有没有区别呢? 有同学写“自动柜员机系统”, 那到底有多少类型的用户来到柜员机前呢? 这些都是团队成员在需求分析和设计阶段要反复…

现代软件工程讲义 7 开发 开发阶段的日常管理

[移山之道 14 章] 14.6 开发阶段的日常管理14.6.1 闭门造车(leave me alone) 荔荔:我今天真失败!在办公室里坐了10个小时,但是真正能花在开发工作上的可能只有3个小时,然后我的工作进展大概只有两个小时…

现代软件工程讲义 7 用户界面和用户体验

说到用户界面 (User Interface),我们先看一个图: [来源] 有些同学认为UI 设计是充满创意和非常潇洒的工作, 另一些同学 (特别是有一定实际项目经验的) 也许会抱怨, UI 的工作就是在衣服后面夹夹子, 让前面好看一些。 其实,计算机软件的用户…

现代软件工程讲义 5 项目经理 Program Manager

在一个软件团队里, 不同的人有不同的投入, 我们在 猪,鸡和鹦鹉 的故事里已经说明了. 不同的人还要在团队中担负不同的任务, 我们也要讲一下. 开发人员 (大部分内容在: 现代软件工程讲义 2 工程师的能力评估和发展) 项目经理 ( 这篇博客 ) 测试人员 …

现代软件工程讲义 5.1 软件的质量保证 (QA) 和测试 (Test)

在一个软件团队里, 不同的人有不同程度的投入, 我们在 猪,鸡和鹦鹉 的故事里已经说明了. 不同的人还要在团队中担负不同的任务: 开发人员 (大部分内容在: 现代软件工程讲义 2 工程师的能力评估和发展) 项目经理 ( 内容在这里) 测试人员 ( 本篇博客 ) 团…

现代软件工程讲义 8 稳定阶段 (测试的计划和执行)

[来自 移山之道 第 13 章] 13.8 测试计划 测试不是在所有的开发工作完成之后才进行,而是与开发几乎同步进行的。一个软件项目的各个功能都可以有自己的测试计划,它们可以在不同的阶段发挥作用。但是针对整个项目的总测试计划(又叫测试总纲&a…

现代软件工程讲义 2 开发技术 - 效能分析

[移山之道 第九章] 9.4 VSTS 效能分析工具 啊,效能分析,Performance!这是每一个程序员都梦想的事儿,让自己的程序跑得又快又好,最好是比别的同学快一个数量级,别人的程序是O(N^2),而我的程序是…

现代软件工程讲义 2 开发技术 - 单元测试 amp; 回归测试

[移山之道 第11章] 1单元测试 你的RP是由你的程序质量决定的。 ——阿超 这一章讲的是两人合作,既然程序是两个人写的,那就会出现一个人写的模块被另一个人写的模块调用的情况。很多误解、疏忽都发生在两个模块之间。如何能让自己写的模块尽量无懈可击…

现代软件工程讲义 11 项目管理 - 事后诸葛亮会议

介绍 一个里程碑结束了, 下面怎么办? 团队有什么经验教训? 产品怎么才能做得更好? 我们常说 “软件的生命周期”- 这个软件开发的周期结束了, 生命也结束了。 我们能不能像医学的尸体解剖一样, 把这个软件开发的流程解剖一下? 解剖的过程可以叫: Postmortem, Retrospec…

现代软件工程讲义 4 方法论 - MSF

[内容来自 移山之道]白话MSF方法论 2.1 果冻的预习果冻:超总,听说你要讲MSF,我就先预习了一下,但是MSF的名词太多了,我真是头大,能不能解释一下这两句: “MSF的一个基础原理是学习所有的经验。…

现代软件工程 作业 1 个人项目

这是现代软件工程课的个人项目作业 个人项目 Individual Project: 一个人独立完成. 时间: 可以考虑在第一周就给同学们这个项目; 也可以考虑在团队项目Alpha 阶段之后进行, 作为一个缓冲。 考核内容基本源代码控制的用法 程序的测,回归测试 效能测试 网络编程 C/C/…

现代软件工程 作业 2 结对项目

这是现代软件工程课的作业 结对项目 Pair Project: 一对同学用结对编程的方法完成 结对编程课件: 现代软件工程讲义 3 结对编程和两人合作 软件工程讲义 3 两人合作(2) 要会做汉堡包 Pair Project http://academic.research.microsoft.com/academicmap tasks for each …

现代软件工程 作业 3 团队作业

这是现代软件工程课的作业列表, 老师可以根据情况选用, 建议要保证每周都有作业。 团队作业 Team Homework: 适合团队完成的作业 这些作业都要团队的成员互相配合才能完成, 团队可以选出一位同学完成作业的具体写作和发博客部分, 大家可以轮流完成。 一个团队通常由 5-7名…

现代软件工程 作业 4 个人作业

这是现代软件工程课的作业 个人作业 Individual Homework: 个人完成的作业 (读书报告等), 着不同于 “个人项目 Individual Project”. Individual Homework #1 a good question is 50% of a good solution, now let’s share your questions about the text book(s), and …

现代软件工程讲义 9 测试 关于闰年的测试

我们谈了不少测试的名词, 规范和原则 (link1, link2). 软件是人写的, 测试计划和测试用例也是人写的, 人总会犯错误。错误发生之后, 总有人问: 为什么这个bug 没有测出来啊?! 我们看看一类简单的bug是如何发生的,以及如何预防它们再度发生: 闰年 软件少不了和…