How would you teach a middle / high schooler how to code?
11–15 of 15 posts
Re: How would you teach a middle / high schooler how to code?
#12I'd concentrate first on building internally consistent mental models. A Lisp repl, I think, would be a fantastic tool for this -- and I suspect "Common Lisp, An Interactive Approach" might be the perfect text for homework.
I strongly agree -- and the Lisp/REPL combination is extremely helpful. Specifically, I believe a Scheme-based approach is the best way to learn programming, even if you eventually decide to migrate to something less fortunate like Javascript or Python ... in under an hour from your first exposure you can be thinking about stuff rather than the syntax of loops. I won't attempt to justify the pedagogical reasons for this choice here.
Specifically, I'd recommend (1) using Racket, a "batteries-included" Scheme derivative with a simple IDE/debugger, and either (2) Concrete Abstractions (free at https://gustavus.edu/+max/concrete-abstractions-annotated-to...), or (3) the upcoming book Realm of Racket (coming in May), which will cover some of the same CS 101 material as well as GUI and distributed programming via writing games in Racket. (There is an earlier book called Land of Lisp but I feel its environment (CLISP) and coding practices are rather baroque.)
Depending on your student's interests you could simultaneously look at some web programming (plenty of HTML/CSS material is available from Mozilla, Google, etc.; there's an upcoming Udacity course on HTML5 game programming), lower-level stuff like assembly, arduino, or whatever.
Hope this helps.
Re: How would you teach a middle / high schooler how to code?
#13(Not expecting anything when posting this)
Re: How would you teach a middle / high schooler how to code?
#14Does the teenager have a knack for it already? I could've been coding before I was 10 years old and it would have been no more difficult for me to learn.
Making it a (fun) game is a good idea. Or you could have them come up with something they've been wanting to do, then use the process of creating that solution to introduce them to the concepts behind programming, and to how to apply them. Just have them work out how they'd go about creating that thing they mention, then show them how they are essentially programming already, and that the language they are learning is just a different way of expressing what they are already saying.
If they become curious or interested, then they'll spend their own time fighting with the code, and that will allow it all to sink in in a way they'll understand.
Re: How would you teach a middle / high schooler how to code?
#15Now this has the potential to lead to disintrest since they wouldn't have the ability to create something and receive the instant feedback of their hard work. But I do feel like it may be an easier way to lead them into it without throwing them into the deep end of language specific syntax which i would imaging feels pretty dense and impenetrable to a lot of people starting out.
As well it would be pretty easy to create word problems or games that would help them develop the general understanding. Something like the following problem:
There is a 100 story building and you have two identical eggs. You need to figure out the highest floor that you can drop one of these eggs from without it breaking. Once an egg has broken you can never use it again. How would you go about figuring this out using the fewest possible drops possible? What if the building was 1,000,000 floors tall?