Homework submission rules

Basic rules

  • The entire submission must be original code created by you without any additional "inspiration" (i.e. copying other solutions).

  • Do not share your code, so that it does not become someone else's "inspiration".

  • Solutions can be written in C / C ++ (recommended), Java, or C #.

  • The aim of this course is to understand the data structures and algorithms, and be able to implement them. Therefore it is not allowed to use third-party libraries in your solutions.

  • So you can use (the names are libraries from Visual C / C ++, defined by ISO stardard, not Microsoft)

    • Standard design of your programming language

    • Standard libraries to work with files (for example stdio, iostream), memory (stdlib, memory), strings (string), time (chromo, time) and supporting libraries (exception, functional, iterator, limits, tuple, type_traits, utilities, etc).

    • Conversely, you may NOT use

      • Library data structures (vector, map, set, queue, deque and others)

      • Algorithms (such as library algorithm, in particular, it is prohibited to use std::sort).

  • Solutions must be submitted through the submission server.

  • Solutions that are not in compliance with these rules will not be evaluated.

Evaluation

Each exercise is worth 100 points.

With the exception of the first exercise, the points will be distributed as follows:

  • 20 points for the graphs

  • 20 points for the description

  • 20 points for the quality of the source code

  • 40 points for successful completion of the posed task

Basic criteria

  • Solutions must meet the specifications and the code must be functional (no bugs).

  • You may resubmit a corrected solution, but this will incur a penalty of 10 points for the failed attempt.

  • Solutions must be submitted within the deadline (penalties: 1 point for each hour of delay).

Graphs (except first exercise)

The aim is to draw a graph from which the behaviour of the specified data structures can be read. Therefore the graph must be clearly visible and all curves and axes must be labelled appropriately. Use a logarithmic scale whenever this better displays the measured data.

Description of results (except first exercise)

Explain the measured values, especially asymptotic trends and their multiplicative constants. Furthermore, compare the behaviour of different data structures, and the influences of parameters and data generators. Theoretical knowledge from lectures and exercises can be used without repeating proofs.

Source codes

Your source code will be evaluated according to the usual criteria (readability, structure, commenting ...).