My 8th grader is interested in learning more about computer programming. Our school does not seem to offer this. He is an above average student who has completed algebra and is now in geometry. Next year he will be in Algebra II / Trig. We have MacBooks.
I am trying to find a program that will be fun, but also teach him useful skills that he can build on and have logical next steps if he becomes more interested. I am not the kind of person to just jump in at a random point. I want to have an organized plan where I understand the best place to begin, the skills that matter most, the best resources to make learning them fun and interesting for him, and the next steps if he becomes more interested.
My son taught himself starting with Visual Basic for Dummies when he was in elementary school. In middle school he learned Java at a one week computer camp. He would have loved to have gone for longer, but it was pricey!
We used kid coder/teen coder in homeschool (http://www.homeschoolprogramming.com/) and our kids start Comp Sci AP when they start public school in 9th grade.
@alfonsia “Does he have unfettered access to the internet? He hasn’t looked at this himself?”
He doesn’t know what he doesn’t know. I am trying to establish a reasonable plan for him as a start point. I looked at the codecademy.com that @bodangles recommended.
They have a 13 hour introduction to Python course. I think might be a good start point. Then we can reassess after he tries that.
My son taught himself a few languages starting in middle school. He began with a combination of books and Udacity. He felt that Codecademy aimed for the lowest common denominator. Having said that, he hasn’t looked at Udacity in a while, and feels they have become commercial.
If your son wants to move on from Python to C++, Harvard’s Intro to CS, CS50, is available on edx. My son took that course in 8th grade, and was at the same math level as your son. That was the first of many on-line college courses that he has taken: all free, all for fun.
His problem with the AoPS courses is that they were offered at set times, and he was at school or at sports/clubs when the classes were offered. He does have me buy the AoPS books for math, but not CS.
He now volunteers at our local library teaching Python to middle schoolers for five or six consecutive weekends a couple of times/year. They tried teaching C++, but Python was more successful. You might want to ask at your library to see if they offer anything.
If your son’s interest grows, you may need to replace the MacBook with a PC that he can install Ubuntu on. A good graphics card will also be needed…or at least appreciated.
There was a piece on our city’s newscast yesterday on efforts to get computer science and programming into schools, and how they are more than exercises in programming, but exercise skills in logic and analytic thinking
I was going to mention CS 50 too, but I think it is hard for a kid that age to have sustained attention in a mass online course. I am in my 60’s and quit a modern poetry class on Coursera/Edx.
A local community college might have a beginning class. Virtual High School is a possibility too.(Our school joined after we used their classes and sang their praises) or Aventa Learning (google educere, the umbrella organization.)These three are graded so maybe not fun!!
There are books of course, and maybe online resources too.
My son majored in CS and works in Silicon Valley. At that age he did fool around on his own- or maybe it was later, because we did not own a computer until he was 14!!! He always said Legos were a binary operation that prepared him!!!
Anyway, if I had an 8th grader with these interests, I might try to find an adult or teacher who would work with him outside of school to get him started. But Khan Academy is really wonderful, and it did not exist when my son was in 8th grade.
ps editing to add that Khan has fun concrete projects such as animation, games and websites so would keep attention without the personal contact or grades- looked at it again after I posted. I think I might try it!!!
Son the software developer is visiting. Won’t ask him about this because of the reaction he’ll have. There are many computer languages. The ones you learn depend on your use for them. He has a decent command (not expert by his high standards) of Python now. Self taught. Was an honors math major (included grad level courses) then added comp sci in college instead of grad school. He did comp sci camps. Never took AP comp sci because of schedule conflicts in HS. From what I have seen of his path as a gifted kid I would recommend CS courses instead of trying to learn a language at first. There are computer programmers at the very basic level who go to tech schools all the way up to math heavy developers who use programming skills. He should learn about the whole field of computers instead of limiting himself to just the programming. Of course, at his age programming may be just the thing to satisfy him.
Look at CS courses and major requirements at local colleges, your state flagship and any other schools of interest. Have your son look at these as well. Look at what is covered in the intro courses and any info about languages used in them. In today’s world one can often find course syllabi online.
How much of the above you and he choose to do will depend on his interest once he starts the search. You don’t want to get him mired in too much that makes him lose interest.
I don’t think there is one “right” way to start, but I think with younger kids, programming is what is interesting. My son first got interested watch dh writing a program that would help him organize lab notes. At one point I remember him reading books about DOS, eventually he taught himself Linux and he currently does something with the Linux kernel at Google. He took AP comp sci as a high school freshman but says in retrospect he should have skipped the course and taken the exam. He already knew all that stuff already. There are more resources out there now than when he was young. At the time there wasn’t a lot beyond the MIT open courseware that I was aware of. I do think a smart kid will be able to find much of this on his (or her!) own, but obviously it doesn’t hurt for the parent to send some ideas out.
@much2learn ,
I second the recommendation for AoPS Python classes, especially since your son’s math is pretty strong. AoPS works in a lot of interesting math problems. Please take a look at
You can see the 2nd course culminates with building some games.
Codecademy Python is great for a quick flyby, but there aren’t too many difficult challenging problems in it. One other annoyance is that it seems to be built around Python 2 (versus Python 3 for AoPS). The kind of games one could write after going through Codecademy would be fairly simplistic (text-based). Whereas AoPS goes straight into some of the graphics creation through the turtle module.
From there, I would recommend setting some sort of project goal. (“Build a program that…”).
Son still wouldn’t give his mother answers like he would a stranger. Issues. Think forward for you, backwards for many of us, to the terrible teens, sigh.
Summer camps are great, age appropriate places to be with other peers interested in the same things.
That 13 hours may presume a background he does not yet have- the reason I would look into seeing what is available in general computer courses online.
I agree with comments made earlier re: many of the courses on EdX or Coursera being difficult to sustain interest for an eighth grader . However, there is one exception - and that’s the Intro Python Course on Coursera from Univ. of Michigan by Charles Severance (“Dr. Chuck”). Very engaging and is able to sustain interest. They have a new session starting soon (free if you just join the course with no certification option):
Also check out the free courses at Udacity (they’re still available - but involve more digging):
Start with Python. The Udacity beginner courses are well structured and my kid got a lot out of them. If OP’s son finds them too easy, he can then move up to other intro Harvard or Stanford course(s) on EdX or Coursera .