NDAK14007U Applied Programming

Volume 2014/2015
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 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.

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 structs.
  • Interfaces between compiled and interpreted language
  • Basic computer architecture and hardware limitations
  • Version control (subversion, cvs, github)

Skills to:

  • Write small programs in C/C++
  • Use templates / STL
  • Compile and use external / 3rd. party libraries
  • Use native C/C++ in a library which can be called from a interpreted language
  • Account for pros and cons of different approaches of documenting code
  • Select quality assurance appropriate for different types of scientific software

Competences to:

  • Translate a scientific problem into an executable program using (C/C++) that solves the problem.
  • Participate in software development involving a shared code base.
The course requires Linear Algebra including programming experience in one of the following languages Python / R / MATLAB / Maple
Lectures and asignments
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++.
  • Category
  • Hours
  • Exercises
  • 16
  • Lectures
  • 16
  • Preparation
  • 174
  • Total
  • 206
Credit
7,5 ECTS
Type of assessment
Continuous assessment
4 individual asignments
Marking scale
passed/not passed
Censorship form
No external censorship
Several internal examiners
Re-exam
20 min. oral examination based on hand-ins and without preparation.
Criteria for exam assesment

An overall evaluation of the hand-ins
see learning outcome