Learning to program = learning to construct mechanisms and explanations
Communications of the ACM
Cognitive strategies and looping constructs: an empirical study
Communications of the ACM
Uncovering principles of novice programming
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Studying the Novice Programmer
Studying the Novice Programmer
A multi-national study of reading and tracing skills in novice programmers
Working group reports from ITiCSE on Innovation and technology in computer science education
Software engineering as a model of understanding for learning and problem solving
Proceedings of the first international workshop on Computing education research
What does it take to learn 'programming thinking'?
Proceedings of the first international workshop on Computing education research
Proceedings of the first international workshop on Computing education research
Commonsense computing: what students know before we teach (episode 1: sorting)
Proceedings of the second international workshop on Computing education research
Introductory Computing Construct Use in an End-User Programming Community
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
Relationships between reading, tracing and writing skills in introductory programming
ICER '08 Proceedings of the Fourth international Workshop on Computing Education Research
Preprogramming knowledge: a major source of misconceptions in novice programmers
Human-Computer Interaction
A closer look at tracing, explaining and code writing skills in the novice programmer
ICER '09 Proceedings of the fifth international workshop on Computing education research workshop
Natural language programming: styles, strategies, and contrasts
IBM Systems Journal
Identifying student misconceptions of programming
Proceedings of the 41st ACM technical symposium on Computer science education
Losing their marbles: syntax-free programming for assessing problem-solving skills
ACE '09 Proceedings of the Eleventh Australasian Conference on Computing Education - Volume 95
Surely we must learn to read before we learn to write!
ACE '09 Proceedings of the Eleventh Australasian Conference on Computing Education - Volume 95
Commonsense computing (episode 6): logic is harder than pie
Proceedings of the 10th Koli Calling International Conference on Computing Education Research
Trace-based teaching in early programming courses
Proceeding of the 44th ACM technical symposium on Computer science education
ACM Transactions on Computing Education (TOCE)
Hi-index | 0.00 |
This paper presents observations about teaching program tracing to novices drawn from a study of knitting patterns. Due to changes in audience, knitting patterns have evolved from vague, chatty discourse written for experts to precise, line-by-line procedures that are akin to programs. The modern knitting community has developed numerous conventions for articulating iteration, expressing conditions, and documenting design decisions. "Executing" one of these patterns is analogous to tracing, since the knitter must demonstrate understanding of the instructions. We argue that the conventions adopted by knitters to make their patterns more understandable to non-experts provide useful insight to computer scientists teaching novices. Our observations suggest that phrasing conditions as termination cases ("until" instead of "while") and partially unrolling loops may help beginners understand code and that some structures, like parameters to functions, may be unfamiliar because they have no common analog.