Skriv ut | ![]() | Lukk vindu |
Vår 2023
DTE-3607 Systems Programming for Computational Mechanics - 10 stp
The course is administrated by
Type of course
Course contents
Efficient implementation and practical aspects of scientific instrumentation.
Fundamental tools of C++ to enforce type safe programming of systems software:
- Concepts, templates, encapsulation (structs/classes and namespaces),
- abstraction, inheritance, type elision,
- memory-management and owners,
- advanced use of polymorphism, and strict static analysis.
Instrumentation using static and dynamic analysis:
- Branch misprediction,
- cache-misses,
- reliable and statistically relevant benchmarking, and
- debugging.
Systems programming demonstrated using mechanical engineering applications
- correct-tool-for-the-job by choosing the best approach to solve a given problem,
- hands-on experience with data-driven approaches and how they differ from object-oriented approaches,
- modularization and distribution of work,
- efficient linear-algebra libraries,
- utilization of differential geometry and vector mechanics,
- numerical accuracy and reliable metrics
Application deadline
Admission requirements
A relevant undergraduate bachelor Engineering programme with minimum 25 credits mathematic, 5 credits statistics and 7,5 credits Physics
Application Code: 9371
Prerequisite(s) Knowledge of and experience with C++ and object oriented analysis, design and programming.
Objective of the course
On completion of the course, the successful student is expected to have the following:
Knowledge:
- The candidate will have knowledge of a type safe programming subset of C++ and the related core guidelines.
- The candidate will have knowledge of software profiling via dynamic program analysis that measures time- and space complexity of a program and methods used to determine best-approaches based on domain specific problems and target architecture.
- The candidate will have domain specific knowledge in geometry and related mathematical spaces, simulation and ODE-solvers.
- The candidate knows how to use and write program libraries and APIs and how this relates to end-user applications.
Skills:
- The candidate will work independently with software development, by analyzing sub-problems and make plans for solving them analytically.
- The candidate will be able independently to construct large and complex computer programs running on different computer architectures.
- The candidate will be able to independently choose the right implementation approach based on scientifically founded reasoning, metrics, instrumentation, and analysis.
General competence:
- The candidate is influenced to maintain and develop curiosity and values such as openness, precision and the importance of separating between knowledge and opinions.
- The candidate can write a scientific report, which clearly presents the candidate's own contribution within the problem context.
Language of instruction
Teaching methods
Date for examination
The date for the exam can be changed. The final date will be announced at your faculty early in May and early in November.