spring 2024
DTE-3607 Systems Programming for Computational Engineering - 10 ECTS
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
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 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.
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
Schedule
Examination
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 |
- About the course
- Campus: Narvik |
- ECTS: 10
- Course code: DTE-3607
- Responsible unit
- Department of Computer Science and Computational Engineering