posts tagged with getting started

159-small Motivating Programming for a 12-Year-Old

posted by jesstess Apr 2, 2010 @ 1:44 PM • 10 comments

in

I have a sister who is 12. She loves her math and science classes, but her school doesn’t seem to be interested in teaching computer skills (not even typing – I bought her some typing programs to get her started when I found that out).

I love computers and I love programming because of the limitless applications and ways to help people. My enthusiasm has yet to convince her that programming is something she’d be interested in, though. I’ve tested the programming waters with her on a few occasions using Python, but she is quickly bored by the need to understand basic data structures and flow control before being able to do anything interesting.

I’m not sure how to better motivation programming for her. Super-high-level kid-oriented languages exist, for example Scratch and many other projects from the Lifelong Kindergarten group at the MIT Media Lab, but as the group name suggests, these programming platforms are geared towards kids half her age.

One idea I’ve been toying with is setting up a Moo for her and her friends and seeing if exploring the world inspires her to want to learn how to add things to it (although Lambda is maybe a sadistic choice for first programming language).

Has anyone has success with introducing programming to someone this age? What worked for you?

1-small Resources for Beginning Programmers

In almost all areas of STEM, there’s a good chance that you’ll need to learn a little coding at some point to crunch your fruit fly data or make your robot go. Even if it’s not totally necessary for your projects, it’s often good to know some programming anyway — it’ll give you an advantage in your lab or office, it’s a great skill that can get you plenty of jobs on its own, and more importantly, it’s fun to learn and do.

Think you might want to learn programming, but don’t know where to start? Here are some great, (mostly) free, and fun resources that will have you coding like a pro in no time:

First, you’ll need to pick a language to learn. There are a LOT of options, and everyone will have a different opinion about what’s best for a beginner. The good news: for the most part, you can totally ignore that! It doesn’t really matter what language you pick first. Just stick with it for a few months until you’re able to write a couple of simple programs that do something interesting; then, when you start to learn a second language, it will be much easier. (Try “translating” some of the programs you wrote in the first language into the second.) Once you’ve learned to do the same things in two different languages, you’ll probably find that it becomes simple to pick up a new language whenever you need it for a job or project.

Here I’ll suggest Ruby and LISP, two of my favorite languages. Ruby was designed to be fun to program, and is a good language for creating little scripts to do things on your computer, or, later, writing complex web applications. LISP (which stands for “List Processing”) is an old-school language with simple syntax that’s a good basis for really digging into the ideas behind programming. It comes in a few different dialects, but don’t worry, the differences are minor!

  • RubyHackety Hack is a Ruby programming environment for beginners that you can download and run on your computer. Chris Pine’s Learn to Program will work you through the basic concepts of programming using examples in Ruby. For a more… er, whimsical… introduction to the language, check out why’s poignant guide to ruby, which features cartoon foxes, chunky bacon, stolen trucks, and so much more, all intertwined with a programming tutorial. The Ruby Koans are another fun set of exercises to help you strengthen your Ruby muscles.
  • LISP – You can work through a tutorial on a version of LISP in “Lists”, an amusing text adventure game (which you can download or play online. There’s also the Dr. Scheme project — a version of LISP (with an interactive interpreter) that’s used in a few introductory college courses. And if you’re up for some heavier lifting, How to Design Programs is a great book for ambitions beginners, with examples in a version of LISP.
  • In any language, use your newfound knowledge to work through some of the problems at Project Euler.
  • And for inspiration, cs4fn.org features resources on some of the many exciting careers involving programming.

(For those who aren’t new to programming: what resources helped you when you got started, and what resources did you wish you had? Share in the comments!)

1-small When Should Students Start Learning Computer Science?

One major reason that fewer women are in computer science is that middle or high school aged boys are much more culturally encouraged to pick up programming as a hobby. So by the time students get to CS 101 in college, some students already have a fair amount of experience; and somehow, this has become the cultural norm, so students who haven’t already taught themselves programming are perceived to already be behind before they’ve even started college, which discourages many of them from entering the field at all.

This is ridiculous! We’re losing a lot of potentially talented computer scientists by this cultural insistence that they develop their skills so early. College students who hope to become graphic designers, or lawyers, or accountants, or historians of science aren’t expected to already have experience in the field by the time they matriculate — why should students who hope to become programmers be subjected to a higher standard? It weeds people out of the field early who could easily have caught up with their more precocious peers and become successful were the culture different — and because of cultural influences at the pre-college ages, these people who are weeded out are disproportionately female. Our society needs more computer scientists (and other IT people/people with high-level computer skills) than can be produced through the “see if they pick it up on their own before age 18” strategy.

CS 101 should be just that — 101, something with no prerequisites, where you can start learning the discipline. For those who say this might be unfair to those students who have prior programming experience — these exceptional students should be treated as exceptions, and have the option to test into a higher level of CS. (Removing these students from the 101 class would also make it less intimidating for the true newbies.) We need to encourage a cultural shift in the way CS 101 is perceived and promoted at the college level — make it more clear in course catalogs and instructor introductions that at least one CS course is perfectly welcoming to total n00bs who have never even tried HTML.

We can alleviate this problem of unfairly high barriers to entry even more effectively by taking a two-pronged approach; in addition to changing the culture surrounding introductory college-level courses, we should require CS for everyone in high school (or at least make it a normal part of the HS core curriculum, the way calculus is now). This would make computer science tracking work more similarly to the way math and science work currently: if you’re planning to major in, say, math or biology, by the time you get to college you’re expected to already have a start in those fields — but this isn’t as huge a barrier, since high schools are tracked so that people with those aptitudes will definitely take those classes in a typical American high school. Requiring or expecting students to take CS courses, in much the same way, would have many benefits. It would improve the gender balance, since girls with natural aptitude for programming would be able to discover it in an environment where they could compare themselves to people with less aptitude (as opposed to the current system, which generally results in girls with high aptitude comparing themselves to boys with high aptitude and greater experience). It would increase the number of skilled computer scientists in general, for similar reasons. And even beyond that, I’m firmly of the opinion that even for people who will never want to do any programming afterwards, learning some in HS would make them better citizens/thinkers (for the same reason you learn calculus or trig in HS even if you plan to major in English) — and able to more easily handle the basic computer tasks that are required for almost any twenty-first century career.

Programming isn’t magic — some people have more aptitude for it than others, but the elitist culture is discouraging even people who might have a lot of aptitude from even getting started at the early levels. It’s time to stop weeding out potentially talented programmers with these absurd litmus tests.

1-small How Did You Get Started?

Anecdotally, a lot of the men I know in science/tech/math have been interested in these fields since grade school; by the time they got to college, they’d already taken some advanced classes and were ready to major in these subjects. And while there are certainly plenty of women I know who were on math team in high school (or something similar), I also know a lot of women who realized they were interested in these fields later in life, after they’d already studied a non-technical field in college, and took a less traditional path to learning about it; some of them are self-taught in technical fields, and some of them are going back to school to learn more about their newfound interests.

My story is sort of in between. I’d always been somewhat interested in computers, but never really learned any programming. In my third year of college, when I was already well on my way to a linguistics degree, I decided that since I was interested in computational linguistics and natural language processing in particular (at the time I thought I’d go to grad school for linguistics), I’d benefit from taking an intro to computer science course. I decided I was up for the challenge of the honors level of the course; even though technically no programming experience was required, I assumed I was starting from behind. And indeed, the guys in the class (out of the 20-some-student class, I was one of two girls) projected an air of confidence and experience, and I felt like I was struggling to keep up with the assignments.

I was surprised, then, when at the end of the quarter, I had one of the highest grades in the class! (This made me wonder if some of the more experienced students had been overconfident and hadn’t worked as hard — I also think it helped that we were learning Scheme, which isn’t something many high school hobbyists pick up on their own :P) I’d also discovered that I loved programming, and started taking classes toward a computer science minor — which quickly turned into squishing a full computer science major into my last two years of college, and deciding I’d rather become a programmer than go to grad school. Since then, my web development skills have been mostly self-taught, though the programming I learned in college certainly gave me a head-start on that.

How did you first get interested in STEM? When and how did you start training in your field (if you’ve done that yet — or how do you plan to)? Share your story in the comments!

Log In



 

Join Us










Insert the next number in this sequence: 10, 11, 12, 13, 14, ??

By submitting this form, you agree to the site's terms of use and confirm that you are at least 13 years old.

Search Us

Promote & Share

RSS delicious facebook twittter stumbleupon

Follow us on Facebook