Artificial intelligence (3rd ed.)
Artificial intelligence (3rd ed.)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Computer related risks
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Purely functional data structures
Purely functional data structures
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Design by contract, by example
Design by contract, by example
The Frame Problem in Artificial Intelligence: Proceedings of the 1987 Workshop April 12-15, 1987 Lawrence, Kansas
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Introduction to Algorithms
iContract - The Java(tm) Design by Contract(tm) Tool
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
Learning computer programming and role of errors in design
ACM SIGCSE Bulletin
Hi-index | 0.00 |
Computer science students need to learn how to write high-quality software. An important methodology for achieving quality is design-by-contract, in which code is developed together with its specification, which is given as class invariants and method pre- and postconditions. This paper describes practical experience in teaching design-by-contract and other principles of object-oriented programming and design by a comprehensive set of programming exercises. These are implemented in Java, augmented with a design-by-contract tool. The conceptual gap between the theoretical principles taught in the course and the capabilities of this programming environment causes pedagogical problems; these problems and some solutions are discussed in this paper.