Practical Project

To get the most from the technical materials, it is important for readers to practice the techniques in building real software of a scientific, mathematic, or numerical application. The project may be assessed based on the following guidelines: good engineering infrastructure, correct implementation and solution to the problem, adequate architecture, and clear presentation.

Software Engineering

  • Build system

  • Testing

  • Version control

  • History quality [adv]

  • Issue tracking [adv]

  • Documentation [adv]

Correctness

  • Existence of golden

  • Quality of golden

  • Sequence of development [adv]

Software Architecture

  • Modularity: SOLID, C++, and Python

  • Use of wrapping

  • API granularity and design for testing

  • Performance, including runtime and memory consumption [adv]

  • Design, including iterative implementation [adv]

Presentation

  • Technical fluency

  • Slide clarity

  • Time control

  • Appearance

adv(1,2,3,4,5,6)

Advanced points. It is recommended to address them after the basic points.