Alan Kaminsky Department of Computer Science Rochester Institute of Technology 4486 + 2220 = 6706
Home Page
Data Communications and Networks I 4003-420-01/4005-740-01 Fall Quarter 2012
Course Page

4003-420-01/4005-740-01
Data Communications and Networks I
Undergraduate Team Project

Prof. Alan Kaminsky -- Fall Quarter 2012
Rochester Institute of Technology -- Department of Computer Science

Team Formation
Game Requirements
Team Deliverables
Team Deliverables Grading Criteria
Team Presentation
Team Presentation Grading Criteria
Absences
Late Submissions
Plagiarism


Team Formation

Undergraduate students taking the course as section 4003-420-01 will do a team project in a two- or three-person team. You get to pick your own partners. The team will develop a complete network application in Java for a multi-player multi-session network game.

You must do the following by 11:59pm Monday 17-Sep-2012:

  1. Pick your partners. I would strongly prefer two persons on each team. I will accept three persons on a team if necessary; for example, if the class has an odd number of undergraduate students.
     
  2. Pick a name for your team.
     
  3. Decide on the network game your team will develop. See Game Requirements for further information.
     
  4. Set up a web site for your team. You may use the web site in your CS account (public_html directory), or another publicly accessible web site. Initially, the web site home page must list the team name, list the team members, and give a description of the game your team will develop.
     
  5. Send me an email giving the team name, the names of the team members, the email addresses of the team members, and the URL of the team web site.

Team formation is worth 4% of your final course grade. If you complete the above steps by the deadline, you will get 4%. Otherwise, you will get 0%; furthermore, I will assign you arbitrarily chosen partners.


Game Requirements

You get to decide on the network game your team will develop. The game must meet these requirements:

  1. The network game application must support multiple simultaneous game sessions.
     
  2. Each game session must involve at least two players.
     
  3. Each player must be able to participate in the game by running a client program on the player's own computer and communicating over the network with the other players.
     
  4. All network game application software must be written in Java.

The game itself can be a network version of a published game or a game you invent yourself. The game should be neither too simple nor too complicated. Something like Tic-Tac-Toe (3x3 board) is too simple. Something like Monopoly® is too complicated. Something like three-dimensional Tic-Tac-Toe (4x4x4 board) or Uno® is about right. If you are unsure whether a particular game is suitable, please discuss it with me.

The player's user interface can be a simple textual UI or a fancy graphical UI. However, don't go overboard on the UI. The purpose of this project is to learn the principles of network application development, not to write the next World of Warcraft.

Note that the computer is not a player in the game. The computer and network are merely the medium in which humans play against each other.

Each team must develop a different game. As each team sends me their web site URL (see Team Formation), I will post a link on the course web site so everyone can see the game each team has chosen.

On your initial team web site home page (see Team Formation), state which game your team will be developing. Assume I am not familiar with the game and give a brief description of how the game is played. You may include links to web sites for the game or pictures showing the game if those are readily available. I may require you to do a different game if the game you chose is too simple or too complicated, or if another team previously chose the same game.


Team Deliverables

You must post the following items on the home page of your team web site. These team deliverables will be graded and must be posted by 11:59pm Wednesday 31-Oct-2012:

  • A final report, in the form of a PDF file, including:
    • Team members
    • Description of your game
    • Description of the messages in your application protocol
    • Sequence diagrams showing messages sent and received in typical scenarios
    • Description of the message encoding
    • Description of the client program design, including high-level UML class diagram(s)
    • Description of the server program design, including high-level UML class diagram(s)
    • A developer's manual for your project (i.e. exact instructions for how to compile the software)
    • A user's manual for your project (i.e. exact instructions for how to run the software, how to use the UI, screen shots, etc.)
    • A discussion of what you learned from the project
    • A statement of what each individual team member did on the project

  • All Java source code files for your project. These must be posted in a single JAR file (Java archive file).


Team Deliverables Grading Criteria

All team members will receive the same grade for the team project deliverables. I will grade your team project deliverables by evaluating the following items:

  • Final report [10 points]
     
  • Compilation of your Java source files [10 points]
    If I cannot compile your Java source files with no errors following the instructions in the developer's manual section of your final report, you will receive 0 points for this portion.
     
  • Running your game with at least two players [10 points]
    If I cannot compile your Java source files, or if I cannot run your game following the instructions in the user's manual section of your final report, you will receive 0 points for this portion.
     
  • Running your game with at least two simultaneous game sessions [10 points]
    If I cannot compile your Java source files, or if I cannot run your game following the instructions in the user's manual section of your final report, you will receive 0 points for this portion.

After I have evaluated your deliverables, I will add your grade for the deliverables and any comments I have to your encrypted grade file. See the Course Policies and the Encrypted Grades for further information.


Team Presentation

Your team will give an oral presentation of your project in class during the tenth week of classes. The date and time of each team's presentation will be announced later.

Your team must give a presentation with slides prepared using PowerPoint, OpenOffice, or similar presentation software and must respond to questions from the class. The presentation must be about 15 minutes long depending on the number of teams. All team members must participate in the presentation. The presentation must cover the following items:

  • Team members
  • Description of your game
  • Description of the messages in your application protocol
  • Sequence diagrams showing messages sent and received in typical scenarios
  • Description of the message encoding
  • Design of the client program (high-level UML class diagram(s))
  • Design of the server program (high-level UML class diagram(s))
  • Live demonstration

The live demonstration must show your network game application running with at least two simultaneous game sessions and at least two players in each session.

You will project your presentation using the classroom's PC projector. You may use your own laptop or tablet. If you don't have a laptop, borrow one.

You must also post the prepared slides on the home page of your team web site before the class session in which you give your report, in the form of a PDF file. You may post other versions of your slides as well (e.g. PowerPoint or OpenOffice).


Team Presentation Grading Criteria

All team members will receive the same grade for the team project presentation. I will grade your team project presentation by evaluating the following items:

  • Description of your game [2 points]
  • Description of the messages in your application protocol [2 points]
  • Sequence diagrams [2 points]
  • Description of the message encoding [2 points]
  • Design of the client program [2 points]
  • Design of the server program [2 points]
  • Live demonstration -- multiple players in a session [2 points]
  • Live demonstration -- multiple simultaneous sessions [2 points]
     
  • Total [16 points]

Each item will be assigned points as follows:

2 = Good
1 = Needs improvement
0 = Unsatisfactory

However, if your prepared slides are not posted on the home page of your team web site in the form of a PDF file before giving the presentation in class, I will deduct 8 points from your team project presentation grade.

After I have evaluated your presentation, I will add your grade for the presentation and any comments I have to your encrypted grade file. See the Course Policies and the Encrypted Grades for further information.


Absences

If you are absent from class when your team presentation is scheduled, you will receive a grade of zero for the presentation unless before the start of the class when the presentation is scheduled you make an alternate arrangement with me. I am normally willing to permit this only for absences due to illness or unforeseen personal emergency. However, if you feel you have a valid reason for your absence, please discuss it with me. Appointments, job interviews, career fairs, vacations, trips home, and other scheduled activities are not valid excuses for absence. You have an obligation to this course, and you must schedule other activities so as not to interfere with class sessions.


Late Submissions

If your team deliverables are not posted on the home page of your team web site in the proper format by the deadline, your team deliverables will be late and will receive a grade of zero. You may request an extension for posting your team deliverables. See the Course Policies for my policy on extensions.


Plagiarism

The team presentation and the team deliverables must be entirely your team's own work. I will not tolerate plagiarism. If in my judgment the team presentation or the team deliverables is not entirely your team's own work, you will automatically receive, as a minimum, a grade of zero for the assignment. See the Course Policies for my policy on plagiarism.

Data Communications and Networks I 4003-420-01/4005-740-01 Fall Quarter 2012
Course Page
Alan Kaminsky Department of Computer Science Rochester Institute of Technology 4486 + 2220 = 6706
Home Page
Copyright © 2012 Alan Kaminsky. All rights reserved. Last updated 27-Aug-2012. Please send comments to ark­@­cs.rit.edu.