The Art, Science, and Engineering of Programming accepts papers that advance knowledge of programming. Almost anything about programming is in scope, but in each case there should be a clear relevance to the act and experience of programming. Additionally, papers must be written in a scholarly form. Scholarly works are those that describe ideas in the context of other ideas that are already known, so to contribute to the systematic and long-standing chaining of knowledge. Papers that fail to properly contextualize the work will not be considered.
We accept descriptions of work under different perspectives:
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.
Independent of the type of work, the journal accepts submissions covering several areas of expertise, including but not limited to:
Upon submission, authors are requested to state what type of paper they are submitting and what areas of expertise are covered by the paper. These two classifications, combined, are used to select reviewers and to apply suitable assessment criteria for the papers. They are not used beyond that purpose. Misclassification by the authors may lead to negative assessments from reviewers.
The following criteria are used when evaluating submitted papers:
More specific criteria for assessing papers depends on the type of the paper:
Artifacts are recommended, but not required, for the initial submission. Depending on the papers, reviewers may take the existence of artifacts as a positive signal about the work. Also depending on the papers, artifacts may be required as a condition for publication.
There are two rounds of review. The first round assesses the papers according to the quality criteria stated above, and results in the selection of a subset of submissions that are either accepted as-is or are deemed potentially acceptable. All other papers are rejected. Authors of potentially acceptable papers are requested to improve specific aspects of the research and the paper. Authors are given a specified period of time to perform the revisions and re-submit the paper. During the second and final reviewing round, the same reviewers assess how well the revision requests have been addressed by the authors, and whether the final paper maintains or improves the level of contribution of the original submission. Revisions that significantly lessen the contribution of the work or that fail to adequately address the reviewers’ original concerns will result in the paper’s rejection.
Papers rejected in either the first or second phases may be resubmitted one more time to the journal. The resubmission will be treated as a new submission, and the paper may be assigned to new reviewers. After a second rejection, subsequent submissions of the same paper will be desk-rejected.