MAS417 Programming and Software Development
- ECTS Credits:
- 7.5
- Responsible department:
- Faculty of Engineering and Science
- Lecture Semester:
- Autumn
- Teaching language:
- Norwegian or English
- Duration:
- 1 term
The course is connected to the following study programs
Teaching language
Norwegian or EnglishRecommended 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.
Assessment methods and criteria
Exam (80%) and project (20%). Graded assessment.