Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Program development by stepwise refinement
Communications of the ACM
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
The Science of Programming
Systematic Programming: An Introduction
Systematic Programming: An Introduction
A Discipline of Programming
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Test Driven Development: By Example
Test Driven Development: By Example
Object Design: Roles, Responsibilities, and Collaborations
Object Design: Roles, Responsibilities, and Collaborations
What should we teach in an introductory programming course?
SIGCSE '74 Proceedings of the fourth SIGCSE technical symposium on Computer science education
Revealing the programming process
Proceedings of the 36th SIGCSE technical symposium on Computer science education
Pragmatic Unit Testing in Java with JUnit
Pragmatic Unit Testing in Java with JUnit
Structured programming
A visualisation tool for the programming process
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Hi-index | 0.00 |
Exposing students to the process of programming is merely implied but not explicitly addressed in texts on programming which appear to deal with 'program' as a noun rather than as a verb.We present a set of principles and techniques as well as an informal but systematic process of decomposing a programming problem. Two examples are used to demonstrate the application of process and techniques.The process is a carefully down-scaled version of a full and rich software engineering process particularly suited for novices learning object-oriented programming. In using it, we hope to achieve two things: to help novice programmers learn faster and better while at the same time laying the foundation for a more thorough treatment of the aspects of software engineering.