Advanced Programming Concepts

Europe/Berlin
SR4 (DESY)

SR4

DESY

Peter Steinbach (Institut für Kern- und Teilchenphysik), Stefan Kluth (MPI für Physik), Thomas Schoerner-Sadenius (DESY)
Description
The 2012 school and workshop on "Advanced Programming Concepts" continues the series started in Dresden in 2010, and it supplements the educational programming part of the GridKa school 2012.

The school, after quickly repeating, basic programming concepts like class design, UML and design patterns, will invite the participants to work in teams of two developers each, in a highly coordinated way, on a programming project. In the course of the workshop, advanced programming techniques (revision control, integration, build systems etc.), software design principles (from class to package to module level) and software development methods within large and small projects are discussed.

The participants of the school are expected to have good knowledge of the C++ programming language and, preferably, also of Python.

Fee: 50 €, to be paid in cash upon arrival

All Lectures can be viewed under http://webcast.desy.de/?m=201210&lang=en with permission of the speakers.



Participants
  • Alessandro Silenzi
  • Alexandru Dafinca
  • Annika Hollnagel
  • Annika Vanhoefer
  • Arne-Rasmus Draeger
  • Arwa Bannoura
  • Brendan O'Brien
  • Carmelo Evoli
  • Chen Xu
  • Christian Voss
  • christoph wasicki
  • Daniel Mühlheim
  • Daniele Cortinovis
  • Daniele Marconi
  • Dean Horton
  • Dimitrios Iliadis
  • Dörthe Kennedy
  • Eda Yildirim
  • Eike Schlieckau
  • Erik Etzelmueller
  • Hanno Perrey
  • Hartmut Stadie
  • Henning Kirschenmann
  • Holger Enderle
  • Jan Engels
  • Jan Timm
  • Joerg Behr
  • Klaus Zenker
  • Lorenzo Galli
  • Luigi Calligaris
  • Marco Filipuzzi
  • Marcus Morgenstern
  • Maria Grazia Pia
  • Markus Kaiser
  • Markus Seidel
  • Markus Zinser
  • Martin Urban
  • Mathias Götze
  • Matteo Centis Vignali
  • Matthias Stein
  • MEHMET OZGUR SAHIN
  • Milan Zvolsky
  • Oleg Kuprash
  • Olufemi Adeyemi
  • Pedro Cipriano
  • Peter Steinbach
  • Philipp Heimpel
  • Raphael Ahrens
  • Rieke Julian
  • Sebastian Lorenz
  • Sebastian Weber
  • Sergey Yaschenko
  • Stefan Kluth
  • Thomas Hartmann
  • Thomas Loddenkötter
  • Thomas Schoerner-Sadenius
  • Timothy Brooks
    • 1
      Welcome SR4

      SR4

      DESY

      Speaker: Dr Thomas Schoerner-Sadenius (DESY)
      Slides
    • 2
      An introduction to UML SR4

      SR4

      DESY

      Working on large(r) software projects makes the use of a common language an invaluable tool. This lecture will introduce UML as of version 1.3 and practise its use.
      Speaker: Stefan Kluth (MPI für Physik)
      Slides
    • 15:00
      Coffee break SR4

      SR4

      DESY

    • 3
      Test-Driven Development SR4

      SR4

      DESY

      This course will introduce software testing "why and what"'s in general. The main focus of this lecture will be put on Unit Testing and Test-Driven Development upon real-life examples in C++ and Python.
      Speaker: Peter Steinbach (Institut für Kern- und Teilchenphysik)
    • 4
      Refactoring SR4

      SR4

      DESY

      Code will never be perfect. Even worse, code always deteriorates! To cope with bad or inflexible code, the source code must or may be refactored once or twice or every day. For this, a small set of methods will be presented than may help developers to embed their daily duties into a formal basis. Further, the transformation of legacy code is discussed based on experiences made upon upgrading geant4.
      Speaker: Maria Grazia Pia (CERN)
      Slides
    • 10:30
      Coffee break SR4

      SR4

      DESY

    • 5
      Class design SR4

      SR4

      DESY

      An introduction to class design principles following Robert C. Martin. Exercises will be provided that are worked upon during the class.
      Speaker: Peter Steinbach (Institut für Kern- und Teilchenphysik)
      Slides
    • 12:30
      Lunch break SR4

      SR4

      DESY

    • 6
      Project work SR4

      SR4

      DESY

      Slides
    • 7
      Design patterns 1 SR4

      SR4

      DESY

      This lecture is at the heart of this workshop. It will try to gently introduce a selection of Gang-Of-Four design patterns and discuss their implementation.
      Speaker: Stefan Kluth (MPI für Physik)
      Slides
    • 10:30
      Coffee break SR4

      SR4

      DESY

    • 8
      Design patterns 2 SR4

      SR4

      DESY

      This lecture is at the heart of this workshop. It will try to continue addressing Gang-Of-Four design patterns and discuss their implementation.
      Speaker: Stefan Kluth (MPI für Physik)
      Slides
    • 12:30
      Lunch brek SR4

      SR4

      DESY

    • 9
      Project work SR4

      SR4

      DESY

      Students are grouped into development teams that can choose from a small pool of software projects related to scientific questions. Each group will be assigned to a tutor to guide their activities and to help incorporate the skills acquired during course into their software development.
    • 10
      Dinner DESY Canteen appendix

      DESY Canteen appendix

      DESY

    • 11
      OO Basics SR4

      SR4

      DESY

      Speaker: Stefan Kluth (MPI für Physik)
      Slides
    • 10:30
      Coffee break SR4

      SR4

      DESY

    • 12
      Good software practice SR4

      SR4

      DESY

      This course will give an introduction to code source management tools (e.g. subversion and mercurial) and value their use in everyday coding. Further, different aspects of coding style are discussed upon real-life examples. For working effectively with larger scale projects, testing and compilation should be a one-step process during the project build. This talk will also introduce the tools and methods provided by cmake/ctest.
      Speaker: Jan Engels (DESY)
    • 12:30
      Lunch break SR4

      SR4

      DESY

    • 13
      Project work SR4

      SR4

      DESY

      Students are grouped into development teams that can choose from a small pool of software projects related to scientific questions. Each group will be assigned to a tutor to guide their activities and to help incorporate the skills acquired during course into their software development.
    • 14
      Experience from industry: Basler SR4

      SR4

      DESY

      Speaker: Mark Hebbel (Basler)
      Slides
    • 15
      (tba) SR4

      SR4

      DESY

      Speaker: Raphael Ahrens (U Wuppertal)
      Slides
    • 10:30
      Coffee break SR4

      SR4

      DESY

    • 16
      Project work and discussion SR4

      SR4

      DESY

      Solutions to the student projects are presented and their implications and virtues are discussed in interaction with the interested audience.