Still thinking about the practice of typing in code listing verbatim as a pedagogical tool.
Quotes
Some confirming quotes from reading:
…I took online courses, though I made sure to type out everything as I went through them. That alone increases confidence, because you’re actually building something versus copy/pasting. Could be a psychological trick. I don’t know, but it works.
I like: “Could be a psychological trick.” Yep!
Are there any scientific studies and results of the studies on if this was just tedious work, or if the user did learn something about programming just by typing it in the computer?
– Coder
Exactly what I want to know!
The typing didn’t. The subsequent debugging did.
Nod.
And modification, customization, etc.
I’m a software developer today because of typing in listings from Amstrad Action in the 1980s, debugging, and changing code to see what happens. It all stemmed from there so, anecdotally, there is evidence - me!
…When typing them in, one had to read it first, which naturally creates understanding - not to mention that typing errors were common and we all know debugging without understanding is a game of luck.
– Raffzahn
Adapting to your computer’s dialect was a real experience!
But the “best” thing for learning was fixing the syntactic errors you made while typing.
– Kingsley
Looking at the archived type-ins, I realize that yes, I did learn a lot of my first steps of programming, and formed my first early opinions about things like programming style, from type-in games.
I typed many Basic programs manually into my TRS80 from the 80 Microcomputing magazine. If you had an interest, like I did, you could learn about programming from this. I also learned to touch type reasonably well (with all ten fingers!). Definitely learned to find typos, etc. but also enjoyed tinkering with the programs. This led to writing my own programs. Which ultimately led to a 40 year career as a programmer analyst.
Although I agree with other posters that the significant learning experience was in debugging, following transcription errors both on my part, and on the part of the publisher, note that yes, tedious copying is a well-known, though not highly efficient, method of teaching and learning.
– david
Hmm: “tedious copying is a well-known, though not highly efficient, method of teaching and learning”
Agreed, what’s an effective alternative?
Worked examples that increase in complexity?
Typing in these programs was a great way to learn BASIC and assembly (the dominant languages back then). I know I learned a few tricks this way.
Thoughts
Some more thoughts:
- The listings are a better learning tool if you know “something” before hand, e.g. basic syntax, how to compile/run, etc.
- Learning comes from a careful reading/re-reading, such as when fixing and modifying the typed in code.
- This is different from tutorials and exercises that pose problems, questions, or explain code line by line as it is put together.
- These are large atomic blocks of code to be typed verbatim, often with little description other than “A progam to do x” or “a game that does y”.
Would a hard cover book of 30 sort, search, graph, etc. algorithm code listing be of value for new-ish programmers for copywork?
Does typing in a quicksort give you the intuition for the clever innovation it proves over other sorts, like a bubble?
Does it require exercises, unit tests, tutorial content to really “get it”? Probably.