The Programmer's Apprentice: A Session with KBEmacs
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
Program Translation Via Abstraction and Reimplementation
IEEE Transactions on Software Engineering
A plan-based intelligent assistant that supports the software development
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
A Study of 12 Specifications of the Library Problem
IEEE Software
The Programmer''s Apprentice: A Program Design Scenario
The Programmer''s Apprentice: A Program Design Scenario
Dependency-Directed Localization of Software Bugs
Dependency-Directed Localization of Software Bugs
Automated Program Recognition
Views of software development environments
ACM SIGSOFT Software Engineering Notes
Metamouse: specifying graphical procedures by example
SIGGRAPH '89 Proceedings of the 16th annual conference on Computer graphics and interactive techniques
The Pan language-based editing system for integrated development
SDE 4 Proceedings of the fourth ACM SIGSOFT symposium on Software development environments
Program optimization and parallelization using idioms
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A modification support system—automatic correction of side—effects caused by type modifications
CSC '90 Proceedings of the 1990 ACM annual conference on Cooperation
The Requirements Apprentice: Automated Assistance for Requirements Acquisition
IEEE Transactions on Software Engineering
Models of Software Development Environments
IEEE Transactions on Software Engineering
The Pan language-based editing system
ACM Transactions on Software Engineering and Methodology (TOSEM)
Seven Layers of Knowledge Representation and Reasoning in Support of Software Development
IEEE Transactions on Software Engineering - Special issue on knowledge representation and reasoning in software development
Commitment-Based Software Development
IEEE Transactions on Software Engineering
Demonstrational Interfaces: A Step Beyond Direct Manipulation
Computer - Special issue on sharing: high performance at low cost
An empirical study of multiple-view software development
SDE 5 Proceedings of the fifth ACM SIGSOFT symposium on Software development environments
Program Concept Recognition and Transformation
IEEE Transactions on Software Engineering - Special issue on software maintenance
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Program understanding and the concept assignment problem
Communications of the ACM
Program optimization and parallelization using idioms
ACM Transactions on Programming Languages and Systems (TOPLAS)
A methodology for high-level software specification construction
ACM SIGSOFT Software Engineering Notes
Identification of Dynamic Comprehension Processes During Large Scale Maintenance
IEEE Transactions on Software Engineering - Special issue: best papers of the 17th International Conference on Software Engineering (ICSE-17)
Software reuse in an industrial setting: a case study
ICSE '91 Proceedings of the 13th international conference on Software engineering
Approach and case study of requirement analysis where end users take an active role
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Supporting the restructuring of data abstractions through manipulation of a program visualization
ACM Transactions on Software Engineering and Methodology (TOSEM)
Pattern-based reverse-engineering of design components
Proceedings of the 21st international conference on Software engineering
An object-oriented approach to the acquisition of software engineering knowledge
CSC '91 Proceedings of the 19th annual conference on Computer Science
CSC '91 Proceedings of the 19th annual conference on Computer Science
Supporting program comprehension using semantic and structural information
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Pattern-based design recovery with SPOOL
Advances in software engineering
Knowledge-Based Automation of a Design Method for Concurrent Systems
IEEE Transactions on Software Engineering
Tools for producing formal specifications: a view of current architectures and future directions
Annals of Software Engineering
A survey of software reuse libraries
Annals of Software Engineering
Representing Software Engineering Knowledge
Automated Software Engineering
Program Understanding as Constraint Satisfaction: Representation and Reasoning Techniques
Automated Software Engineering
Recognizing a Program's Design: A Graph-Parsing Approach
IEEE Software
PM: A System to Support the Automatic Acquisition of Programming Knowledge
IEEE Transactions on Knowledge and Data Engineering
KBMS: A Knowledge-Based System for Modeling Software System Specifications
IEEE Transactions on Knowledge and Data Engineering
Representing and Maintaining Process Knowledge for Large-Scale Systems Development
IEEE Expert: Intelligent Systems and Their Applications
Reusing Software: Issues and Research Directions
IEEE Transactions on Software Engineering
Learning programs from traces using version space algebra
Proceedings of the 2nd international conference on Knowledge capture
Design Pattern Detection Using Similarity Scoring
IEEE Transactions on Software Engineering
Does a programmer's activity indicate knowledge of code?
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Inferring graphical procedures: the compleat metarnouse
Human-Computer Interaction
AAAI'06 proceedings of the 21st national conference on Artificial intelligence - Volume 2
Structuring agents for adaptation
Adaptive agents and multi-agent systems
Empirical Software Engineering
Program extrapolation with jennisys
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Degree-of-knowledge: Modeling a developer's knowledge of code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 4.12 |
The long-term goal of the Programmer's Apprentice project is to develop a theory of how expert programmers analyze, synthesize, modify, explain, specify, verify, and document programs. The authors present their vision of the Programmer's Apprentice, the principles and techniques underlying it, and their progress toward it. The primary vehicle for this exposition is three scenarios illustrating the use of the Apprentice in three phases of the programming task: implementation, design, and requirements. The first scenario is taken from a completed working prototype. The second and third scenarios are the targets for prototype systems currently under construction