Software has an abstract, ever changing and rapidly evolving nature. But what exactly are the attributes and properties of software, and what can be learnt from the way it is constructed? This presentation provides an overview of some of the mathematical properties of software, its structure, how it is constructed and also how it evolves over time. The findings of this work can be applied in designing better teaching strategies, and software engineering processes. Recorded on 13 March 2015.