Applications today are built using numerous interacting services; soon
off-the-shelf CPUs will host thousands of cores, and sensor networkswill be composed from a large number of processing units. Manyapplications need to make effective use of thousands of computingnodes. At some level of granularity, computation in such systems is
inherently concurrent and communication-centred.

To exploit and harness the richness of this computing environment,designers and programmers will utilise a rich variety of programmingparadigms, depending on the shape of the data and control
flow. Plausible candidates for such paradigms include structuredimperative concurrent programming, stream-based programming,concurrent functions with asynchronous message passing, higher-ordertypes for events, and the use of types for communications and data
structures (such as session types and linear types), to name but afew. Combinations of these abstractions will be used even in a singleapplication, and the runtime environment needs to ensure seamlessexecution without relying on differences in available resources such
as the number of cores.

The development of effective programming methodologies for the comingcomputing paradigm demands exploration and understanding of a widevariety of ideas and techniques. This workshop aims to offer a forum
where researchers from different fields exchange new ideas on one ofthe central challenges for programming in the near future, thedevelopment of programming methodologies and infrastructures whereconcurrency and distribution are the norm rather than a marginal
concern.

Alastair Beresford, University of Cambridge, UKSimon Gay, University of Glasgow, UK
Alan Mycroft, University of Cambridge, UKVasco Vasconcelos, University of Lisbon, PortugalNobuko Yoshida, Imperial College London, UK