spring 2024
DTE-3607 Systems Programming for Computational Engineering - 10 ECTS

Type of course

The course can be taken as a single course.

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.

Course content

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 computational 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

Recommended prerequisites

DTE-3611 Algorithms - Design and Analysis, MAT-3800 Linear Algebra II, MAT-3801 Numerical Methods

Objectives of the course


  • A type-safe programming subset of C++ and its related core guidelines.
  • 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.
  • Domain specific knowledge in geometry and related mathematical spaces, simulation and ODE-solvers.
  • Knows how to use and write program libraries and APIs, and understands how this relates to end-user applications.


  • Can work independently with software development, by analyzing sub-problems and make plans for solving them analytically.
  • Can construct large and complex computer programs running on different computer architectures.
  • Can choose the right implementation approach based on scientifically founded reasoning, metrics, instrumentation, and analysis.

General competence:

  • Utilize computers to solve problems in engineering applicable to a variety of industries and academic fields.
  • The candidate is influenced to maintain and develop curiosity and values such as openness, precision, and the importance of distinguishing between knowledge and opinions.
  • Present results in a scientific report, which clearly presents the candidate's own contribution within the problem context.

Language of instruction and examination


Teaching methods

The subject is a project based course that gives 10 credits (corresponds to at least 6 weeks, or approx. 250-300 hours, of work). The teaching is organized as problem-based workshops. There will be lessons distributed throughout the four weeks of intensive teaching as directed by the teacher. Most of the time will be spent on hands-on problem solving and computer programming.

Information to incoming exchange students

This course is available for inbound exchange students.

This course is open for inbound exchange student who meets the admission requirements. Please see the Admission requirements.

Do you have questions about this module? Please check the following website to contact the course coordinator for exchange students at the faculty: INBOUND STUDENT MOBILITY: COURSE COORDINATORS AT THE FACULTIES | UiT


Examination: Date: Duration: Grade scale:
Oral exam 30.05.2024 08:00
40 Minutes A–E, fail F

Coursework requirements:

To take an examination, the student must have passed the following coursework requirements:

Report and Source Code Approved – not approved
UiT Exams homepage

More info about the coursework requirements

Hand-in of a report and source code as specified by the teacher.

More info about the oral exam

Individual exam.

Re-sit examination

There will not be arranged a re-sit exam for this course.
  • About the course
  • Campus: Narvik |
  • ECTS: 10
  • Course code: DTE-3607
  • Tidligere år og semester for dette emnet