Cultures of Programming: The Development of Programming Concepts and Methodologies Tomas Petricek General