Providing intellectual focus to CS1/CS2
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Conceptual models and cognitive learning styles in teaching recursion
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
What (else) should CS educators know?
Communications of the ACM
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Do we really teach abstraction?
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Solving the CS1/CS2 lab dilemma: students as presenters in CS1/CS2 laboratories
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Binary software components in the undergraduate computer science curriculum
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
A formal approach to component-based software engineering: education and evaluation
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Design guidelines for the lab component of objects-first CS1
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
A Case Study Approach to Teaching Component Based Software Engineering
CSEET '00 Proceedings of the 13th Conference on Software Engineering Education & Training
Components-first approaches to CS1/CS2: principles and practice
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Practice what you preach: full separation of concerns in CS1/CS2
Proceedings of the 37th SIGCSE technical symposium on Computer science education
A systematic approach to teaching abstraction and mathematical modeling
Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education
Hi-index | 0.00 |
When teaching certain CS topics (e.g., abstract data types, operating systems), the instructor tries to make clear the distinction between the "client" perspective and the "implementer" perspective. But when teaching some programming language features and related programming techniques, this dichotomy often is not respected as strongly as it should be. We illustrate this with a discussion of how to teach recursion, comparing a traditional approach with one that is careful not to blur the distinctions between client view and implementer view. The latter better supports new learners in the creation of a sound and consistent mental model for developing and reasoning about programs that involve recursion.