Histogram

You have to know the past
to understand the present






Tomas Petricek

University of Kent
tomas@tomasp.net | @tomaspetricek

Motivation

Programming as interaction

DEMO
Using modern programming environment for data analysis

Programs

Just final result

No creative process

Only recipe

Syntactic entities

Programming

Creative activity

Learn from mistakes

Includes evaluation

User interactions

Medium is the message

Formalism is great for talking about programs.

Rules also fit in papers!

How to convey ideas
on user interaction?

Histogram

Programming experiment

Design principles

Live programming environment

Represent programs as lists of interactions

Program by choosing from a list of options

Move away from concrete syntax

Explore the idea using data science use case

DEMO
Analysing aviation accidents with Histogram

Interactions

Standard coding

  • Access member
  • Invoke operation
  • Define a value

Programming process

  • Evaluate component
  • Refactor as function

Implications

Why is Histogram interesting

Type checking lists of interactions

Evaluation can affect types

Bind interactions to user interface

Multiple views for the same program

DEMO
Representing code as spreadsheets and direct manipulation

Presentation

Interactive essays

Evaluation

How to talk about system design

No established way of design evaluation

Often seen as early work presentation

Makes us shift focus to other questions

"Evaluating programming systems design"

Evaluating interactive essays

Hacking and entity realism

  • Are electrons real or models?
  • If you can spray them, they're real
  • Effect is theory independent

Programming system design

  • What is theory independent?
  • How to convey implications?
  • Simplify, but let users explore

Summary

Investigating programming

tomasp.net/histogram

A point in programming system design space

We should study programming not programs

Represent programs as lists of interactions

Program by choosing not creating

Allows interesting new experiences



Tomas Petricek, University of Kent
tomas@tomasp.net | @tomaspetricek