Assesment and Grading Criteria

The exam consists in:

·         A written part (maximum duration 2h30)

·         An oral exam.

The written part includes:

·         Exercises/questions on theoretical aspects, maximum 12 points, maximum duration 50min

·         A programming part, maximum duration 1h40, available in 2 alternative modes:

·         Design and development of a program in C to solve a problem, the emphasis being on problem-solving and design skills (max 18 points)

·         Guided development of the solution to a problem, with less emphasis on design and problem-solving skills and more on the ability to use advanced C features (pointers, dynamic allocation, recursion) and on the knowledge of basic data structures and algorithms (max 12 points).

Both modes require the same approach to the subject.

Material available during the written part:

·         A C manual (e.g., Kernighan & Ritchie, Deitel & Deitel, or similar).

·         Header files for standard functions/ADTs unless explicitly forbidden.

·         No other books, notes, transparencies, etc.

·         No electronic communication tools (cell phones, tablets, laptops, etc.).

Each student must:

·         Make a copy of the program at the end of the written part (using carbon copy paper, cell phones, cameras, etc.).

·         Verify the correctness of the program.

·         Upload on the course webpage within 3 working days: a report (max 3 pages) describing the solution (data structures, algorithm, etc) and a copy of the working program, showing the changes with respect to the version handed in for ranking. See related documents for more details on how and what to upload.

In case the above material is not uploaded, the written exam will not be ranked.

Students whose mark in the written part is larger ot equal to 15/30 are entitled to sit for the oral exam. The oral exam consists in:

·         Questions on all the topics of the course, the goal being to rank the grade of theoretical knowledge.

·         Programs in C to evaluate skills related to the implementation and manipulation of data structures by means of advanced C programming constructs and to the implementation of variants of standard algorithms.

·         Questions on uploaded laboratory exercises.

The final mark integrates partial results and is not a mere average. Laboratory bonusses are not added to, rather they are included in the final mark.