Associate professor

Department of Distributed and Dependable Systems
Faculty of Mathematics and Physics
Charles University, Czech Republic

E-mail: petricek@d3s.mff.cuni.cz
Web: http://tomasp.net
Office: 204, 2nd floor, Malá Strana

Teaching

In 2026/27, I am teaching two courses on programming langauges with Vít Šefl and I’m also involved in teaching two one-off courses related to history and philosophy of programming (see the poster)!

Interested in programming languages?

Join our two courses that cover the principles and theory of programming languages. Those will be around in the upcoming years, so you can also plan to attend later.

Interested in history and philosophy?

The following are ad-hoc courses that will probably only exist in 2026/27. If you want to learn about the history of programming and programming concepts, do not miss them!

Other teaching and information

Research

I’m interested in understanding the nature of programming and finding new and better ways of doing it. I use various methods ranging from theoretical programming langauge research, applied work resulting in open-source software, as well as interdisciplinary approaches that look at programming through the perspectives of history and philosophy. I believe that the most interesting developments in programming happen when a new way of thinking makes difficult problems disappear.

My current work is focused on programming systems. Programs are created not by just writing code, but by interacting with rich stateful programming systems or environments. Programming systems still include code, but they also encompass live or structure editors, runtime environment and other developer tools. I believe that we need to (i) find new fundamental ways of studying programming systems, (ii) revisit past programming systems that offered interesting ways of interaction, and (iii) apply those ideas to domains such as data science tooling or low-code and no-code programming.

In recent years, I also worked on functional programming and contributed to the development of the F# language and type providers at Microsoft Research. My PhD from University of Cambridge was on coeffects, a theory of context-aware programming languages. At University of Kent and The Alan Turing Institute, I spent most of my time working on programming tools for data science.

Cultures of programming

Check out my open access book on the history of programming!

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.

Available from: Cambridge University Press

Recent work

Past teaching

Education & experience

Publications

Publications in the last 5 years are listed below. For a complete list, see the publications page.

D. Orchard (editor), T. Petříček (editor), J. Singer (editor):
Languages, Compilers, Analysis - From Beautiful Theory to Useful Practice: Essays Dedicated to Alan Mycroft on the Occasion of His Retirement, Springer Nature Switzerland, 2026
ISBN: 978-3-032-08186-5 978-3-032-08187-2, DOI: 10.1007/978-3-032-08187-2
T. Petříček, J. Jakubovic:
On the Limits of Making Programming Easy, in Languages, Compilers, Analysis - From Beautiful Theory to Useful Practice: Essays Dedicated to Alan Mycroft on the Occasion of His Retirement, pp. 215-233, 2026
ISBN: 978-3-032-08187-2, DOI: 10.1007/978-3-032-08187-2_11
A. Pečimúth, D. Leopoldseder, P. Tůma:
A Pragmatic Approach to Replay Compilation, in Companion Proceedings of the 9th International Conference on the Art, Science, and Engineering of Programming (Programming 2025), pp. 3:1–3:4, 2025
ISBN: 978-3-95977-382-9, DOI: 10.4230/OASIcs.Programming.2025.3
P. Donat-Bouillud, F. Křikava, J. Hain, A. Plodek, J. Vitek:
Comparing R Bytecode Compilers Written in R, Java, and Rust, in Companion Proceedings of the 9th International Conference on the Art, Science, and Engineering of Programming (Programming 2025), pp. 1:1–1:6, 2025
ISBN: 978-3-95977-382-9, DOI: 10.4230/OASIcs.Programming.2025.1
T. Petříček:
Cultures of Programming: The Development of Programming Concepts and Methodologies, Cambridge University Press, 2025
ISBN: 978-1-009-49234-8, DOI: 10.1017/9781009492379
T. Petříček, J. Edwards:
Denicek: Computational Substrate for Document-Oriented End-User Programming, in Proceedings of the 38th Annual ACM Symposium on User Interface Software and Technology, pp. 1–19, 2025
ISBN: 979-8-4007-2037-6, DOI: 10.1145/3746059.3747646
J. Edwards (editor), R. Perera (editor), T. Petříček (editor):
OASIcs, Volume 134, Programming 2025, Complete Volume, Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2025
ISBN: 978-3-95977-382-9, DOI: 10.4230/OASIcs.Programming.2025
M. Laurent, J. Hain, F. Krikava, S. Krynski, J. Vitek:
Toward a Typed Intermediate Language for R, in Companion Proceedings of the 9th International Conference on the Art, Science, and Engineering of Programming (Programming 2025), pp. 24:1–24:4, 2025
ISBN: 978-3-95977-382-9, DOI: 10.4230/OASIcs.Programming.2025.24
T. Petříček:
Language and the Rise of the Algorithm by Jeffrey M. Binder (review), in Technology and Culture 65(1), pp. 427-429, 2024
J. Edwards, T. Petříček, T. van der Storm, G. Litt:
Schema Evolution in Interactive Programming Systems, in The Art, Science, and Engineering of Programming 9(1), pp. 2:1-2:33, 2024
DOI: 10.22152/programming-journal.org/2025/9/2
T. Petříček, G. Burg, A. Nazábal, T. Ceritli, E. Jiménez-Ruiz, C. Williams:
AI Assistants: A Framework for Semi-Automated Data Wrangling, in IEEE Transactions on Knowledge and Data Engineering 35(9), pp. 9295-9306, 2023
DOI: 10.1109/TKDE.2022.3222538
P. Taylor-Gooby, T. Petříček, J. Cunliffe:
Covid19, Charitable Giving and Collectivism: a data-harvesting approach, in Journal of Social Policy 52(3), pp. 473-494, 2023
DOI: 10.1017/S0047279421000714
J. Edwards, T. Petříček, T. van der Storm:
Live & Local Schema Change: Challenge Problems, in , 2023
DOI: 10.48550/arXiv.2309.11406
J. Jakubovic, J. Edwards, T. Petříček:
Technical Dimensions of Programming Systems, in The Art, Science, and Engineering of Programming 7(3), pp. 13:1-13:59, 2023
DOI: 10.22152/programming-journal.org/2023/7/13
J. Jakubovic, T. Petříček:
Ascending the ladder to self-sustainability, in To appear in Onward! 2022: Proceedings of the 2022 ACM SIGPLAN international symposium on new ideas, new paradigms, and reflections on programming and software, Auckland, New Zealand, December, 2022, 2022
J. Edwards, T. Petříček:
Interaction vs. Abstraction: Managed Copy and Paste, in Proceedings of the 1st ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments, pp. 11–19, 2022
ISBN: 978-1-4503-9910-4, DOI: 10.1145/3563836.3568723
R. Perera, M. Nguyen, T. Petříček, M. Wang:
Linked visualisations via Galois dependencies, in Proceedings of the ACM on Programming Languages 6(POPL), pp. 7:1–7:29, 2022
DOI: 10.1145/3498668
T. Petříček:
The Gamma: Programmatic Data Exploration for Non-programmers, in 2022 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pp. 1-7, 2022
DOI: 10.1109/VL/HCC53370.2022.9833134