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
  • Issue tracking
  • Documentation

Correctness

  • Existence of golden
  • Quality of golden
  • Development procedure
  • Validation process

Software Architecture

  • SOLID
  • API granularity
  • API stability
  • Proper use of high-level language wrapping
  • Level of modularity
    • C++ code structure
    • Python code structure
  • Profiling
  • Runtime
  • Memory
  • Design for testing
  • Iterative design

Presentation

  • Technical fluency
  • Slide clarity
  • Time control
  • Appearance