Skip to content
Snippets Groups Projects
training.md 7.61 KiB
Newer Older
<!--- Copyright 2002-2014 CS Systèmes d'Information
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
    http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

Training
========

Overview
--------

You can get the most from Orekit by attending the training sessions
organized by CS Systèmes d'Information. The instructors are
the experts who design, develop, maintain and use Orekit.

The available training programs are geared toward those who are willing to
use object-oriented technology in their projects and who have a space
flight dynamics background rather than information technology background.
These programs differ from classical object-oriented training sessions due
to this strong orientation towards numerical computation and its focus on
practical problems encountered in this field, such as reliability, numerical
robustness and performance.

Training programs
-----------------

The complete set is split in three sessions

### Object-oriented technology for numerical computing

This session is oriented towards trainees who are not computer science
experts. The following concepts are taught:

   * the history and evolution of programming languages
   * the programming paradigms introduced in each programming language generation
   * influence of these paradigms on development methods and on daily work
   * limiting factors with each generation of programming languages
   * why and how new paradigms have been added over time

|   type   |                              prerequisites                                                | duration |
|----------|-------------------------------------------------------------------------------------------|----------|
|  lecture | basic knowledge of development principles with programming languages like FORTRAN or C    |   1 day  |
session 1

At the end of this session, trainees will have a clear understanding of the differences
between functional programming, imperative (procedural) programming, and object-oriented
programming. They will know about primitive types, user types, dynamic memory allocation,
data abstraction, classes and inheritance.

### Object oriented concepts and the Java language

This session is a more general training session for the Java programming language.
It is not directly oriented towards numerical computation. The following concepts
are taught:

   * Java language principles
   * Java language syntax
   * Main standard packages and classes
   * Eclipse integrated development environment
   * Maven build tool
   * Testing tools (Junit, Jacoco)
   * Auditing tools (Checkstyle, Findbugs, PMD ...)

|              type            |                           prerequisites                           |  duration |
|------------------------------|-------------------------------------------------------------------|-----------|
|  lecture, hands-on practice  | knowledge of object-oriented principles as presented in session 1 |   4 days  |
session 2

At the end of this session, trainees will know the syntax of the Java language and have
gained an initial development experience that equips them to read and understand existing
Java source and to develop small standalone Java applications.

### Developing numerical applications in the Java language - using Apache Commons Math and Orekit

This session is also oriented towards trainees who are not computer science experts
but rather space flight dynamics engineers and numerical analysts. It adds the necessary
do's and don'ts that apply to high performance and robust numerical applications
development, especially in mathematics and space flight dynamics fields. The following
topics are covered:

   * Setting up the Eclipse integrated development environment
   * Setting up the free software libraries Apache Commons Math and Orekit
   * Tour of all high level packages of Apache Commons Math and Orekit
   * Design patterns for development of robust and high performance numerical computation applications
   * Development of a complete standalone space flight dynamics application using existing Orekit
     library objects
   * Extending existing Orekit library objects to meet mission-specific needs

|               type           |                                           prerequisites                                                                                                                 |  duration |
|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|
|  lecture, hands-on practice  | space flight dynamics or numerical analysis background , knowledge of object-oriented principles as presented in session 1, basic knowledge of the Java language syntax |   3 days  |
session 3

At the end of this session, trainees will have a pragmatic knowledge of the benefits of
object-oriented paradigm for the development of scientific algorithms. They will understand
some common pitfalls and know how to avoid them in developing robust and high performance code.
They will know the available concepts and algorithms in the Apache Commons Math and Orekit
libraries. They have their first development experience of space flight dynamics applications
in an integrated development environment with these libraries.

Training sessions organization
------------------------------

The training sessions can be organized both at your premises anywhere in the world or at CS
premises in Toulouse (France). All sessions are limited to 8 students. Prices for the training
sessions at CS premises are shown in the following table:

|                                    session                                                               | industry, commercial companies | academics, research laboratories |  students  |
|----------------------------------------------------------------------------------------------------------|--------------------------------|----------------------------------|------------|
|  Object oriented technology for numerical computing (session 1)                                          |      600 €                     |      300 €                       | 150 €      |
|  Object oriented concepts and the Java language (session 2)                                              |     2400 €                     |     1200 €                       | 600 €      |
|  Developing numerical applications in the Java language using Apache commons-math and Orekit (session 3) |     1800 €                     |      900 €                       | 450 €      |
prices for training sessions at CS premises

The prices above include training fees, a USB stick containing lecture material and exercises,
and lunches. They include neither travel nor hotel fees.

For information about scheduled sessions or if you want to set up a session at your premises,
please use the general orekit email address: [orekit@c-s.fr](mailto:orekit@c-s.fr) or ask
CS space flight dynamics department at the following address:

    CS Systèmes d'Information
    BU E-space & Geoinformation
    parc de la plaine - 5 rue Brindejonc des Moulinais
    BP 15872
    31506 Toulouse CEDEX 5
    FRANCE

    phone: +33 5-61-17-66-66 (ask for Luc Maisonobe or Nicolas Frouvelle)
    fax:   +33 5-61-34-84-15