It's nice to see people agreeing with Oakley, considering I had developers ready to tar and feather me for suggesting code snippets should be images to prevent copy/paste.
By no means is memorization the end all be all. Oakley even writes "In the United States, the emphasis on understanding sometimes seems to have replaced rather than complemented older teaching methods". The techniques should be used hand and hand.
RangerScience said it best when he said "perfect practice makes perfect", I like to reword it so it reads "practice makes permanent". Obviously, practicing something wrong isn't going to help you advance.
Memorization should be "step one" for introducing a concept. I can explain how a for loop looks and show it to you, but forcing the student's hand to make a few loops before trying to implement it in a homework assignment can help build the neurological pathways (or motor engrams) so that they're no longer thinking about the syntax, just the chunk. "I need to type for(something;something;something)..." transitions to "I need a loop to go through this thing". The syntax is secondary as anyone who knows more than 1 programming language will tell you. Hell, I've build snippets into Sublime Text so I don't have to waste time with syntax either!
Some things just come from putting in the time and effort. No one gets their black belt after one class (otherwise I've been seriously doing it wrong for 10 years!)
Having seen the results of a system that focuses entirely on memorization without comprehension, a balance definitely needs to be struck between understanding and memorization. Pure memorization is useless, but so is conceptual teaching without practical application (which helps to reinforce the concepts and ensure real understanding).
By no means is memorization the end all be all. Oakley even writes "In the United States, the emphasis on understanding sometimes seems to have replaced rather than complemented older teaching methods". The techniques should be used hand and hand.
RangerScience said it best when he said "perfect practice makes perfect", I like to reword it so it reads "practice makes permanent". Obviously, practicing something wrong isn't going to help you advance.
Memorization should be "step one" for introducing a concept. I can explain how a for loop looks and show it to you, but forcing the student's hand to make a few loops before trying to implement it in a homework assignment can help build the neurological pathways (or motor engrams) so that they're no longer thinking about the syntax, just the chunk. "I need to type for(something;something;something)..." transitions to "I need a loop to go through this thing". The syntax is secondary as anyone who knows more than 1 programming language will tell you. Hell, I've build snippets into Sublime Text so I don't have to waste time with syntax either!
Some things just come from putting in the time and effort. No one gets their black belt after one class (otherwise I've been seriously doing it wrong for 10 years!)