Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - în limba engleză
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MID0006	Individual Project	

Semester	Hours: C+S+L+P	Category	Status	
3	0+0+1+0	speciality	compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Department	Type of activity	
surname	title	title		C	S	L	
GURAN Adriana Mihaela	Ph.D.	Lect.	Computer Science			*	

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
- To complete a significant (Pascal or C ++) program, going through all programming activities (specification, design, coding, verification of these activities, validation, and documetation) 
- To elaborate a clear and complete documentation, and to respect the schedule of a project.	

IV. Course contents
- Each student recieves 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 users must be provided	

V. Bibliography
1. Gamma E, Helm R, Johnson R, Vlisides J (1994): Design Patterns: elements of reusable object-oriented software, Addison Wesley.
2. Jacobson I, Booch G, Rumbaugh J (1998): The Unified Software Development Process. Addison Wesley Longman. ISBN 0-201-57169-2.
3. Knuth D.E. (1987) A számítógép-programozás muvészete, V. 1: Alapveto algoritmusok, Muszaki Könyvkiadó, (Simonovits Miklós), 654pp.
4. Knuth D.E. (1987) A számítógép-programozás muvészete, V. 2: Szeminumerikus algoritmusok, Muszaki Könyvkiadó, (Simonovits Miklós), 690pp.
5. Iványi A (szerk) (2004) Informatikai Algoritmusok, ELTE Eötvös Kiadó. (http://compalg.inf.elte.hu/~tony/Elektronikus/Informatikai/Infalg1E.pdf)
6. Cormen T.H, Leiserson C.E, Rivest R.L (2001) Algoritmusok. Harmadik kiadás. Muszaki Könyvkiadó, Budapest.
7. Horváth Z, Fóthi Á (2005) Bevezetés a programozásba, ELTE elektronikus tankönyv (http://people.inf.elte.hu/ekonyvtar/)
8. Frentiu M, Lazar I (2000) Bazele Programarii: Proiectarea Algoritmilor, 2000, Ed. Univ. Petru Maior, 184 pp.	

VI. Thematic of didactic activities per weeks
- 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

VII. Didactic methods used

VIII. 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 catalogue 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 taught in English is http://www.cs.ubbcluj.ro/~adriana/Teaching.html	

IX. Additional references

	Dean,							Department head,
         PhD. Prof. Leon Tambulea                              PhD. Prof Bazil Parv

	Date,							Course responsible,
	1.10.2011             				Lect. GURAN Adriana Mihaela, Ph.D.