ING100-G Programmering og IKT-sikkerhet or equivalent.
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
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.
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.
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.
Assessment methods and criteria
Exam (80%) and project (20%). Graded assessment.
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.