About: Intentional programming is a research topic. Over the lifetime, 443 publications have been published within this topic receiving 8689 citations.
TL;DR: Two empirical studies attempt to evaluate the hypothesis that expert programmers have and use two types of programming knowledge: programming plans, which are generic program fragments that represent stereotypic action sequences in programming, and rules of programming discourse, which capture the conventions in programming and govern the composition of the plans into programs.
Abstract: We suggest that expert programmers have and use two types of programming knowledge: 1) programming plans, which are generic program fragments that represent stereotypic action sequences in programming, and 2) rules of programming discourse, which capture the conventions in programming and govern the composition of the plans into programs. We report here on two empirical studies that attempt to evaluate the above hypothesis. Results from these studies do in fact support our claim.
TL;DR: This book focuses on programming technique rather than the requirements of a specific programming language or environment, and Topics include: front-end planning, applying good design techniques to construction, using data effectively, using common and advanced control structures, secrets of self-documenting code, testing and debugging techniques.
Abstract: "Code complete" is the phrase used by programmers to announce the completion of a software program. Drawing its examples from a variety of computer languages, this book focuses on programming technique rather than the requirements of a specific programming language or environment. Steve McConnell developed True Type and Windows for the Microsoft Corporation. Topics include: front-end planning, applying good design techniques to construction, using data effectively, using common and advanced control structures, secrets of self-documenting code, testing and debugging techniques, improving performance with code tuning, managing construction activities, and relating personal character to the development of superior software.
TL;DR: SMT, which was originally designed to translate between two natural languages, allows us to automatically learn the relationship between source code/pseudo-code pairs, making it possible to create a pseudo-code generator with less human effort.
Abstract: Pseudo-code written in natural language can aid the comprehension of source code in unfamiliar programming languages. However, the great majority of source code has no corresponding pseudo-code, because pseudo-code is redundant and laborious to create. If pseudo-code could be generated automatically and instantly from given source code, we could allow for on-demand production of pseudo-code without human effort. In this paper, we propose a method to automatically generate pseudo-code from source code, specifically adopting the statistical machine translation (SMT) framework. SMT, which was originally designed to translate between two natural languages, allows us to automatically learn the relationship between source code/pseudo-code pairs, making it possible to create a pseudo-code generator with less human effort. In experiments, we generated English or Japanese pseudo-code from Python statements using SMT, and find that the generated pseudo-code is largely accurate, and aids code understanding.
TL;DR: This paper attempts to provide more meaning to Visual Programming and Program Visualization terms by giving precise definitions, and then uses these definitions to classify existing systems into a taxonomy.
Abstract: There has been a great interest recently in systems that use graphics to aid in the programming, debugging, and understanding of computer programs. The terms “Visual Programming” and “Program Visualization” have been applied to these systems. Also, there has been a renewed interest in using examples to help alleviate the complexity of programming. This technique is called “Programming by Example.” This paper attempts to provide more meaning to these terms by giving precise definitions, and then uses these definitions to classify existing systems into a taxonomy. A number of common unsolved problems with most of these systems are also listed.
TL;DR: Greenfoot as mentioned in this paper is an educational integrated development environment aimed at learning and teaching programming, aimed at a target audience of students from about 14 years old upwards, and is also suitable for college and university-level education.
Abstract: Greenfoot is an educational integrated development environment aimed at learning and teaching programming. It is aimed at a target audience of students from about 14 years old upwards, and is also suitable for college- and university-level education. Greenfoot combines graphical, interactive output with programming in Java, a standard, text-based object-oriented programming language. This article first describes Greenfoot and then goes on to discuss design goals and motivations, strengths and weaknesses of the system, and its relation to two environments with similar goals, Scratch and Alice.