Invited speakers at BCTCS in alphabetical order:
(*LMS Keynote Speaker in Discrete Mathematics)
Martin Abadi | Towards Correct Programming with Transactional Memory | 2008 |
Samson Abramsky | A Cooks Tour of the Finitary Non-Well-Founded Sets | 1988 |
Samson Abramsky | From Quantum Mechanics to Logic, Databases, Constraints, and Complexity | 2013 |
Samson Abramsky | Contextuality: At the Border of Paradox | 2015 |
Dimitris Achlioptas | Random Constraint Satisfaction Problems: from Physics to Algorithms | 2007 |
Peter Aczel | Formalising Abstract Algebra in Constructive Type Theory | 1996 |
Andrew Adamatzky | Liquid Computers | 2019 |
Eleni Akrida | Temporal Graphs: Algorithms and Complexity | 2021 |
Susanne Albers* | Energy Efficient Algorithms | 2013 |
Noga Alon* | Combinatorial Reasoning in Information Theory | 2009 |
Steven Alpern | Search Games and Utilitarian Postman Paths on Networks | 2007 |
Martyn Amos | The Complexity and Viability of DNA Computation | 1997 |
Alberto Apostolico | Parallel Algorithms on Words | 1989 |
Malcolm Atkinson | The Capability of Priority Queues as Data Transformers | 1993 |
László Babai* | Graph Isomorphism | 2017 |
Roland Backhouse | Making Formalism Work for Us | 1989 |
Roland Backhouse | Games for Algorithmic Problem Solving | 2005 |
Jaco de Bakker | Metric Semantics | 1995 |
Jose Luis Balcazar | The Structural Approach to Complexity Theory | 1992 |
Henk Barendregt | Feasible Full Formalisation | 1991 |
Howard Barringer | The Future of Imperative Logic | 1990 |
Trevor Bench-Capon | Machines Can’t Think | 1997 |
Ulrich Berger | IFP – A Logic for Program Extraction | 2019 |
Richard Bird | Relational Program Derivation | 1994 |
Graham Birtwistle | Specifying and Verifying AMULET in CCS | 1996 |
Julian Bradfield | How user-friendly is independence-friendly logic? | 2007 |
Edwin Brady | State Machines All The Way Down | 2017 |
David Bree | The Semantics of Natural Language Temporal Prepositions and Conjunctions | 1994 |
Ed Brinksma | Formal Models for Testing: An Interaction between Theory and Practice | 1996 |
Hajo Broersma* | Toughness in Graphs: Structural and Algorithmic Aspects | 2006 |
Alan Bundy | Automatic Generation of Program Synthesis Proofs | 1991 |
Rod Burstall | Teaching Logic to Programmers | 1998 |
Michael J Butler | Verification Patterns for Refinement | 2016 |
Muffy Calder | A Day in the Life of a Spin Doctor | 2001 |
Luca Cardelli | Membrane Interactions | 2004 |
Simon Chadwick | Formal Verification – The Journey from Theory towards Practice | 2020 |
Maria Chudnovsky | Detecting Odd Holes | 2019 |
Agata Ciabattoni | Intermediate Logics: from Hypersequents to Parallel Computations | 2018 |
Richard Cole | A Promising Approach to Complexity Measures for Computation over Splay Trees | 1989 |
Robert Constable* | Implementing Elements of Intuitionistic Mathematics in Nuprl | 2020 |
Stephen Cook | A Tutorial on Proof Complexity | 2006 |
Robert Cori | Building Automata with Time Stamps | 1994 |
José Félix Costa | Physics and Computation: An Essay on the Unity of Science through Computability | 2008 |
Sharon Curtis | Functional Fractal Image Compression | 2004 |
Artur Czumai | Sublinear-time Algorithms | 2008 |
Anupas Das | Proof Theoretic Approaches for Regular Languages (and Beyond) | 2024 |
John Davenport | Is Computer Algebra the Same as Computer Symbolic Mathematics? | 1998 |
Neil Davies | Engineering with Randomness | 2002 |
Anuj Dawar | Complexity as Expressive Power | 2002 |
Erik Demaine | Algorithms Meet Art, Puzzles, and Magic | 2010 |
John Dixon | Computations in Galois Theory | 1989 |
Rod Downey* | Fundamentals of Parametrized Complexity | 2012 |
Paul Dunne | Introduction to Boolean Function Complexity | 1994 |
Paul Dunne | An Overview of Lower Bound Techniques in Monotone Boolean Function Complexity | 1997 |
Paul Dunne | Computational Problems (Some Directions but No Solutions) | 2000 |
Martin Dyer | Volume and Related Computational Problems | 1991 |
Abbas Edalat | Exact Real Number Computation Using Linear Fractional Transformations | 1998 |
Herbert Edelsbrunner | Random triangles and random inscribed polytopes | 2021 |
Mike Edmunds | The Antikythera Mechanism and the Early History of Mechanical Computing | 2012 |
Edith Elkind | Hedonic diversity games | 2020 |
Javier Esparza | Model-Checking Pushdown Automata | 1997 |
Kousha Etessami | The Complexity of Computing a Fixed Point of a Monotone Function, and Some Applications | 2021 |
Matthew Fairtlough | Abstraction, Constraints and the Lambda Calculus | 1997 |
Jose Fiadeiro | Software Architectures in 3D | 2004 |
Felix Fischer | Truthful Outcomes from Non-Truthful Position Auctions | 2017 |
Philippe Flajolet | Some Recent Trends in the Average-Case Analysis of Algorithms | 1990 |
Wan Fokkink | Within ARMs Reach: Compilation of Rewrite Systems | 1999 |
Leszek Gąsieniec | Distributed Maintenance of Mobile Entities | 2014 |
Ian Gent | Two Become One: Theory and Experiment | 1998 |
Alan Gibbons | Implementing P-RAM Algorithms on Distributed Memory Models of Parallel Pomputation | 1992 |
Alan Gibbons* | The Soft Machines: Computing with the Code of Life | 2005 |
Rob Gilles | Consent in Network Formation: Game Theoretic Solutions | 2016 |
Joseph Goguen | Object Oriented Programming as a Natural Extension of Functional Programming | 1989 |
Leslie Goldberg | Contention Resolution in Multiple-Access Channels | 1998 |
Paul Goldberg | Recent Progress in Computing Approximate Nash Equilibrium | 2009 |
Shafi Goldwasser | Zero Knowledge Interactive Proofs | 1990 |
Andrew Gordon | Samoa: Formal Tools for Securing Web Services | 2005 |
Andrew Gordon | Principles and Applications of Refinement Types | 2009 |
Mike Gordon | Event and Cycle Semantics of Hardware Description Languages | 1997 |
Georg Gottlob | Living with Computational Complexity | 2007 |
Timothy Gowers | Extreme Human-Oriented Theorem Proving | 2015 |
Yuri Gurevich | Evolving Algebras | 1992 |
Reiner Hähnle | Formal Verification of Software Product Families | 2012 |
Thomas Hales* | The Formal Proof of the Kpeler Conjecture | 2015 |
Magnús Halldórsson | “What problem should I solve?” and Efficiency in Wireless Networks | 2016 |
Keith Hanna | Reasoning about Digital Systems | 1996 |
Johan Håstad | Approximation Resistance | 2010 |
Anne Haxthausen | The RobustRailS Verification Method for Railway Interlocking Systems | 2020 |
Jan Heering | Algebraic Specifications and Proofs by Induction | 1995 |
Matthew Hennessy | Higher-Order Processes and Their Models | 1995 |
Matthew Hennessy | Behavioural Theories for Co-operating Transactions | 2016 |
Martin Henson | Varieties of Schema Calculus | 2008 |
Jane Hillston | Stochastic Process Algebra: Bringing Performance to Life (Tutorial) | 2009 |
Roger Hindley | The Coppo-Denzani Type System | 1989 |
Roger Hindley | Counting the Inhabitants of a Type | 1995 |
Ralf Hinze | Number Systems and Data Structures | 2005 |
Tony Hoare | Unifying theories of concurrency | 2006 |
Tony Hoare | Laws of Programming with Concurrency | 2015 |
Wilfred Hodges | The Logical Background to Specification | 1992 |
Ruth Hoffmann | Composable Constraint Models for Permutation Patterns and their enumeration | 2023 |
Martin Hofmann | Linear Types and Non-Size Increasing Polynomial Time Computation | 1999 |
Mike Holcombe | X-Machines – What Are They? | 1994 |
Furio Honsell | The Edinburgh LF – A Framework for Describing Logical Systems | 1988 |
John E. Hopcroft* | Research in Deep Learning | 2018 |
John Hughes | Naturality, Polymorphism and Compile-Time Analysis | 1991 |
Martin Hyland | Synthetic Domain Theory – The Story So Far | 1990 |
Rob Irving | Fifty Years of Stable Marriage | 2004 |
Mark Jerrum | The Computational Complexity of Counting | 1994 |
Mark Jerrum | A Tutorial on Efficient Sampling | 2006 |
David S. Johnson* | Bin Packing: From Theory to Experiment and Back Again | 2011 |
Cliff Jones | Interference Resumed | 1991 |
Cliff Jones | AI4FM – How To Say “Why” In Proofs | 2011 |
Cliff Jones | Formal Methods in the UK – A (Personal) History | 2022 |
Richard Jozsa | Quantum Computation – Principles and Achievements | 2007 |
Richard Jozsa | Clifford operations and the verification of quantum computations | 2019 |
Achim Jung | Probabilities in Semantics – Some Progress, Some Open Problems | 2003 |
Achim Jung | A modal Belnap logic | 2014 |
Gil Kalai* | Analysis and Probability of Boolean Functions | 2010 |
Bruce Kapron | Gambling, Computational Information, and Encryption Security | 2016 |
Alex Kavvos | Two-dimensional Kripke Semantics | 2024 |
Vivian Kendon | Continuous-time quantum computing | 2019 |
Valerie King * | Tossing a Collective Coin and Coming to Agreement | 2016 |
Alexander Knapp | Specifying Event/Data-based Systems | 2022 |
Timo Kötzing | Recent Advances in Inductive Inference | 2014 |
Demetres Kouvatsos | An Extended Analytic Methodology for Arbitrary Queueing Networks | 2002 |
Jan Krajíček* | Proof Complexity | 2021 |
Daniel Kroening | SAT over an Abstract Domain | 2012 |
Andrei Krokhin | The Complexity of General-Valued CSPs | 2015 |
Marta Kwiatkowska | Safety Verification for Deep Neural Networks | 2018 |
Kim Larsen | Verifying LEGO: Validation and Synthesis of Embedded Software | 2010 |
Bill Lawvere | The Boolean Algebra Classifying Topos and the Complexity of Finite Automata | 2003 |
Chris Lengauer | Systolic Design and Systolising Compilation | 1990 |
Leonid Libkin | Databases Meet Verification; or Nested Words and XML Documents | 2008 |
Steve Linton | Three trips around the "virtuous circle": theory, algorithms, software and experiments | 2023 |
John Lloyd | Current Theoretical Issues in Logic Programming | 1989 |
John Lloyd | Declarative Logic Programming | 1993 |
Bas Luttik | Supporting Railway Infrastructure Managers with Formal Models and Analyses | 2020 |
Bill McColl | BSP Computing | 1999 |
Angus MacIntyre | Connections between Model Theory and Volume Estimates | 1998 |
Assia Mahboubl | Computer-checked Mathematics | 2013 |
Tom Maibaum | Design Structures: Configuring Specifications | 1992 |
David Manlove | Assigning junior doctors to hospitals – what makes it so hard? | 2020 |
David Manlove | Models and Algorithms for the Kidney Exchange Problem | 2023 |
Ursula Martin | What Can You Do with an Equational Reasoning Theorem Prover? | 1990 |
Ursula Martin | The Princess and the Plumber: The Role of Mathematics in Computer Science | 1996 |
Ursula Martin | Computational Math: The Bew Challenge for Computational Logic | 2001 |
Per Martin-Löf | Spreads, Repetitive Structure, Functional Causal Models | 2015 |
Stuart Matthews | Software Engineering with Formal Methods: Quality, Time and Cost | 2024 |
Brian McBride | A Tail of a Dog | 2002 |
Conor McBride | Dependently Typed Programming: An Epigram Induction | 2005 |
Conor McBride | Syntax: What’s it like? | 2017 |
Kitty Meeks | From decision to (approximate) counting | 2019 |
Kurt Mehlhorn | Certifying Algorithms | 2003 |
Robin Milner | What Use are Process Algebras? | 1988 |
Robin Milner | Biographical Reactive Systems | 2002 |
Faron Moller | The Computational Complexity of Bisimilarity | 1995 |
Faron Moller | Techniques for Decidability and Undecidability for Bisimilarity (Tutorial) | 2001 |
Faron Moller | Technocamps: Transforming Digital Education Throughout Wales | 2023 |
Peter Mosses | The Meaning of It All: Programming Language Semantics, From Scott and Strachey to Semantics/Online | 2006 |
S Muthu Muthukrishnan | Data Stream Algorithmics | 2003 |
Syed Waqar Nabi | Navigating Pedagogies: Teaching Theory-Heavy Courses to Software Engineering Student | 2023 |
Rolf Niedermeier | Trends in Parameterized Algorithmics | 2008 |
Rachel Norman | Modelling of Biological Systems (Tutorial) | 2004 |
Colm O’Dunlaing | Computational Problems in Geometry | 1991 |
Luke Ong | Game Semantics | 1998 |
Catuscia Palamidessi | Information-Theoretic Approaches to Information Flow | 2010 |
Prakash Panangaden | Epistemic Strategies and Games on Concurrent Processes | 2011 |
Joachim Parrow | An Introduction to the pi-Calculus (Tutorial) | 2001 |
Mike Paterson | Getting your Message Across, but Nicely: An Introduction to Contention Resolution | 2001 |
Mike Paterson | Algorithms and Complexity Theory in the UK – A (Personal) History | 2022 |
Jan Peleska | Advances in Railway Control Systems Architectures and Related Challenges for Verification and Validation | 2020 |
Simon Peyton-Jones | Asynchronous Exceptions in Concurrent Haskell | 2001 |
Jean-Eric Pin | Logic and Automata | 2003 |
Gordon Plotkin | A Logic for Parametric Polymorphism | 1993 |
Ian Pratt | Qualitative Spatial Reasoning and the Semantic Knife-Edge | 1999 |
David Pym | Reasource Semantics, Bunched Logic and a Relevant Logical Framework | 1999 |
Alexander Rabinovich | Temporal Logic over Branching Time: Expressiveness and Complexity | 2001 |
Rajeev Raman | Succinctness | 2005 |
MS Ramanujan | Lossy kernelization | 2020 |
Bahar Rastegari | Stable marriage with groups of similar agents | 2019 |
Edmund Robertson | Combinatorial and Decidability Questions in Semigroups of Words | 1997 |
Edmund Robinson | Logic and Logical Relations | 1997 |
Grzegorz Rozenberg | DNA Computing In Vivo – Gene Assembly in Ciliates | 2000 |
Alessandra Russo | Logic-based learning for Interpretable AI | 2021 |
David Rydeheard | Category Theory and Game Semantics | 1995 |
Mehrnoosh Sadrzadeh | Monoids, Vectors, and Tensors for Natural Language | 2017 |
Ulrike Sattler | Automated Reasoning for Ontology Engineering | 2010 |
Thomas Sauerwald | Randomised Distributed Algorithms | 2018 |
John Savage | VLSI Analysis, Synthesis and Theory | 1992 |
Nicole Schweikardt | On the expressive power of logics with invariant uses of arithmetic predicates | 2012 |
Monika Seisenberger | Logic in Railway Verification | 2024 |
Peter Selinger | Logical Methods in Quantum Information Theory | 2011 |
Jeffrey Shallit* | Open Problems in Automata Theory | 2014 |
Joseph Sifakis | Rigorous System Design | 2015 |
Alexandra Silva | Probabilistic Program Equivalence for NetKAT | 2018 |
Alistair Sinclair | Phase Transitions and Mixing Times | 2009 |
Nigel Smart | Homomorphic Encryption | 2011 |
Michiel Smid | Spanners: Approximating the Complete Euclidean Graph | 1996 |
Mike Smyth | The Thesis that Computable Functions are Uniformly Continuous | 1989 |
Paul Spirakis | Paradigms for Fast Parallel Approximations to Problems that are Hard to Parallelise | 1994 |
Paul Spirakis | Algorithmic Aspects of Game Theory | 2002 |
Bernhard von Stengel | Fast algorithms for rank-1 bimatrix games | 2019 |
Susan Stepney | Unconventional design of unconventional computers | 2019 |
Perdita Stevens | Bisimulations, Bidirectionality, and the Future of Software Engineering | 2017 |
Iain Stewart | Descriptive Complexity Theory | 1995 |
Jean-Marc Steyaert | On the Average Complexity of Rewriting Systems | 1993 |
Colin Stirling | Verification via Model Checking | 1992 |
Carl Sturtivant | Some Issues in Algebraic Complexity | 1991 |
Bob Tennant | Correctness of Data Representations in Algol-Like Languages | 1993 |
Rick Thomas | Syntactic Monoids – A Survey | 1998 |
Rick Thomas | Formal Languages and Word Problems of Groups (Tutorial) | 2004 |
Rick Thomas | Some Interactions Between Automata Theory and Algebraic Structures in the UK – A (Personal) History | 2022 |
Chris Tofts | Ants, Shrimps, and Other Asynchronous Hardware | 1997 |
Francesca Toni | Argumentative Explainable AI | 2022 |
Jacobo Toran | On the Complexity of the Graph Isomorphism Problem | 1996 |
Patrick Totzke | Playing with counters: how to solve games on infinite arenas | 2020 |
John Tucker | Synchronous Concurrent Algorithms | 1995 |
John Tucker | Computable and Hierarchical Models of Physical Systems | 2002 |
John Tucker | A (Personal) History of Logic in Computer Science | 2022 |
David Turner | Total Functional Programming | 1996 |
Ken Turner | Test Generation for Radiotherapy Accelerators | 2004 |
Leslie Valiant | Computationally Feasible Learning | 1988 |
Leslie Valiant | Robust Logic | 2000 |
Brigitte Vallee | Algorithms for Integer Factorization | 1991 |
Moshe Vardi | Alternation as an Algorithmic Construct | 2006 |
Kristina Vuskovic* | The Use of Decomposition in the Study of Graph Classes defined by Excluding Induced Subgraphs | 2007 |
Kristina Vuskovic | The induced disjoint paths problem on (theta, wheel)-free graphs | 2020 |
Bill Wadge | Infinitesimal Logic | 2009 |
Lincoln Wallen | From Proof Theory to Proof Search: Some Remarks on the Design of Proof Procedures | 1990 |
Angela Wallenburg | Proof and Test: Will They Blend? | 2013 |
Kurt Weihrauch | Computable Analysis | 2000 |
Glynn Winskel | Linearity in Distributed Computation | 1999 |
Carsten Witt | Bio-Inspired Computation Meets Theoretical Computer Science | 2011 |
Gerhard Woeginger* | Three Assignment Problems and One Theorem | 2008 |
Mike Wooldridge | The Verification Problem for Agent Communication Languages | 2000 |
Mike Worboys | Computing with Geospatial Data: Challenges to Theory | 1999 |
James Worrell | Synthesising polynomial program invariants | 2019 |
Xin Yao | Some Theoretical Issues in Evolutionary Computation | 2000 |
Chee Yap | Grobner Bases: Complexity and Applications | 1988 |