Skip to content
Snippets Groups Projects
prerequisites.md 2.08 KiB
Newer Older
Bernd Flemisch's avatar
Bernd Flemisch committed
# Prerequisites for the DuMu<sup>x</sup> course

For mastering the DuMu<sup>x</sup> course, we recommend the following prerequisites:

Mathis Kelm's avatar
Mathis Kelm committed
- **CLI:** Knowledge of basic Unix shell commands and interaction with a corresponding terminal is essential for the installation process as well as the compilation and execution of the exercise programs. We can recommend this [Software Carpentry course](https://swcarpentry.github.io/shell-novice/) for learning the basics and this [cheat sheet](https://phoenixnap.com/kb/wp-content/uploads/2022/11/linuxCommandsAllUsersShouldKnow.pdf) for remembering them.
Bernd Flemisch's avatar
Bernd Flemisch committed

- **C++:** DuMu<sup>x</sup> is a module on top of the C++ code base DUNE and itself contains several more advanced C++ language features. We recommend to be familiar with C++ templates and can recommend the following educational resources:
 
Mathis Kelm's avatar
Mathis Kelm committed
  In general we recommend most CppCon Back to Basics videos, but here is a list of tailored suggestions for this course.
Bernd Flemisch's avatar
Bernd Flemisch committed
  - OOP:
    - https://www.youtube.com/watch?v=32tDTD9UJCE
  - Compiling and Linking:
    - https://www.youtube.com/watch?v=cpkDQaYttR4
  - Classes:
    - https://www.youtube.com/watch?v=motLOioLJfg&t=2685s
    - https://www.youtube.com/watch?v=O65lEiYkkbc-
  - Functions:
    - https://www.youtube.com/watch?v=CpHX1Du5R0Q&list=PLHTh1InhhwT7gQEuYznhhvAYTel0qzl72&index=45
  - Templates:
    - https://www.youtube.com/watch?v=XN319NYEOcE&list=PLHTh1InhhwT4TJaHBVWzvBOYhp27UO7mI&index=13
    - https://www.youtube.com/watch?v=2Y9XbltAfXs&list=PLHTh1InhhwT4TJaHBVWzvBOYhp27UO7mI&index=14
  - Lambdas:
    - https://www.youtube.com/watch?v=IgNUBw3vcO4&list=PLHTh1InhhwT4TJaHBVWzvBOYhp27UO7mI&index=6
  - Smart Pointers:
    - https://www.youtube.com/watch?v=YokY6HzLkXs
  - Memory:
    - https://www.youtube.com/watch?v=rqVWj0aVSxg
  - STL:
    - https://www.youtube.com/watch?v=tXUXl_RzkAk

- **Git:** Some of the exercises require the use of Git. This [Software Carpentry course](https://swcarpentry.github.io/git-novice/) teaches Git for beginners, while this [cheat sheet](https://about.gitlab.com/images/press/git-cheat-sheet.pdf) lists the most common Git commands.