meta data for this page

This is an old revision of the document!

Network programming @ Noppa | @ wiki - Updated: — julaakko 2009/09/29 14:45

Generic instructions and requirements

  • INDIVIDUAL WORK – NO COPYING – NO GROUPWORK (discuss but do not share code)
  • Use C-language and GCC compiler
    • Eliminate warning-messages (use -Wall for gcc)
    • Follow ANSI standard (C89/90 = -ansi, C99 = -std=c99 for gcc)
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.
    • !!!!!!! 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. Follow the given instructions on every assignment
    • 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)
    • Free what you have allocated