Course code: DTE-3607

Systems Programming for Computational Engineering

Campus Narvik
Semester / Year Spring 2027
Level Higher grade level
Credits 10

About the course

The course can be taken as a single course.

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

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.

Objectives of the course

Knowledge:

  • 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.

Skills:

  • Can work independently with software development, by analyzing sub-problems and make plans for solving them analytically.
  • Can construct large and complex computer programs for execution on multiple 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.

Prerequisites

Recommended prerequisites

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

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.

Language of instruction and examination

English

Schedule

The schedules are normally finalized and published well in advance of the start of the semester, often a few weeks beforehand. This gives students the opportunity to organize their studies and prepare for upcoming activities.

It is recommended to check the schedule regularly, as changes may occur.

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: Student exchange | UiT

Examination

Exams
Oral exam Duration: 40 Minutes Grade:
A–E, fail F
Coursework requirements

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

Report and Source Code Grade:
Approved – not approved

Everything you need to know about before, during, and after the exam; registration, absence, appeals, and diplomas: 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

A re-sit exam will not be held.

Previous years and semesters

Contact us

Responsible unit: Department of Computer Science and Computational Engineering