Students’ existing programming skills are enhanced and applied on a practical level. The module conveys the competences for developing robust software applications in ubiquitous environments. Modelling approaches, failure sources and optimisation opportunities are understood at a code level.