The case for case studies of programming problems
Communications of the ACM
Design patterns: an essential component of CS curricula
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Software Engineering
Introduction to Algorithms: A Creative Approach
Introduction to Algorithms: A Creative Approach
Designing Pascal Solutions: Case Studies Using Data Structures
Designing Pascal Solutions: Case Studies Using Data Structures
Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering
Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering
Learning from wrong and creative algorithm design
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Design Disciplines and Non-specific Transfer
ISSEP '08 Proceedings of the 3rd international conference on Informatics in Secondary Schools - Evolution and Perspectives: Informatics Education - Supporting Computational Thinking
Concrete and other neo-Piagetian forms of reasoning in the novice programmer
ACE '11 Proceedings of the Thirteenth Australasian Computing Education Conference - Volume 114
A unit testing approach to building novice programmers' skills and confidence
ACE '11 Proceedings of the Thirteenth Australasian Computing Education Conference - Volume 114
ACE '12 Proceedings of the Fourteenth Australasian Computing Education Conference - Volume 123
Hi-index | 0.00 |
"Two wrongs don't make a right." In the last two years, we observed repeated hasty designs, followed by futile patching of programming solutions, which yielded (and re-yielded) erroneous outcomes. In this paper, we illuminate and illustrate diverse characteristics of these undesired design and patching phenomena, and offer a didactic approach of using them for elaborating students' awareness of rigor. We advocate such an elaboration in textbooks and teaching materials, as one may learn and benefit from the wrong way no less than the right one.