Studyinfo subject DAVE3605 2022 HØST
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
- Weight
- 10 ECTS
- Year of study
- 2022/2023
- Schedule
- Programme description
Introduction
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:
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.