The course is connected to the following study programs

Teaching language

Norwegian or English

Recommended prerequisites

ING100-G Programmering og IKT-sikkerhet or equivalent.

Course contents

Basic course in C++ and Python. The course is practice/skills oriented including mandatory exercises and a programming project. Language fundamentals are covered, such as data types, const and constexpr, variable declarations, memory allocation, operators, functions, type conversion, control structures, custom datatypes using classes, inheritance, use of templates and exceptions. Both procedural and object-oriented programming paradigms are covered. The UML language is used for modelling behavior and structure of object-oriented SW. Distributed version control is an integrated part of the programming project. Modern IDE will be used for writing, building and debugging SW. Python part covers language fundamentals, virtual environments, package managers and use of ML frameworks for simple ML training and prediction tasks.

Learning outcomes

On successful completion of the course, the students should be able to:

  • understand C++ and Python programming fundamentals

  • understand procedural and object-oriented paradigms

  • understand processes, threads, synchronization and communication in multi-process and multi-threaded SW

  • write, build and debug C++ software using modern integrated development tools

  • read, understand and explain C++ and Python program behavior

  • know how to find and use language specific documentation and standard libraries

  • use third party libraries in C++ and Python

  • read and create basic SW models using the UML language

  • write reusable and easy-to-maintain software

  • apply distributed, scalable version control during the SW development process

  • understand how programs written in multiple languages can be used together through ABI

  • understand and implement a set of widely used algorithms and data structures

  • know the concepts of cyclomatic complexity and Big O notation

  • know the basics of design patterns

  • perform basic machine learning tasks in Python

Examination requirements

The compulsory exercises must be approved in order to take the exam. Information about the compulsory exercises will be given in the LMS at the start of the course.

Teaching methods

Lectures, exercises and project. Exercises can be performed in the computer lab or as self-study. Physical presence can be required for exercise hand-in and approvement and project work. Teaching assistants and/or lecturer will be present during exercise hours.

Estimated workload for the average student is 27 hours per credit.

Evaluation

The person responsible for the course decides, in cooperation with student representative, the form of student evaluation and whether the course is to have a midway or end of course evaluation in accordance with the quality system for education, chapter 4.1.

Offered as Single Standing Module

Yes

Assessment methods and criteria

Written exam, 3 hours, (80%) and group project (20%). Graded assessment.

Last updated from FS (Common Student System) June 30, 2024 10:30:09 PM