Article banner region

Introduction to Scientific Programming & Simulation

  • Photo: 
    Shutterstock, Mila Supinskaya

NOVA PhD course of 3 ECTS, organised by Prof. Arne Pommerening, Swedish University of Agricultural Sciences.
Course dates and location: 12-16 Jun. 2017, Umeå, Sweden.

Course Description
For many studies increasingly the application of advanced quantitative methods including simulations are required. Standard software for these specialised applications is not available and researchers are often faced with the task to develop their own computer code. This task is not easy for non-specialists, particularly if several programming languages have to be used at the same time.
The participants will be introduced to the essential concepts and techniques in programming necessary to directly engage in its scientific use.


  • Why is programming necessary for research work?
  • R refresher (basic knowledge is assumed)
  • Introduction to C++
  • Programming concepts (object-oriented, structured, re-usability of code, user interfaces)
  • Combining R and C++
  • R extensions, e.g. for reporting, NetLogo, Shiny
  • Introduction to simulations
  • Publications versus software, what is more important?
  • Version control, packaging, visualisation
  • Automated scientific reporting for reproducible research

Programme Outline
Pre-course preparation including brief description of PhD work.

On-site course:

  • 12 June:
    • Course introduction
    • Presentation of the participants
    • R installation and IDE RStudio, R refresher
  • 13 June:
    • Implicit and explicit loops in R
    • Scripting simple simulations
    • Effective data management and Visualisation in R
  • 14 June:
    • Concept of higher programming languages using C++ as an example
    • Data structures in C++, I/O
    • Syntax of C++
    • Object-oriented programming
    • Coding simple research applications
  • 15 June:
    • Combining R and C++ using Rcpp
    • Writing simple and more advanced research applications using R and C++ in combination
  • 16 June:
    • Combining R and NetLogo/Shiny
    • R packaging, version control, batch mode

Pre-/Post-Campus Assignments
The participants are expected to revise their R skills and to prepare a short presentation about themselves and their work to be delivered during the course.

Learning Outcomes

1. Knowledge:
By the end of the course it is intended that the participants:

    • Understand the difference in data types
    • Are able to program basic and more advanced simulation experiments in R
    • Are able to use C++ for programming basic research software
    • Can combine R and C++, R and NetLogo, R and Shiny for implementing their own quantitative research projects
    • Have a better understanding of code and data management

2. Skills:

    • Independently carry out successful quantitative research
    • Awareness of the computing, data and code management side of research

3. Competences:

    • Ability to design and carry out computer experiments

Evaluation Elements
Presentations and progress in the computer practicals are assessed during the course.

Pedagogical Approach
The idea of the course is to take scientific computing to a higher level. Towards this end the course will enhance the knowledge of R programming and introduce a higher programming language, which will be new to most participants. In the next step both languages will be combined to reach an even higher level. In addition to this, we will introduce other software combinations and also discuss effective code and data management.

Estimated Workload

  • 20 hours computer practicals
  • 20 hours lecture
  • 50 hours independent work

Prerequisite Knowledge
Basic knowledge of R, basic computer skills

Admission for NOVA courses is handled by the course organiser/ the NOVA member institution organising the course. Please see the links in the margin for more information.

Apply here

Published 6. April 2017 - 15:22 - Updated 6. September 2017 - 12:25

NOVA University Network


Postal address:
Ingrid Aksnes Hjetland
NOVA Secretariat
Norwegian University of Life Sciences
PO BOX 5003
NO-1432 Aas