這是現代軟體工程課的個人項目作業
- 個人項目 Individual Project: 一個人獨立完成.
- 時間: 可以考慮在第一周就給同學們這個項目; 也可以考慮在Team 專案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 開發技術 - 效能分析)