Today, I'm pondering the file path. What does the following line mean to you?
C:\Sites\edboost3_site\images\focus.jpgFor anyone who builds websites or writes computer code or even just digs around in computers beyond the opening screens, that path is a map -- it tells you exactly how to find a file (in this case the image file "focus") on my hard drive.
Would that path mean anything to your kids? It would read like a foreign language to most of our students.
When my students finish working on a document, they typically just click the "disk" button to save. They don't even think about where they're saving it. Our computers default to saving that file to "My Documents." When my students want to work on that file again, they go to "Recent Documents" and click it. But our computers are in a computer lab, and if that particular computer has gotten heavy use from other students and a student's document doesn't appear in "Recent Documents," we get a freak out, "Someone erased my homework!"
Many of us who grew up in, as my students like to call it, "the 19s," played with BASIC or LOGO as kids. We may have even used a computer without clickable menus! Even if we never played with programming, we at least remember having to navigate "Save As..." to save our documents to a specific file on the hard drive or -- gasp -- a floppy disk!
Today's kids just click buttons. They barely even use menus. Some have even given up computers entirely for tablets. The beauty and ease of these amazing machines mean that the kids barely ever have to think about what they're doing. They simply click and magic happens.
And then, when they try to do something more complex, they're stuck. They can use a program to create a beautiful website (we use both commercial programs like Dreamweaver and free programs like NVu, which allow them to type and format and insert photos), but when they upload the page, they can't figure out why their images turn into those ugly red Xs. My students don't understand that when they "insert" an image they don't actually insert the IMAGE into the page, but rather a path to an image -- and when they move the page from their computer to an online server, they have to change those paths. I find that when I try to explain, they don't even know what a path is! (Yes, sites like Blogger eliminate this problem by having you upload images directly to the server -- but you can't do much web design at all before you run into the problem of broken images and links caused by incorrect paths.)
At EdBoost, our students know theoretically that they need math and logic to get into computer programming (and yes, half of our students want to write video games for a living!), but they don't realize that they'll need basic computer literacy just to get started.
How can we get our kids to start to understand how computers and websites and programs actually work?
For one, I'm going to make my daughter use an actual computer when she gets a little older (as opposed to just the Kindle that she loves but which obscures all of the paths and directories that must exist inside that little Kindle brain). I will let her use a computer and give her her own folder and make her save her documents there. I want to make her click around and be deliberate about where she puts things. Computer programming is all about precision (As I tell my students all the time, "It's a computer. It only does what you actually tell it to do, not what you meant to tell it to do"). And, I will make a conscious effort to point out things like paths in MS Explorer and in URLs. I want her to ask, "What do those slashes mean?" and I want to be able to tell her the answer.
Next, I really want to show my daughter the code behind the web pages she's viewing. If you open any website in Google Chrome or Mozilla Firefox, you can see the code behind the page. Just go to the menu (three little lines on the far right of the menu bar on Chrome; the Orange Firefox bar on the left on Firefox), click Tools (in Chrome) or Web Developer (Firefox), then click View Source (Chrome) or Page Source (Firefox) and there it is, the html for the page you're looking at. Scroll down a bit and you'll see the text on the page. You'll also see the paths for the images and links. Once you know what you're looking at, you can parse it out. It's pretty cool! And, even after a very basic web design class, a kid could really dissect a page of code like this. I'm hoping to get to do this with my daughter (I need to start studying if I hope to answer all the questions I bet she'll have!).
If I get really ambitious, I want us to play some open source video games and then download the source code to take a look. These are huge files, but they do give some insight into just how much goes into writing a video game. I hope by then my programming skills will have improved enough so that I can actually teacher her what's going on! But even if you can't make heads or tails of the code, just seeing the black and white type that make up really complex games is incredible.
Step three, if my daughter is even mildly interested in computers of video games, I will absolutely find her a computer class -- the younger she is, the better. Programming languages are just that: languages. They have vocabularies and syntaxes and I can only imagine that they are best learned when the learner is young. All kids -- but especially kids who are interested in creating for computers -- should understand how they work. I'd love for my daughter to become a programming expert -- but I'm going to take responsibility for at least giving her some basic programming skills that she can build on.
Our technological lives are getting so easy, it doesn't seem impossible that a huge proportion of the next generation might lose the basic abilities they need to push technology to the next level. I'm hoping I can help my kid be one of the technologically savvy ones!
Any other thoughts on how to get it done?
UPDATE: Many thanks to Ed Stabler, EdBoost's volunteer computer guru (and sometimes computer teacher), for the link to this blog, which makes my point, perhaps better than I do:
http://www.coding2learn.org/blog/2013/07/29/kids-cant-use-computers/
UPDATE: Many thanks to Ed Stabler, EdBoost's volunteer computer guru (and sometimes computer teacher), for the link to this blog, which makes my point, perhaps better than I do:
http://www.coding2learn.org/blog/2013/07/29/kids-cant-use-computers/