Having taught a couple of introductory programming classes to previously non-technical folks, I can’t stress this point enough:
Requiring students to construct their own strategies as they practice applying a skill can result in unproductive struggle. Instead, we can explicitly teach a strategy and properly equip students to learn more from their practice.
It seems like today, a lot of the interviewees I talk to who come out of get-rich-quick bootcamps still treat code like a magical black box because the practice of trying to teach students purely through “doing”. I think by adding just a little bit of this strategy lesson, it can be much more beneficial for longer term development of skills.
This is great for comprehension of individual functions but it’s be great to have a strategy that scaled up to creating a mental model of the architecture of a program that contains thousands of lines of code.
One thing I’ve been trying with my students is binary search to insert prints. Still a work in progress; requires lots of hand holding. They’re like 12.
Having taught a couple of introductory programming classes to previously non-technical folks, I can’t stress this point enough:
It seems like today, a lot of the interviewees I talk to who come out of get-rich-quick bootcamps still treat code like a magical black box because the practice of trying to teach students purely through “doing”. I think by adding just a little bit of this strategy lesson, it can be much more beneficial for longer term development of skills.
This is great for comprehension of individual functions but it’s be great to have a strategy that scaled up to creating a mental model of the architecture of a program that contains thousands of lines of code.
One thing I’ve been trying with my students is binary search to insert prints. Still a work in progress; requires lots of hand holding. They’re like 12.