4 ms·
A child using language functionally to get what he or she wants is essentially a form of programming. Example: 1. result = ask_parent_or_candy(mom, nicely)
by scoofy 13y ago
A child using language functionally to get what he or she wants is essentially a form of programming. Example:
1. result = ask_parent_or_candy(mom, nicely)
2. if result != candy:
3. ask_parent_for_candy(dad, nicely)
I studied analytic and philosophy of language, and i feel that many people in CS don't see the forest through the trees when it comes to programming as such. While some code (e.g. C) handles much more technical aspects of what is actually happening, scripting languages are much better suited to the human mind, and i think creating a natural language language (<-- that seems a bit redundant) is an achievable goal.
If i had a child, i would start her out on python, because python is essentially in english, and english is the only code i'd prefer to write, given the choice if there were a formalized english scripting language.
Even in python there is a bit of jargon that i think is an unfortunate holdover. Int vs float may be necessary, but "string" is a poor term for what is essentially text. I'm not saying we should change anything, because coding is becoming more like natural language organically, but again, if i were to teach my child coding (and i don't want to step on any cuteness of this story), i think a child would understand python better than anything with brackets and semicolons.
Full disclosure: i genuinely like python better than most languages.
- anaphor 13y agoYou're mistaken I think. Computers essentially process numbers, and even though they are okay for building abstractions, they invariably end up leaking. The complexity in programming is not in the language used to describe it, it's in the details of actually making it work. Syntax is generally irrelevant and only exists to make things easier to read. Also jargon like "String" is actually a holdover from formal logic (so analytic philosophy!). Also, "There will always be things we wish to say in our programs that in all known languages can only be said poorly. " -- Alan Perlis
- idancali 13y agoI completely agree with the fact that syntax is irrelevant. What's really key in coding is getting the core concepts down, like variables, control flow, methods, classes, etc. To me, if a kid can understand what a variable is and what a value is, that's awesome, I don't care what language it is. Once they pick up the fundamentals they can go and teach themselves whatever language they want.
- scoofy 13y agoFair point on "string," though i never really encountered it, i opened up an old goldfarb book, and it's not in the index, but it looks like it is used in my old enderton "mathematical introduction to logic," so, again, fair point. I think "statement" would be a better term, maybe. enderton page 107, 289, etc: http://books.google.com/books?id=dVncCl_EtUkC&printsec=frontcover&dq=introduction+to+mathematical+logic&hl=en&sa=X&ei=WdFBU6OEI6K-2wW-_4DQDQ&ved=0CFAQ6wEwBg#v=onepage&q=string&f=false http://books.google.com/books?id=dVncCl_EtUkC&printsec=front...
- idancali 13y agoyeah I wondered about string myself, I don't see how a child could get "strings". I think they would get "letters" or "words" or even "text". That's why I just didn't get into strings, I just let them type stuff and see the result of what they were typing in the simulator which was thrilling. And when it came to teaching variables I went with int's. Even that was a long shot. I just went with "it's just a number" and I think that should be sufficient for lesson #1 :)
- idancali 13y agoI actually thought about what I should start with if I were to teach coding and you're right I would probably start with something that's interpreted first of all. I was thinking Ruby , perhaps Python, you're right. But the crazy thing is that I didn't plan the whole thing. It was more of a "lets build an app together" type of thing. My kids and I have been talking for a while about building an iPhone game together so that's where the whole iOS thing came from. But you raised a good point. If you had a choice, what would be the best language to start off kids with? And maybe you're right, maybe there should be a new language built just for this purpose. Maybe a bunch of us coding dads can create an open-source mini-lang of some sort with the sole purpose of teaching kids to code.
- scoofy 13y agoI figured you didn't start out with the intention, but yes, i agree that building a simple language for kids would be a very good idea. Perhaps you wouldn't even need words at all. The entire point of generative grammar, if i'm not mistaken, is that logic is pre-programmed into the brain.
- idancali 13y agoYou know a long time ago I used to "code" in this language called LabView and it was all graphical. It was designed for electrical engineers. I remember working with electrical engineers that had no idea about coding and they would be able to build complex systems in LabView. You would drag and drop a box and attach it to another box with a connector and that would be a loop, etc. Really awesome. Maybe something visual like that, with colors, animations etc would work for kids.
- foobarian 13y agoI feel the language is not as important as the standard library. It should be easy to make interesting things happen. This is where classic BASIC implementations were great. You could just say 'LINE 1,1,50,50' and there was a line. How many lines of code would it take to draw a line and circle in objective C? How many of those lines would be indecipherable boilerplate?
- 13y ago
- pandatigox 13y agoThis reminds of the examples used in The Poignant Guide 1. front_door.open 2. front_door.is_open? 3. front_door.paint(3, :red) http://mislav.uniqpath.com/poignant-guide/book/chapter-3.html#section2 http://mislav.uniqpath.com/poignant-guide/book/chapter-3.htm...