Our systems are now restored following recent technical disruption, and we’re working hard to catch up on publishing. We apologise for the inconvenience caused. Find out more

Recommended product

Popular links

Popular links


Cultures of Programming

Cultures of Programming

Cultures of Programming

The Development of Programming Concepts and Methodologies
Tomas Petricek , Charles University, Prague
December 2025
Not yet published - available from December 2025
Hardback
9781009492348

Looking for an examination copy?

If you are interested in the title for your course we can consider offering an examination copy. To register your interest please contact [email protected] providing details of the course you are teaching.

c.
$110.00
USD
Hardback

    What defines a correct program? What education makes a good programmer? The answers to these questions depend on whether programs are seen as mathematical entities, engineered socio-technical systems or media for assisting human thought. Programmers have developed a wide range of concepts and methodologies to construct programs of increasing complexity. This book shows how those concepts and methodologies emerged and developed from the 1940s to the present. It follows several strands in the history of programming and interprets key historical moments as interactions between five different cultures of programming. Rooted in disciplines such as mathematics, electrical engineering, business management or psychology, the different cultures of programming have exchanged ideas and given rise to novel programming concepts and methodologies. They have also clashed about the nature of programming; those clashes remain at the core of many questions about programming today. This title is also available as Open Access on Cambridge Core.

    • Relates the history of programming to contemporary issues and debates
    • Provides a rigorous basis for folklore ideas such as the hacker culture
    • This title is also available as Open Access on Cambridge Core

    Reviews & endorsements

    ‘Tomas Petricek's engaging and very readable book argues that programming is a complex human activity that must be understood from multiple perspectives. Written with deep and sympathetic understanding, it provides a unique overview of the history of programming and programming languages and profound insights into current practice that will help demystify the ‘black art’ of coding.’ Mark Priestley, National Museum of Computing

    ‘Is programming a practice of hacking, engineering, mathematics, management, or humanities? As a computer scientist with the insights and style of a humanist, Petricek leads the reader through the last seventy years of programming to show how these practices have both persisted independently and interacted to produce key technical and methodological innovations through their disputes and synergies.’ Warren Sack, University of California, Santa Cruz, author of The Software Arts

    ‘For some, computer programming is an abstract activity like mathematics; for others, an act of craftsmanship; for others, an industrial tool of organisation and control. This book presents a history of programming that preserves all these different points of view; indeed, it shows that these different ‘cultures’ (and others) have been crucial to its development and success.’ Simone Martini, University of Bologna

    See more reviews

    Product details

    December 2025
    Hardback
    9781009492348
    420 pages
    244 × 170 mm
    Not yet published - available from December 2025

    Table of Contents

    • 1. Introduction
    • 2. Mathematisation of programming
    • 3. Interactive programming
    • 4. Software engineering
    • 5. Programming with types
    • 6. Object-oriented programming
    • 7. Conclusion: cultures of programming
    • References
    • Index.
      Author
    • Tomas Petricek , Charles University, Prague

      Tomas Petricek is Assistant Professor in the Faculty of Mathematics and Physics at Charles University, Prague. He uses interdisciplinary research methods to understand programming and to design simple and expressive programming tools. He developed a theory of context-aware computations at the University of Cambridge, worked on the F# programming language at Microsoft Research and built data exploration tools for non-programmers at The Alan Turing Institute and the University of Kent.