EPN-V2

DAVE3605 Efficient C/C++ Coding Techniques Course description

Course name in Norwegian
Effektiv kode med C og C++
Weight
10.0 ECTS
Year of study
2021/2022
Course history
  • Introduction

    This course is not given spring 2022. 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

    Bygger på emnene Programmering og Programutvikling.

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

    Knowledge

    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

    Skills

    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

    None.

  • Assessment

    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

    All.

  • Grading scale

    Grade scale A-F.

  • Examiners

    One internal examiner. External examiners are used regularly.

  • Overlapping courses

    Emnet er ekvivalent (overlapper 10 studiepoeng) med: LV128A og LV126A.

    Ved praktisering av 3-gangers regelen for oppmelding til eksamen teller forsøk brukt i ekvivalente emner.