这是现代软件工程课的个人项目作业
- 个人项目 Individual Project: 一个人独立完成.
- 时间: 可以考虑在第一周就给同学们这个项目; 也可以考虑在团队项目Alpha 阶段之后进行, 作为一个缓冲。
- 考核内容
- 基本源代码控制的用法
- 程序的测,回归测试
- 效能测试
- 网络编程
- C/C++/C# 等基本语言的运用。 (考虑到有些同学的基础参差不齐)
Individual Project (example 1)
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 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, on the 7th week.
Individual Project (example 2)
write a program, to calculate the frequency of english words in a set of text documents.
skills to practice:
regression test, unit test, performance analysis, performance tuning
check in, check out, and other basic Source Code Control skills
(link: 现代软件工程讲义 2 开发技术 - 效能分析)