INSTRUCTIONS FOR THE PROGRAMMING IN C PROJECT (Autumn 2008)

GENERAL

The project is part of the course programming in C. Only those who have returned the project can participate to the separate exams. You can particape to the course exam even if you have not yet returned your project. The project work IS COMPULSORY. If it has not been completed, you may not enter the separate exam.

The project deadline is MONDAY 3, NOVEMBER 2008.

NOT A GROUP WORK

The project work is not a group work. You can discuss with others students about the solutions, but you should do yourself your project work and you should not copy it.

INSTRUCTION SESSIONS

Choose one programming task from the task list and implement it with the ANSI-C language.
Tell the programming task you have chosen by email to Päivi Kuupppelomäki (paivi.kuuppelomaki@cs.helsinki.fi) or during exercise session. Information about programming tasks that have been chosen is available from the course page.

Instruction sessions are available four times by Tomi Jylhä-Ollila.

You are responsible for the timetable yourself.

REQUIREMENTS (DEMANDS)

Used features (these should be found from the code): Use also other features, if the solution demands for it. You may work on whichever computer you wish, but the resulting program must run on any Linux machine in the CS Department (so keep portability in mind). You program should be compiled by gcc with options -ansi -pedantic and -Wall without warnings. There should be at least two separately compiled units. There should also be a makefile. And make command should make a runnable program.

Outline the problem field and set the function specification, data structures to be used and the main strategies of the solution. Present your choices and solutions to the instructor. A good set of data structures may save you a lot of code writing.

Evaluate the feasibility of your plan:

Put the presentations of functions, type specifications of data structures etc. into specification files with the ending .h. The actual code and variable specifications should be put into source code files with the ending .c.

Always make a separate main program and put functions that belong together according to some obvious task that they do together in their own source code files.

Always use good taste when you work:

Testing should be done systematically from the beginning. You can find small errors and 'suspicious' parts with the option -ansi -pedantic -Wall in the gcc compiler.

DOCUMENTATION: A NECESSITY

Document your program:

HANDING IN THE PROJECT: HOW TO DO IT

Hand in you project to Liisa Marttiselle (liisa.marttinen@cs.helsinki.fi) if it was a wordcounter to Tomi Jylhä-Ollila (tomi.jylha-ollila@helsinki.fi), if it was a Register of employees otherwise to Päivi Kuuppelomäki (Paivi.Kuuppelomaki@cs.helsinki.fi) by e-mail.

Make a one tar-package that is easy to open. The package should include all material of the project work:

Tar-file is saved on your own homepage. You can also send the compressed tar-file as tgz-file or gz-file by e-mail.

PROJECT MARKS

Project work carries ten marks:

Marks are suggestive. Marks can vary accorging to the programming task.

Program is returned to be corrected, if

  1. compilation of the program is not succesfull
  2. program stops in a severe runtime error
  3. program is not at all doing what is should do
  4. documentation is missing totally
  5. test description of the program is missing totally
  6. there are no functions in the program
  7. marks are less than 3
  8. Some of the features are missing (linked data structure with pointers, reading and writing from a file, command line parameters)
  9. the program is not divided into separate compilation units
  10. Makefile is missing

Good luck for your work!