Applied Programming (APP)

Course content

The purpose of the course is to introduce the programming language C/C++, key programming concepts in a scientific context, and guidelines for documentation. The course will enable the student to develop the C/C++ code needed to process large amounts of scientific data that cannot be handled in interpreted languages such as MATLAB, Python, Maple, or R.

The teaching will be based on examples from linear algebra.

Contents:
C/C++, problem modeling, control and data structures, encapsulation, calls to functions in C/C++ from Java / Python / R / MATLAB,  the use of classes and libraries including an overview of libraries for scientific programming, and introduction to object-oriented programming.

Education

MSc Programme in Bioinformatics
MSc Programme in Physics

MSc Programme in Physics w. minor subject

Learning outcome

Knowledge of:

  • Several programming paradigms; translated versus interpreted languages
  • Imperative control structures and basic data structures
  • Encapsulation of data states by means of structures and objects
  • Interfaces between compiled and interpreted language
  • Basic computer architecture and hardware limitations
  • Version control (subversion, cvs, github)

 

Skills in:

  • Writing small programs in C/C++
  • Using templates / STL
  • Compiling and using external / 3rd. party libraries
  • Implementing native C/C++ in a library which can be called from a interpreted language
  • Finding, reading and using documentation for C/C++ libraries
  • Using tools and structured approaches to locate and correct errors

 

Competences in:

  • Translating a scientific problem into an executable program using (C/C++) to solve the problem
  • Participating in software development involving a shared code base

We use a flipped classroom teaching with focus on solving practical exercises which is a methodology with only a few short lectures.

The course is based on assignments, which are solved at home and in class. We encourage all students to show up at the exercise classes. All assignments are a part of the evaluation, and the teachers will be present during all exercise classes.

Lectures will be given when general issues arise with respect to understanding. We will NOT give lectures covering the entire syllabus, and it is the students' responsibility to read the reading materials. However, the teachers are available to explain any topic in the syllabus at the students' request during exercise classes. We have a priori selected a few difficult topics which will be covered during exercises through short lectures.

The first part of the course will rely on a book.

The second part will rely on online resources.

See Absalon for the specifics when the course is set up.


 

The course requires Linear Algebra including programming experience in one of the following languages: Python / R / MATLAB / Maple.

The course is intended for all non-computer science students at the Faculty of Science, including but not limited to Physics, Math, Chemistry, Biology etc , and serves as an introduction to programming in C/C++.

Written
Collective
Continuous feedback during the course of the semester
ECTS
7,5 ECTS
Type of assessment
Continuous assessment
4-6 individual assignments. All assignments have to be passed in order to pass the course.
Aid
All aids allowed
Marking scale
passed/not passed
Censorship form
No external censorship
Several internal examiners
Criteria for exam assessment

See Learning Outcome.

Single subject courses (day)

  • Category
  • Hours
  • Lectures
  • 4
  • Practical exercises
  • 84
  • Preparation
  • 118
  • English
  • 206