DAVE3605 Efficient C/C++ Coding Techniques Course description

Course name in Norwegian
Effektiv kode med C og C++
Study programme
Bachelorstudium i ingeniørfag - data / Bachelorstudium i informasjonsteknologi / Bachelorstudium i anvendt datateknologi
Year of study
Course history


The students shall acquire knowledge of and insight into the development of resource-efficient programs, primarily with the use of C++. The course will provide a useful foundation for students who wish to write resource-demanding, complex programs, such as games, simulations or visualisation, or programs that are to run in resource-constrained environments, such as routers, IP cameras and mobile devices. The course builds on the courses Programming and Program Development.

Recommended preliminary courses

The course builds up on programming.

Required preliminary courses

No requirements over and above the admission requirements.

Learning outcomes

After completing the course, the student is expected to have achieved the following learning outcomes defined in terms of knowledge, skills and general competence:


The student is capable of:

  • explaining the most important properties of C and C++
  • explaining the difference between static, dynamic and automatic memory allocation
  • explaining the difference between pointers, references and iterators
  • explaining what generic programming is
  • explaining what design patterns are and giving examples of such patterns
  • explaining the difference between dynamic and static linking


The student is capable of:

  • using C and C++ in their own projects
  • creatingh their own structs, classes and operators
  • using design patterns, generic programming and other abstractions efficiently
  • producing a complete program in C++, with an automated installation procedure

General competence

The student:

  • has a general understanding of the development of resource-efficient programs
  • is familiar with techniques for making programs more efficient at higher and lower abstraction levels

Teaching and learning methods

Lectures and practical work in the lab. Project assignment in pairs or groups (2-5 students)

Course requirements



Portfolio assessment subject to the following requirements:

  • 2 individual assignments
  • 1 group project (2-5 students)

Each of the three submissions consists of program code and a short report of 3-5 pages.

The portfolio will be given one final grade. All parts of the portfolio must be evaluated to pass in order to pass the exam.The exam result can be appealed.

In the event of resit and rescheduled exams, another exam form may also be used or a new assignment given with a new deadline. If oral exams are used, the result cannot be appealed.

Permitted exam materials and equipment


Grading scale

Grade scale A-F.


One internal examiner. External examiners are used regularly.