diff --git a/web/mphil-part-III-projects/index.html b/web/mphil-part-III-projects/index.html index a53a1f017..d4ef4daaa 100644 --- a/web/mphil-part-III-projects/index.html +++ b/web/mphil-part-III-projects/index.html @@ -60,26 +60,27 @@

Project description

Fluid is a new “transparent” programming language, being developed at the Institute of Computing for Climate Science in Cambridge in collaboration with University of Bristol, that makes it easy to create charts and figures which are linked to data, enabling a user to - interactively discover what visual elements actually represent. Fluid works by incorporating a - bidirectional dynamic dependency analysis into its runtime, allowing it to track dependencies as outputs - (such as charts and tables) are computed from data. It uses this information to automatically enrich - rendered output with interactions that allow a reader to explore the relationship to data directly - through the artefact, by selecting visual features of interest. Fluid uses so-called “program slicing” - techniques based on Galois connections, a neat mathematical abstraction which characterises exactly the - relationship between sets of inputs and sets of outputs which depend on them.

+ interactively discover what visual elements actually represent. The key idea is to incorporating a + bidirectional dynamic dependency analysis into the language runtime, allowing it to track dependencies + that arise as as outputs (such as charts and tables) are computed from data. It uses this information to + automatically enrich rendered output with interactions that allow a reader to explore the relationship + to data directly through the artefact, by selecting visual features of interest. Fluid uses so-called + “program slicing” techniques based on Galois connections, a neat mathematical abstraction which + characterises exactly the relationship between sets of inputs and sets of outputs which depend on + them.

-

The live demos on the website show the kinds of interactive query we currently support, but these - only hint at what this new approach will make possible. There are many opportunities for an imaginative - and technically strong student to help move this idea forward. Your project could go in a number of - directions, depending on whether your interests lie more towards programming languages, formal methods - or data science. A programming languages project would extend Fluid into a literate programming tool, by - adding Markdown support and the ability to embed computational content via a Lisp-style backquote - mechanism. A more mathematical project might add multidimensional arrays to the language, along with - various array operations inspired by linear algebra and an extension of the dependency analysis to these - new operations. A project focused more around science communication would use Fluid to adapt a piece of - real-world climate science into a “long-form” essay or interactive explanation (see distill.pub for some examples) intended for a non-specialist - audience.

+

The live demos on the website show the interactive queries we currently support, but these only + scratch the surface of what this kind of infrastructure makes possible. There are many opportunities for + an imaginative and technically strong student to help move this idea forward. Your project could go in a + number of directions, depending on whether your interests lie more towards programming languages, formal + methods or data science. A programming languages project would extend Fluid into a literate programming + tool, by adding Markdown support and the ability to embed computational content via a Lisp-style + backquote mechanism. A more mathematical project might add multidimensional arrays to the language, + along with various array operations inspired by linear algebra and an extension of the dependency + analysis to these new operations. A project focused more around science communication would use Fluid to + adapt a piece of real-world climate science into a “long-form” essay or interactive explanation intended + for a non-specialist audience. (See distill.pub for some + examples.)

If you think this sounds interesting, get in touch and we can work out a project idea in more detail. Whatever form your project takes, we would aim for your work to be incorporated into our main