Advanced Programming Concepts
from
Monday 8 October 2012 (08:00)
to
Friday 12 October 2012 (18:00)
Monday 8 October 2012
13:30
Welcome
-
Thomas Schoerner-Sadenius
(
DESY
)
Welcome
Thomas Schoerner-Sadenius
(
DESY
)
13:30 - 13:45
Room: SR4
13:45
An introduction to UML
-
Stefan Kluth
(
MPI für Physik
)
An introduction to UML
Stefan Kluth
(
MPI für Physik
)
13:45 - 15:00
Room: SR4
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.
15:00
Coffee break
Coffee break
15:00 - 15:30
Room: SR4
15:30
Test-Driven Development
-
Peter Steinbach
(
Institut für Kern- und Teilchenphysik
)
Test-Driven Development
Peter Steinbach
(
Institut für Kern- und Teilchenphysik
)
15:30 - 16:30
Room: SR4
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.
Tuesday 9 October 2012
09:00
Refactoring
-
Maria Grazia Pia
(
CERN
)
Refactoring
Maria Grazia Pia
(
CERN
)
09:00 - 10:30
Room: SR4
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.
10:30
Coffee break
Coffee break
10:30 - 11:00
Room: SR4
11:00
Class design
-
Peter Steinbach
(
Institut für Kern- und Teilchenphysik
)
Class design
Peter Steinbach
(
Institut für Kern- und Teilchenphysik
)
11:00 - 12:30
Room: SR4
An introduction to class design principles following Robert C. Martin. Exercises will be provided that are worked upon during the class.
12:30
Lunch break
Lunch break
12:30 - 13:30
Room: SR4
13:30
Project work
Project work
13:30 - 18:00
Room: SR4
Wednesday 10 October 2012
09:00
Design patterns 1
-
Stefan Kluth
(
MPI für Physik
)
Design patterns 1
Stefan Kluth
(
MPI für Physik
)
09:00 - 10:30
Room: SR4
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.
10:30
Coffee break
Coffee break
10:30 - 11:00
Room: SR4
11:00
Design patterns 2
-
Stefan Kluth
(
MPI für Physik
)
Design patterns 2
Stefan Kluth
(
MPI für Physik
)
11:00 - 12:30
Room: SR4
This lecture is at the heart of this workshop. It will try to continue addressing Gang-Of-Four design patterns and discuss their implementation.
12:30
Lunch brek
Lunch brek
12:30 - 13:30
Room: SR4
13:30
Project work
Project work
13:30 - 18:00
Room: SR4
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.
19:00
Dinner
Dinner
19:00 - 22:00
Room: DESY Canteen appendix
Thursday 11 October 2012
09:00
OO Basics
-
Stefan Kluth
(
MPI für Physik
)
OO Basics
Stefan Kluth
(
MPI für Physik
)
09:00 - 10:30
Room: SR4
10:30
Coffee break
Coffee break
10:30 - 11:00
Room: SR4
11:00
Good software practice
-
Jan Engels
(
DESY
)
Good software practice
Jan Engels
(
DESY
)
11:00 - 12:30
Room: SR4
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.
12:30
Lunch break
Lunch break
12:30 - 13:30
Room: SR4
13:30
Project work
Project work
13:30 - 17:00
Room: SR4
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.
17:00
Experience from industry: Basler
-
Mark Hebbel
(
Basler
)
Experience from industry: Basler
Mark Hebbel
(
Basler
)
17:00 - 18:00
Room: SR4
Friday 12 October 2012
09:00
(tba)
-
Raphael Ahrens
(
U Wuppertal
)
(tba)
Raphael Ahrens
(
U Wuppertal
)
09:00 - 10:30
Room: SR4
10:30
Coffee break
Coffee break
10:30 - 11:00
Room: SR4
11:00
Project work and discussion
Project work and discussion
11:00 - 12:30
Room: SR4
Solutions to the student projects are presented and their implications and virtues are discussed in interaction with the interested audience.