Babes-Bolyai University of Cluj-Napoca
Faculty of Mathematics and Computer Science
Study Cycle: Graduate

SUBJECT

Code
Subject
MID0006 Individual Project
Section
Semester
Hours: C+S+L
Category
Type
Computer Science
3
0+0+1
speciality
compulsory
Information engineering
3
0+0+1
speciality
compulsory
Teaching Staff in Charge
Asist. VESCAN Andreea,  avescancs.ubbcluj.ro
Lect. GURAN Adriana Mihaela,  adrianacs.ubbcluj.ro
Assoc.Prof. CSATO Lehel, Ph.D.,  csatolcs.ubbcluj.ro
Lect. TRÎMBITAS Gabriela, Ph.D.,  gabitrcs.ubbcluj.ro
Lect. OLAH-GAL Robert, Ph.D.,  robert.olah-galcs.ubbcluj.ro
Aims
1. To complete a significant (C++ or Java) program, going through all programming activities (specification, design, coding, verification of these activities, validation, and documetation)
2. To elaborate a clear and complete documentation, and to respect the schedule of a project.
Content
- Each student receives a project, that must be finished going through all known steps: specification, design, coding, verification (inspecting all phases, testing) and validation.
- A documentation for each above mentioned activity must be written
- Also, a documentation for possible uses must be provided

- The documentations for each step of the development of the software product must contain:
D1. Definition of the problem to be solved -(Initial) statement of the problem, in natural language, as short as possible (without implementation or usage details).

D2. Rigorous specification, with: DATA, RESULTS, Preconditions, Postconditions. Stating the significance of each element with its preconditions and postconditions (either in natural language, or formally).
The project theme will be selected at the first lab. The initial presentation will be in natural language, as clearly and concisely as possible. The specification has to cover:
- what functions the program has to realize
- inputs
- computations
- outputs
- used documents and required reports (listings);
- amount of data to be computed.
D3. The design documentation will cover:
- all the necessary diagrams;
- specification of every subalgorithm, stating the meaning of each argument;
- all the Pseudocode subalgorithms.
D4. Source code (only in electronic format)
The source text will have to contain enough comments for the internal documentation of the program. The code has to be carefully written, especially with respect to the clarity and the ease of reading of the program by other people.

D5. Testing documentation - must contain test data for each used subslgorithm and for every implemented functionality. The development of the test cases will be done using black-box testing white-box testing.

D6. Users guide (in electronic format).

Remarks
1) All the data known to the problem, data having permanent character, will be delivered as text files, and the results will be available as text files (formatting the output is required), as well. Example: the list of people living in a bloc of flats, or the list of university employees.
2) The design paradigm used to solve the problem is necessarily OBJECT ORIENTED PROGRAMMING
3) It is allowed to use data structures from APIs, but the choice of a data structure must be well justified (in terms of complexities on needed operations)
4) The final project is not necessary to have a graphic user interface (it is allowed, but not necessary)
5) Validation on input data is strongly recommended!
6) Runtime exceptions must be carefully handled.
7) The projects have a reasonable length (between 1000 and 2000 statements in the final version)
8)The accepted programming languages are C++ and Java;
9) The documents are written with a left margin of 2 cm!
10) Program verification is formed of more activities:
• inspection of all documents
• testing of all important subalgorithms and the program—wide testing
• final validation, with real data
11) Each document will have clearly written the document title, author, group and the writing date.

The following table contains the activities per weeks and the delivery date for each development step for the project.

No. Step name Delivery date
1. Definition and specification.Specification inspection Laboratory 2
2. Design documentation for the project. Design inspection Laboratory 3
3. Coding documentation. Coding inspection Laboratory 4
4. Program testing Laboratory 5
5. Testing documentation. Corrections during debugging Laboratory 6
6. User guide. Program validation Laboratory 6,7
7. Final delivery and grading Laboratory 7

References
1. M. Frenţiu, H. F. Pop, G. Serban, Programming Fundamentals, Cluj University Press, 2006, 234 pag.
1. M. Frentiu, I. Lazar, Bazele Programării: Proiectarea Algoritmilor, 2000, Ed. Univ. Petru Maior, Tg.Mureş 184 pag.
2. M. Frentiu, I. Lazar, S. Motogna, V. Prejmerean, Elaborarea algoritmilor, Ed. Presa Universitara, Clujeana, Cluj-Napoca, 1998, 188 pag.
3. M. Frentiu, I. Lazar, S. Motogna, V. Prejmerean, Programare Pascal, Ed. Presa Universitara, Univ. "Babes- Bolyai" Cluj-Napoca, 1998, 392 pag.
4. I. Lupea, M. Lupea, Limbajul C. Teorie şi aplicaţii. Editura Casa Cărţii de ştiinţă, Cluj-Napoca 1998.
5. M. Frentiu, Verificarea corectitudinii programelor, Ed.Univ. Petru-Maior, Tg.Mureş, 2001.
Assessment
Grading will be done for every step from the following table, the grade of the semester activity being their average (grade A).
Any documentation step not delivered will be graded with 1. If the delivering of a document is done later than scheduled, the grade will be diminished by the number of delay weeks.

For the program correctness and completeness, at the moment of program validation a second grade will be given (grade V). This grade takes into account the realized documentation and the correspondence between the original specification, the project documentation and the final product.

During the last week each student will deliver the whole documentation set. The documentation written during the semester, as well as the source code and the users guide, both in electronic format, will be handed over to the coordinating faculty member (stated at the beginning of this document) and will be graded (grade D). No delays are accepted, the lack of documentation having as a consequence failure to promote this course. The grades corresponding to non-promotions for this reason will be marked in the official exam catalog in the first day of the examination session!

The final grade will be computed as follows: Final grade = (A + V + D)/3

The web page of the course http://www.cs.ubbcluj.ro/~avescan/
Section Teaching, Individual Project.
Links: Syllabus for all subjects
Romanian version for this subject
Rtf format for this subject