From 2f2a1cd03302f452d5e58d1081c74fffbca6e1d5 Mon Sep 17 00:00:00 2001 From: Roly Perera Date: Mon, 30 Sep 2024 09:33:30 -0400 Subject: [PATCH 1/5] Start on MPhil/Part III project proposal. --- web/mphil-part-III-projects/index.html | 93 ++++++++++++++++++++++++++ web/part-II-projects/index.html | 57 ---------------- 2 files changed, 93 insertions(+), 57 deletions(-) create mode 100644 web/mphil-part-III-projects/index.html delete mode 100644 web/part-II-projects/index.html diff --git a/web/mphil-part-III-projects/index.html b/web/mphil-part-III-projects/index.html new file mode 100644 index 000000000..af64c853a --- /dev/null +++ b/web/mphil-part-III-projects/index.html @@ -0,0 +1,93 @@ + + + + + + + Fluid: Data-Linked Visualisations + + + + + + + +
+
+ + + ICCS logo +
+
+
+

GitHub · + POPL 2022 paper · + POPL 2022 talk · + PROPL 2024 talk · + ICCS Summer School +

Fluid: A Programming Language for Transparent, Self-Explanatory Research Outputs

+
+
+ +
+
+

Cambridge MPhil/Part III 2024-25 Projects

+
+
+

If you are a University of Cambridge MPhil or Part III student in Computer Science, you will choosing + a project from 16 October 2024. The Fluid project is an exciting opportunity to work on new programming + language foundations designed to make data science more open, intelligible and accessible. If the + following sounds interesting, please contact Roly Perera, + Computer Laboratory, University of Cambridge.

+ +

Project description

+

Charts and other visual summaries, curated by journalists and scientists from real-world data and + simulations, are how we understand our changing world and the anthopogenic sources of that change. But + these visual artifacts are opaque in the sense that their relationship to the underlying data is lost. + How can we make sense of what we are looking at? This is challenging even for experts with access to the + source code and data. + + Fluid is a new “transparent” programming language, being developed at the + Institute of Computing for Climate Science in Cambridge and 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. The live demos on the website show what + we have achieved so far, but we have only scratched the surface of this exciting new direction in open + software.

+ +

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.

+ +

Your project could go in a number of directions, depending on your interests. 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.

+ +

Whatever form your project takes, we would aim for your work to be incorporated into our research + software codebase and project outputs, and so would form a genuine contribution to an exciting new + direction in programming languages. You will get to present your work to researchers and data scientists + at the Institute of Computing for Climate Science and The Alan Turing Institute, and work with PhD + students at Cambridge and Bristol. A strong background in functional programming, maths and/or science + is a must, and you can expect to gain experience in programming languages research, data analysis and + data visualisation.

+
+
+ + diff --git a/web/part-II-projects/index.html b/web/part-II-projects/index.html deleted file mode 100644 index 956074c51..000000000 --- a/web/part-II-projects/index.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - Fluid: Data-Linked Visualisations - - - - - - - -
-
- - - ICCS logo -
-
-
-

GitHub · - POPL 2022 paper · - POPL talk -

Fluid: data-linked visualisations

-
-
- -
-
-

Project suggestions for Cambridge 2024-25 Part II Projects

-
-
-

If you are a University of Cambridge Computer Science student entering Part II in October 2024, you will need to have identified a potential project and an appropriate supervisor by the first day of Michaelmas term. The Fluid project is an exciting opportunity to work on a new programming language designed to make climate science more open, intelligible and accessible. If this sounds interesting, please contact Roly Perera, Computer Laboratory, University of Cambridge.

- -

Project description

-

Charts and other visual summaries, curated by journalists and scientists from real-world data and simulations, are how we understand our changing world and the anthopogenic sources of that change. But interpreting these visual outputs is a challenge, even for experts with access to the source code and data. Fluid is a new “transparent” programming language, being developed at the Institute of Computing for Climate Science in Cambridge, that can be used to create charts and figures that are linked to data so a user can interactively discover what visual elements actually represent. This is an exciting opportunity to work on a new programming language designed to make climate science more open, intelligible and accessible.

- -

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.

- -

Your project could go in a number of directions, depending on your interests. 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.

- -

Whatever form your project takes, we would aim for your work to be incorporated into our research software codebase and project outputs, and so would form a genuine contribution to an exciting new direction in programming languages. You will get to present your work to researchers and data scientists at the Institute of Computing for Climate Science and The Alan Turing Institute, and work with PhD students at Cambridge and Bristol. A strong background in functional programming, maths and/or science is a must, and you can expect to gain experience in programming languages research, data analysis and data visualisation.

-
-
- - From d433aff657010b42bbac4ceef66d9a2fe762c5c8 Mon Sep 17 00:00:00 2001 From: Roly Perera Date: Mon, 30 Sep 2024 09:49:19 -0400 Subject: [PATCH 2/5] Fleshout MPhil/Part III project proposal. --- web/mphil-part-III-projects/index.html | 53 ++++++++++++++------------ 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/web/mphil-part-III-projects/index.html b/web/mphil-part-III-projects/index.html index af64c853a..ec846ff7d 100644 --- a/web/mphil-part-III-projects/index.html +++ b/web/mphil-part-III-projects/index.html @@ -43,25 +43,26 @@

Fluid: A Programming Language for Transparent, Self-Explanatory Research Out

Cambridge MPhil/Part III 2024-25 Projects

-

If you are a University of Cambridge MPhil or Part III student in Computer Science, you will choosing - a project from 16 October 2024. The Fluid project is an exciting opportunity to work on new programming - language foundations designed to make data science more open, intelligible and accessible. If the - following sounds interesting, please contact Roly Perera, - Computer Laboratory, University of Cambridge.

+

Fluid is an exciting opportunity to work on new programming language foundations designed to make + data science more open, intelligible and accessible. If you are a University of Cambridge MPhil or Part + III student in Computer Science looking for a project this October, and like the idea of working on + Fluid, please contact Roly Perera, Computer Laboratory, + University of Cambridge.

Project description

Charts and other visual summaries, curated by journalists and scientists from real-world data and simulations, are how we understand our changing world and the anthopogenic sources of that change. But - these visual artifacts are opaque in the sense that their relationship to the underlying data is lost. - How can we make sense of what we are looking at? This is challenging even for experts with access to the - source code and data. + the visual artifacts we end up consuming are opaque: their relationship to the underlying data is lost. + How can we expect to understand, critique or evaluate claims based on such outputs? This is challenging + even for experts with access to the source code and data used to derive the outputs; for non-experts the + prospects are even worse. Fluid is a new “transparent” programming language, being developed at the Institute of Computing for Climate Science in Cambridge and 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. The live demos on the website show what - we have achieved so far, but we have only scratched the surface of this exciting new direction in open - software.

+ the current implementation can do, but these only scratch the surface of this exciting new direction in + open software. There are many opportunities to move this idea forward in new directions.

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 @@ -71,22 +72,24 @@

Project description

which characterises exactly the relationship between sets of inputs and sets of outputs which depend on them.

-

Your project could go in a number of directions, depending on your interests. 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.

+

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.

-

Whatever form your project takes, we would aim for your work to be incorporated into our research - software codebase and project outputs, and so would form a genuine contribution to an exciting new - direction in programming languages. You will get to present your work to researchers and data scientists - at the Institute of Computing for Climate Science and The Alan Turing Institute, and work with PhD - students at Cambridge and Bristol. A strong background in functional programming, maths and/or science - is a must, and you can expect to gain experience in programming languages research, data analysis and - data visualisation.

+

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 + development codebase, and so would form a genuine contribution to a new programming language. You will + get to present your work to researchers and data scientists at the Institute of Computing for Climate + Science and The Alan Turing Institute, and work with PhD students at Cambridge and Bristol. A strong + background in functional programming, maths and/or science is a must. You can expect to gain experience + in programming languages research, data analysis and data visualisation, with close support from your + supervisor.

From db156a9c09b4710d6412d3a2d6476bbd6d513c80 Mon Sep 17 00:00:00 2001 From: Roly Perera Date: Mon, 30 Sep 2024 10:08:13 -0400 Subject: [PATCH 3/5] Tweaks. --- web/mphil-part-III-projects/index.html | 55 +++++++++++++------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/web/mphil-part-III-projects/index.html b/web/mphil-part-III-projects/index.html index ec846ff7d..a53a1f017 100644 --- a/web/mphil-part-III-projects/index.html +++ b/web/mphil-part-III-projects/index.html @@ -45,42 +45,41 @@

Cambridge MPhil/Part III 2024-25 Projects

Fluid is an exciting opportunity to work on new programming language foundations designed to make data science more open, intelligible and accessible. If you are a University of Cambridge MPhil or Part - III student in Computer Science looking for a project this October, and like the idea of working on - Fluid, please contact Roly Perera, Computer Laboratory, - University of Cambridge.

+ III student in Computer Science looking for a project this October, and would like to discuss the + possibility of working on Fluid, please contact Dr Roly Perera, + Early Career Advanced Fellow, Institute of Computing for Climate Science, University of Cambridge.

Project description

Charts and other visual summaries, curated by journalists and scientists from real-world data and simulations, are how we understand our changing world and the anthopogenic sources of that change. But - the visual artifacts we end up consuming are opaque: their relationship to the underlying data is lost. - How can we expect to understand, critique or evaluate claims based on such outputs? This is challenging - even for experts with access to the source code and data used to derive the outputs; for non-experts the - prospects are even worse. + the visual artifacts we are actually presented with are opaque: any relationship to the underlying data + is lost. How can we expect to understand, critique or evaluate claims based on a bitmap? This is + challenging enough for an expert with access to the source code and data used to derive the outputs; for + a non-expert the prospects are even worse. Fluid is a new “transparent” programming language, being developed at the - Institute of Computing for Climate Science in Cambridge and in collaboration with University of Bristol, + 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. The live demos on the website show what - the current implementation can do, but these only scratch the surface of this exciting new direction in - open software. There are many opportunities to move this idea forward in new directions.

+ 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.

-

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.

- -

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 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.

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 From 4ea9d79cccda101d4a45042515d72991edd892cd Mon Sep 17 00:00:00 2001 From: Roly Perera Date: Mon, 30 Sep 2024 10:10:57 -0400 Subject: [PATCH 4/5] Tweaks. --- web/mphil-part-III-projects/index.html | 39 +++++++++++++------------- 1 file changed, 20 insertions(+), 19 deletions(-) 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 From 8f662511d35e06be289aaa476bf14986de6c90c0 Mon Sep 17 00:00:00 2001 From: Roly Perera Date: Mon, 30 Sep 2024 10:12:07 -0400 Subject: [PATCH 5/5] Tweaks. --- web/mphil-part-III-projects/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/mphil-part-III-projects/index.html b/web/mphil-part-III-projects/index.html index d4ef4daaa..dfad9d214 100644 --- a/web/mphil-part-III-projects/index.html +++ b/web/mphil-part-III-projects/index.html @@ -82,14 +82,14 @@

Project description

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. +

If you think this sounds interesting, please get in touch and we can arrange an initial meeting. Whatever form your project takes, we would aim for your work to be incorporated into our main development codebase, and so would form a genuine contribution to a new programming language. You will get to present your work to researchers and data scientists at the Institute of Computing for Climate Science and The Alan Turing Institute, and work with PhD students at Cambridge and Bristol. A strong background in functional programming, maths and/or science is a must. You can expect to gain experience - in programming languages research, data analysis and data visualisation, with close support from your - supervisor.

+ in programming languages research, data analysis and data visualisation, with close supervisor + support.