T-110.5140 Network Application Frameworks P (5 cr)

General Guidelines for Assignments


This document contains general information and answers to frequently asked questions about our requirements, evaluation and grading process regarding the submissions to the assignments.
 
In short, for each assignment on this course we expect you to:
  • deliver README,
  • deliver documentation,
  • deliver program source code,
  • show us your personal understanding of the topics covered (to the extent that doing the assignment and being on this course allows),
  • state your sources and borrowed material and
  • commit your files to the SVN repository.
If you submit working proof of concepts with adequate documentations, your grade will probably be 3. For a 5, your submissions must be well done.
 

README file

This is a starting point for the assistant in the evaluation of your work. README must be a plain text document. Make clear what other files the assistant needs to see so that he has no difficulties to understand your solutions. Code building instructions should be in this file, too. If your code has any additional dependencies, they should be mentioned and associated links be provided. If your other documentation is reasonably short, you can embed it here.
 

Documentation

The total maximum length of the documentation for a single assignment is 5 pages (consider this as a soft limit). The exercise descriptions include information that you should put into this documentation. In addition, please report your working hours per person. We prefer either PDF (with standard fonts!), HTML or plain text, but Word documents are accepted as well.
 

Showing understanding: The documentation requirements in the individual assignments give a general list of the things you should cover. Please explain those topics with your own words so that the reader gets a rough idea of how you perceive them. It is always good to include some own analysis and your opinions, as it shows that you have thought about the subject and probably understood something about it.

Page count: The content and its relevance for the context are among the things that we evaluate. Keep in mind that simplicity is a virtue. The page count does not bring you points, but you will need to provide us sufficient information so that we could evaluate your work. For this purpose, you will probably want to produce a documentation of at least one page (or two) for each assignment.

Origin of work: When citing other sources, you should normally put everything into the context with your own words and never just copypaste a text as it is. State your sources and cite them so that we know what is your own and what is not. Use direct citations only when absolutely needed and mark them carefully (e.g. with quotes). Please also make all the material relevant.

Guidelines to failure, please do not follow: We will not be able to evaluate your work, if it consists of a bunch of copypasted text and unjustified code clips from all around the Internet. Such a submission would not show us your personal understanding of the subject. It may also lead to reduced points, since we would need to give you time to fix your work. If you haven't stated your references of cited information, there may even be further investigation about possible plagiarism. All of this would cause lots of extra work to the course staff.


Program code

Source code of your work products is required. Even if you put some binaries of your source code to the repository (which you are not supposed to do), we will not run your application using them. The following guidelines tell about borrowing existing source code.
 
We allow you to use code clips of reasonable size as utilities in writing applications. In contrast to utilities, our assignments are about applications. Applications utilize existing common tools in order to solve new specific problems. While code clips may give you shortcuts in the development of your application, you still need to show that you understand the underlying concepts that the assignment is about.
 
Tell about the borrowed code. As with other references, you must also mention the origin of them. One way to do this is to put the code origin (e.g. URL, book page) into a comment just above the clip.
 
Libraries are allowed with some limitations. We allow standard libraries of the programming languages as such and do not require any approval for their use. You may also use other third-party libraries, unless they make your own contribution trivial for learning purposes: if you cannot learn, you may not gain understanding either. Please ask, if in any doubt. Please remember to mention in your documentation, what kind of configuration of the used libraries is suitable for your application and where the libraries are available.
 
You are not allowed to submit only the borrowed code for an exercise. Unless we ask you to go through a tutorial, we cannot accept any copied solution alone, even if it fulfills the requirements of the exercise. It would not be a utility but an application, and you should create the application by yourself. Wrapping a ready solution with some generic stuff that is irrelevant to the learning goals (e.g. parsing command line arguments or adding some fancy graphics to a web page) may even be considered as plagiarism, if the code origin is not stated.

Assignment submissions

We use a Subversion repository as our submission system. You should put each of the assignments to a separate directory as instructed in the assignments. We do not accept any submissions by email. All the deliverables must be committed to the repository.
 
Definition of submission: By default, we will consider your submission to be the latest revision in SVN at the time of deadline. While we will not care about any other revisions, we encourage you to use the repository as it would be normally used in terms of code sharing and maintaining change history.
 
Ensuring that commit is OK: It is quite easy to check repository status with SVN. If you want to be certain that you have committed the right documents to the repository, please do not send an email requesting us to do it for you. Instead, take a look at "svn help log" and "svn help status". If still uncertain, just make a new checkout to another directory and look at the contents. You may even try to URL in your web browser.
 
Unnecessary files: Please do not submit binary files without a good reason. One of the basic ideas of version control is to look at the differences between two versions of the same file. With binary files, differences do not generally make sense. You may also want to google "svn:ignore" in order to get rid of those extra files in "svn status" listing.
 
Using comments: It is much easier to keep on track with changes and recapture what you have done earlier, if the changesets are commented. Therefore comment your changesets, when you are committing them.
 

Evaluation and Grading

Each of our assignments is first evaluated individually. We give a certain amount of points for every exercise and determine an assignment-specific grade. Our evaluation criteria determine the quality of the submissions so that the given points should meet roughly the following grades.
  • 1: barely meeting the requirements
  • 3: a working proof of concept
  • 5: a well-worked exercise
A linear formula gives the grade for each assignment. The total grade for the assignments is a weighted average of the individual assignments. We use unrounded values of grades to determine the weighted average. The weights and the formulae for the assignments are as follows.
	# Assignment 1: 20 %
	assignment1_grade = max(0, min(5, points / 2))
	# Assignment 2: 40 %
	assignment2_grade = max(0, min(5, (points - 5)/3))

	# Assignment 3: 40 %
	assignment3_grade = max(0, min(5, (points - 5)/3))
	assignment_total_grade = round(max(0, min(5, weighted_average))) 

Any Questions?

Please ask us and we will try to answer.