USTC 2011 homework list [现代软件工程 作业]
这是现代软件工程课的作业列表 (每周更新), 作业分为:
- 个人项目 Individual Project: 一个人独立完成
- 结对项目 Pair Project: 一对同学用结对编程的方法完成
- 团队项目 Team Project: 一组同学 (5-7人) 用软件工程的方法完成
- 团队作业 Team Homework: 适合团队完成的作业
- 个人作业 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:
- register itself to the server, get game info (how many rounds per tournament)
- submit the “number” upon request from server
- 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:
- pick a text book (we have 3 of them), start reading, take notes about things you don’t understand.
- search the web to see if there exist answers
- if not, refine your questions, make sure readers can understand what you’re talking about.
- post them on your team blog (you can mark your name in the blog post).
- you only need to share about 5 questions.
deadline: Noon, Monday 10/10/2011.