Skip to content
Main menu hidden.

Design of high-performance software, 7.5 Credits

Swedish name: Design av högpresterande mjukvara

This syllabus is valid: 2018-12-31 and until further notice

Course code: 5DV172

Credit points: 7.5

Education level: Second cycle

Main Field of Study and progress level: Computing Science: Second cycle, has second-cycle course/s as entry requirements
Computational Science and Engineering: Second cycle, has second-cycle course/s as entry requirements

Grading scale: TH teknisk betygsskala

Responsible department: Department of Computing Science

Established by: Faculty Board of Science and Technology, 2019-03-14


The design of high-performance software for computation-intensive problems requires the integration of knowledge from several subject areas. Understanding the problem and its domain is crucial. Once we understand the domain we can identify or construct efficient algorithms and data structures that are capable of solving the problem quickly and reliably. We must then adapt and optimize these algorithms and data structures to the targeted type of computer system (multicore, heterogeneous, cluster, etc), which requires an understanding of computer architecture. Finally, we need an understanding of parallel programming in order to scale up the computation to multiple processors and/or accelerators.

These perspectives are relevant, to varying degrees, for all computation-intensive problems. When developing high-performance software, one central question is how to dynamically allocate time and effort to maximize the quality of the end product. Should more time be spent searching for more efficient algorithms or is it wiser to further optimize the current implementation to the targeted computer architecture?

In this course, the students practice and demonstrate their ability to design, implement and evaluate high-performance software for a compute-intensive problem in some domain. The main challenge throughout the course is to allocate (and re-allocate) time and resources wisely based on rational arguments supported by the literature and empirical data.

Expected learning outcomes

Skills and abilities
After successfully completing the course, the student shall be able to:
  • (1) design, implement and evaluate high-performance software for a compute-intensive problem for which high performance is desirable.
  • (2) collaborate professionally with other students on a common research and development project with a strict time budget.
Values and attitudes
After successfully completing the course, the student shall be able to:
  • (3) regularly evaluate and revise the most appropriate course of action towards a defined goal, based on rational arguments supported by the literature and empirical data.
  • (4) demonstrate a willingness to independently search for and learn from reliable scientific sources.

Required Knowledge

To be admitted you must have 60 ECTS in Computing Science or 2 years of completed studies (120 ECTS), in both cases includning the courses Efficient algorithms, 7.5hp, Computer Organization and Architecture, 7.5hp, and the course Parallel programming for multicore-based systems, 7.5hp or equivalent.

Proficiency in English equivalent to Swedish upper Secondary course English A/5. Where the language of instruction is Swedish, applicants must prove proficiency in Swedish to the level required for basic eligibility for higher studies.

Form of instruction

The instruction on this course consists of a combination of (mandatory) group-based supervision and whole-class seminars. The students are split into groups and each group works together on a common project. Each group regularly meets with the instructor to discuss what they have been doing, what the current obstacles are, and what they plan to do next. Regularly, but less frequently, all groups gather with the instructor in a whole-class seminar to present what they have accomplished thus far and what their current plans are.

Attendance is mandatory during both the group-based supervisions and the whole-class seminars.

Examination modes

The grades given on the course are Fail (U), Pass (3), Pass with Merit (4), or Pass with Distinction (5). The intended learning outcomes are assessed by evidence gathered from a combination of the following forms of examination:
  • Participation in group-based supervision and whole-class seminars.
  • An individually prepared annotated bibliography summarizing the scientific articles and technical reports studied during the course.
  • Participation in the group's live demo of the final product and oral presentation of its implementation.
Learning objective (LO) 1 is assessed primarily by the whole-class seminars, the live demo, and the oral presentation. The group-based supervisions aim to prepare the students for the assessment.

LO2 and LO3 are assessed by active participation in the group-based supervisions. The students are required to report how they collaborate and corrective feedback is given to guide the students towards professional collaboration with a feasible time plan. The students are required to describe and justify their immediate plans based on rational arguments supported by the scientific literature and empirical data.

LO4 is assessed by evaluating both the quantity and the quality of the scientific sources and summaries included in the individually prepared annotated bibliography. The group-based supervisions aim to guide the students towards understanding and meeting the requirements.

The level of the passing grade (3, 4, 5) is set to reflect how well the student has achieved the learning outcomes beyond what is required for passing. A student that has failed the examination of the course but has attended a majority of both the group-based supervisions and the whole-class seminars can, if the student explicitly requests it, be given a re-exam covering the parts that the student has missed (i.e., an annotated bibliography, a live demo, and/or an oral presentation). Otherwise the student can enroll the next time the course is given. However, the student does not have the right to continue with the same project.

A student who has passed an examination may not be re-examined.

A student who has taken two tests for a course or a segment of a course, without passing, has the right to have another examiner appointed, unless there exist special reasons (Higher Education Ordnance Chapter 6, Section 22). Requests for new examiners are made to the head of the Department of Computing Science.

Examination based on this syllabus is guaranteed for two years after the first registration of the course. This applies even if the course is closed down and this syllabus ceases to be valid.

Deviations from the examination forms mentioned in this syllabus can be made for a student who has a decision on pedagogical support due to disability. Individual adaptation of the examination forms should be considered based on the student's needs. The examination form is adapted within the framework of the expected learning outcomes of the course syllabus. At the request of the student, the course responsible teacher, in consultation with the examiner, must promptly decide on the adapted examination form. The decision must then be communicated to the student.

Students have the right to be tried on prior education or equivalent knowledge and skills acquired in the profession can be credited for the same education at Umeå University. Application for credit is submitted to the Student Services / Degree. For more information on credit transfer available at Umeå University's student web,, and the Higher Education Ordinance (Chapter 6). A refusal of crediting can be appealed (Higher Education chapter 12) to the University Appeals Board. This applies to the whole as part of the application for credit transfer is rejected.

Other regulations

This course may not be used towards a degree, in whole or in part, together with another course of similar content. If in doubt, consult the student counselors at the Department of Computing Science and / or the program director of your program.

Course connections to programmes and degrees
The course can be part of the fulfilment of 45 credits (at least 37.5 of these on advanced level) within Computer Science when pursuing the specialization in Computer Science within a degree of Master of Science (Two Years) with Computing Science as Main Field of Study.


Valid from: 2019 week 10

Relevant and reliable scientific articles and technical reports selected by the student.