-
Notifications
You must be signed in to change notification settings - Fork 134
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to teach kids (or other complete beginners) to code? #74
Comments
If I could travel back in time to give myself advice, I would simple say: look for learning materials that discuss the test-first development approach from the start. The approach includes, design, spec-writing, breaking up the problem into small pieces within a sensible sequence, and thinking before typing. |
“If you want to build a ship, don’t drum up people together to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea.” -- Antoine de Saint-Exupery |
An idea came to me within an aha! moment. The way I would go about teaching children and other beginners to code would be approaching programming from a problem-solving angle, relating it to how they already think and act, especially in learning. For example, a thought-process was running in my mind about autodidactism, how to go about learning independently from online resources, and because of my prior experience with programming, I could express the thought as: oh, one needs to abstract the steps within a tutorial to create something different analagous to how one would extract a function from a collection of expresssions with a similar purpose. A lot of self-development psychologies talk about writing down the steps to doing something before one does it ... algorithms: examples abound. For an approach to teaching children that seems interesting, I found following old Kickstarter, but though the fellow appears to have an interesting approach, to my knowledge, he has not made it available to anyone but the folk who backed the Kickstarter: Computer Science for Your Child |
This book is on point: Computer Science Distilled. It is usable by those that have learnt the basic elements of programming, and would be excellent preperation for SICP. Folk complain about the mathematical background needed for SICP (super grateful for the maths degree right here), but this book puts the use of models, including mathematics one in a greater context. It fills in a lot of stuff that is normally "unsaid" and assumed. It gave me a whole general context to organize what I already know and understand: sometimes, one needs to go back to the very basics and start again, in order to make further headway, and faster too! |
Too, I have this vision that it would probably be best to teach mathematics from the beginning from a computer programming/computer science point of view. It would be super easy (though time consuming) to convert Anthony Wildberger's basically building mathematics up from scratch into code; (data structures and functions that operate on them, could do it functional, object-oriented, imperative. whatever basically) for example, this video on data structures. Programming languages provide a stricter langauge than the formal/semi-formal/intuitive/visual-imagery based language that mathematics is normally taught in. |
In my opinion these are two separate things, dependent on the age range of the children. I'm just going to spill a lot of my thoughts/experiences in a stream of consciousness, and hopefully some will be of use. Smaller children <10 Micro-bit and youth uk Older kids Beginners Happy to chat more/expand on anything here |
I think this definition of a variable would be useful for all learning and teaching programming. It is rare that I see a basic concept so well explained. Programming texts often use prior experience in algebra to ground the definition of a variable within programming languages, but the prior experience in algebra is hazy as often no sharp clear precise definition was ever given. For one the discussion illustrates why in ES6 there was a need to decompose the var statement into a var and const statement as opposed to conflating them in var. |
see: https://news.ycombinator.com/item?id=13675268
The text was updated successfully, but these errors were encountered: