About ‹Programming›

The International Conference on the Art, Science, and Engineering of Programming is a new conference focused on everything to do with programming including the experience of programming. We’ve named it ‹Programming› for short. Papers are welcome from any part of the programming research lifecycle, as are papers on programming practice and experience.

Scholarly Submissions

‹Programming› accepts scholarly papers including essays. Evaluation criteria therefore vary according to the type of paper and the stage of work being presented. Papers about early stage research should be supported by compelling arguments, worked examples, or early engineering or scientific evidence. Papers about late stage research should be supported by strong scientific or mathematical evidence. Essays are explorations of ideas, not necessarily structured as arguments directed toward conclusions; they are judged by quality of insight and robustness of thought process.

Journal Affiliated

A new journal has been created as the publication vehicle for ‹Programming›. Papers submitted to this journal are reviewed by referees chosen by the ‹Programming› Program Chair, who is an associate editor for the journal. Authors of accepted papers are invited to present at the conference as a requirement for publication.

Plain Language

Each paper must be accompanied by a plain-language abstract that presents the key points in the paper in a manner understandable by experienced practitioners and researchers in nearby disciplines.

Types of Papers

  • Art: knowledge and technical skills acquired through practice and personal experiences. Examples include libraries, frameworks, languages, APIs, programming models and styles, programming pearls, and essays about programming.

  • Science (Theoretical): knowledge and technical skills acquired through mathematical formalisms. Examples include formal programming models and proofs.

  • Science (Empirical): knowledge and technical skills acquired through experiments and systematic observations. Examples include user studies and programming-related data mining.

  • Engineering: knowledge and technical skills acquired through designing and building large systems and through calculated application of principles in building those systems. Examples include measurements of artifacts’ properties, development processes and tools, and quality assurance methods.

Almost anything about programming is in scope, but in each case there should be a clear and direct relevance to the act and experience of programming. Essays reflecting on topics closely related to programming are likewise welcome.


Independent of the type of work, ‹Programming› accepts submissions covering several areas of expertise, including but not limited to:

  • General-purpose programming
  • Distributed systems programming
  • Parallel and multi-core programming
  • Graphics and GPU programming
  • Security programming
  • User interface programming
  • Database programming
  • Visual and live programming
  • Data mining and machine learning programming, and for programming
  • Interpreters, virtual machines, and compilers
  • Modularity and separation of concerns
  • Model-based development
  • Metaprogramming and reflection
  • Testing and debugging
  • Program verification
  • Programming education
  • Programming environments
  • Social coding