Intermediate problem solving and data structures: walls and mirrors
Intermediate problem solving and data structures: walls and mirrors
A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
The existence of refinement mappings
Theoretical Computer Science
Software reuse: metrics and models
ACM Computing Surveys (CSUR)
Object-oriented technology and computing systems re-engineering
Contracts, games and refinement
Theoretical Computer Science
Software Reuse
A Theory of Objects
Working group reports from ITiCSE on Innovation and technology in computer science education
The Psychology of Human-Computer Interaction
The Psychology of Human-Computer Interaction
Success Factors of Systematic Reuse
IEEE Software
Proceedings of the 7th International Conference on Software Reuse: Methods, Techniques, and Tools
ICSR-7 Proceedings of the 7th International Conference on Software Reuse: Methods, Techniques, and Tools
Nonmonotonic Inheritance Through Specialisation
DOOD '97 Proceedings of the 5th International Conference on Deductive and Object-Oriented Databases
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
A noughts and crosses Java applet to teach programming to primary school children
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
Mindstorms: children, computers, and powerful ideas
Mindstorms: children, computers, and powerful ideas
Teaching formal methods: lessons to learn
IW-FM'98 Proceedings of the 2nd Irish conference on Formal Methods
RoboCode & problem-based learning: a non-prescriptive approach to teaching programming
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education
Commonsense computing: what students know before we teach (episode 1: sorting)
Proceedings of the second international workshop on Computing education research
Commonsense computing: using student sorting abilities to improve instruction
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Commonsense computing (episode 3): concurrency and concert tickets
Proceedings of the third international workshop on Computing education research
Teaching Design Patterns Through Computer Game Development
Journal on Educational Resources in Computing (JERIC)
A service learning project for a software engineering course
Journal of Computing Sciences in Colleges
Software reuse and plagiarism: a code of practice
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Commonsense computing (episode 5): algorithm efficiency and balloon testing
ICER '09 Proceedings of the fifth international workshop on Computing education research workshop
Perspectives concerning the utilization of service learning projects for a computer science course
Journal of Computing Sciences in Colleges
Commonsense understanding of concurrency: computing students and concert tickets
Communications of the ACM
Following a thread: knitting patterns and program tracing
Proceedings of the 43rd ACM technical symposium on Computer Science Education
The road to successful academic service learning projects: making the right choices
Journal of Computing Sciences in Colleges
Teaching graph algorithms to children of all ages
Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education
Hi-index | 0.02 |
This paper proposes a model which explains the process of learning about computation in terms of well-accepted software engineering concepts, and argues that our approach to understanding how problem-solving skills are acquired is an innovation over well-accepted learning theories and models. It examines how it all students make sense of computational processes; by reporting on experimental observations that have been made with school children, and with university undergraduates. We observed little difference between children and adults with regard to how they learn about computation, and suggest that the strong similarities are due to a common set of problem-solving techniques which are fundamental to all problem based learning, in general, and learning about computation, in particular. To conclude, we demonstrate that our model --- based on software engineering concepts --- is useful when reasoning about the relationship between problem solving and learning to program.