meta data for this page
This is an old revision of the document!
Generic instructions and requirements
- INDIVIDUAL WORK – NO COPYING – NO GROUPWORK (discuss but do not share code)
- Except Assignment 1 - see the assignment description.
- Use C-language and GCC compiler
- Eliminate warning-messages (use
Follow ANSI standard (C89/90 =
-ansi, C99 =
Since some new network address structures and functions aren't yet added to ANSI standard, this requirement is removed.
- Program can be run in Linux (on computers in classroom 6325)
- Do not use external libraries (use only system libraries)
- Use iterative approach (no threads unless requested)
- Use a make file (see man make)
- Compile: make build
- Clean: make clean
- Comment and document your code
- Comments directly to source code files
- Add name, student number and email into beginning of EVERY file.
- Use good structure for your code
- Divide code to functions based on responsibilities.
- Divide functions to different files based on responsibilities.
- C-code in .c files and header descriptions in .h files.
- ONE MAIN FUNCTION IS NOT GOOD STRUCTURING OF CODE !
- !!!!!!! NO GOTO !!!!!!! People it is the year 2009, we're not anymore living in the 80s!
- Write a readme file, which contains:
- How to run the program.
- Description of the task (what has been done, what references used)
- Features that were implemented
- Description of division of code to separate files
- Own ides (text) or solutions (code) for improving the task
- Own improvements must clearly be a new feature, i.e. separate feature that enhances functionalities of the application.
- Must be documented! No documentation about own feature(s) → no additional points
- Check for error conditions
- Debug with GDB (see man gdb)
- Check that there are no memory leaks (use Valgrind, see man valgrind)
- REMEMBER TO CLOSE SOCKETS
- Free what you have allocated