Professional Programming
Study plans 2016-2017 - IMT3602 - 5 ECTS


IMT2021 Algorithms

IMT2243 Software Engineering

On the basis of

Working on a large full semester project in another course, for example the Bachelor Oppgave or Masters Thesis. 

Expected learning outcomes

The students will learn skills and knowledge related to developing a project using the principles of professional software development.


  • Understanding the strenghts and weaknesses of different programming languages
  • Understanding the need for process control, and communication systems for software development


  • Use of version control systems in large development projects, including ticket tracking, branching, SKUs and deployment
  • Ability to comment code in accordance with an agreed standard and in a professional manner
  • The ability to program for clarity
  • Develop and build library components for larger systems
  • Integration of multiple libraries into a large project
  • Perform code reviews

General Competence:

  • Professionalism in approach to software development
  • Give and receive critisim of coding practices and decisions
  • Ask accurate questions to solve logical and programming problems


The topics include but are not limited to:

  • Using version control in teams.
  • Coding styles
  • Comparitive languages
  • Bug tracking and solving
  • Commenting styles
  • Deployment of applications
  • Integrating libraries
  • Developing library modules.
  • Debugging
  • Testing
  • Deployment
  • Packaging

Teaching Methods

Group works
Project work

Teaching Methods (additional text)

The main teaching method for this course will be group meetings with code reviews. Students will present their work and have that worked review in front of the group.  This allows students to learn from each other, and helps students learn to present their code and defend their coding decisions

Form(s) of Assessment

Portfolio Assessment

Form(s) of Assessment (additional text)

The assessment of this course is based on:

  • Quality of code written
  • Quality of comments and coding style
  • Quality and relevance of comment comments in version control
  • Quality of involvement in code reviews and refactoring of code

Grading Scale

Alphabetical Scale, A(best) – F (fail)

External/internal examiner

Internal examiner, with external examiner every 5 years, next time in 2020-2021.

Re-sit examination

No resit. The course must be retaken.

Examination support


Teaching Materials

Web based resources, based on the language and processes chosen for the project.