INSTRUCTIONS FOR THE PROGRAMMING IN C PROJECT (Fall 2009)

GENERAL

The project work 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 9, NOVEMBER 2009.

A GROUP WORK OR AN INDIVIDUAL WORK

The project is done either 2-3 persons in a group or independently. Group works should have in addition a test module to the data structure module. In groups each member should do about the same amount of work. In group works there should be written as a comment to each function who has done it.

BEGINNING OF THE WORK AND GUIDANCE

Choose one programming task from the task list and implement it with the ANSI-C language or using c99 standard.
Tell the programming task you have chosen using courses Moodle discussion area 12.10 at the latest. If you make your project work in a group, then one of the group members should inform the programming task of the group and the names of members. The group may have 2-3 students. Signing up for the first time in the course moodle area you need the word htyo.

Guidance to the project work is available during exercixe sessions and computer room sessions.

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). Your program should be compiled by gcc with options -ansi -pedantic -Wall and Wextra without warnings. You may also use c99 standard. 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:

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

DOCUMENTATION: A NECESSITY

Make a short help file (2-4 pages) including structure document of the program and instructions how to use the program. Make comments in code files and give a brief explanation about testing in your documentation.

Document your program:

HANDING IN THE PROJECT: HOW TO DO IT

Work must be submitted for review no later than Monday 9.11. The project work is submitted for review in the course area of the moodle.

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

You can return tar-file also as a compressed tgz or gz file. (Instructions for tar-making and file compression)

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

Feedback to project work

Feedback is given through Moodle. If necessary, we can use meetings and oral feedback, especially if additional guidance is necessary. If the project is not acceptable, it is given for repair at most once. Correction time is 1-2 weeks. After repair, the work will be accepted or finally rejected. If the project is rejected, then also points from the exam are not anymore valid.

Good luck for your work!