Veranstalter: Fachbereich Informatik
Referent: Dr. Tomas Petricek, Universit of Kent
High-level programming languages make programming easier by allowing us to write programs in terms of notions such as objects, functions or processes, rather than in terms of blocks of bytes. However, programming is still a difficult expert discipline. Can we make programming easier, so that, for example, journalists can create programs to build transparent data analyses? In this talk, I will give an overview of my work and I will try to convince you that „making programming easier“ is a link that connects all of my work on programming languages.
I will split the talk into two parts. The first half will be broad and will discuss a number of areas of programming language research that I've contributed to, including practical functional programming work, abstractions for concurrent, asynchronous and reactive programming and work on context-aware programming languages. The second half of my talk will go into details of my current work on programming tools for data science.
There is a huge gap in data science tooling: spreadsheets are widely used, but work on small data and limit reproducibility; Python or R scripts are reproducible and scalable, but require expert programming skills. Is there a way to make transparent, reproducible programming as easy as using a spreadsheet?
Tomas is an academic, open-source developer and a book author. He is a lecturer at University of Kent and is interested in making programming easier and data science more accessible. He also studies history of programming and writes about it from a philosophical perspective.
Tomas wrote a popular F# book „Real-World Functional Programming“, helped to create a number of F# open-source libraries such as F# Data and created coeffects, a theory of context aware programming languages. His most recent work includes programming tools for data journalism, but also three essays that understand programming concepts such as types, monads and errors from philosophical perspective.