“I would recommend CS courses instead of trying to learn a language at first.” - CS courses are language courses.
it is not “fun” at the beginning, it is a great fun for somebody like me who has been in IT for well over 30 years. My job is great fun, frankly, I do not want to retire, I will lack the most entertaining part of my life. At the beginning, it is tedious and requires a lot of patience. Do not create any plan for 8th grader, let him 'test waters" himself, let him be free!
The only skill that I can think may help is analytical thinking, Math or any other academic background is not required at all. Anybody can do it who can get a “feel for it” so to speak, who can thin in very detailed “if, then, else” fashion that can go many many “nested” layers deep.
Good introductory CS courses are not just about learning a computer language.
If his HS has a FIRST Robotics team, he should try to join next year. There is programming required, and he can ask to be assigned to that group. He will learn a lot and have fun.
I think some people are getting ahead of themselves. Staring with something like Code Academy and basic coding prompts is better than starting with something that requires a lot of time or money.
As above in post # 21- CS courses are definitely not just computer language courses- some are crosslisted with math departments. Others are hardwire information, etc. One reason information systems (in business schools) is not the same major as the (perhaps called college of letters and sciences) major of computer science. There’s a lot to be learned besides just learning coding languages. Something I recently learned from son is that there is a CS theorem that says you can’t have a system that won’t crash- I’m being liberal with terms here but it is interesting to know perfection can’t be achieved in coding.
I don’t know, @SaintSaens . The AoPS Python course was my ds’s first exposure to coding and he loved it. He was quite a bit further along in math, but about the same age. It was a great intro experience for him.
That brought back memories. Eons ago I dropped out of a summer HS course in Basic or Fortran. Way too bored and frustrated with the miniscule details required for the simplest tasks. Did go on the field trip to see the UW Computer Science building- late 1960’s and it had AIR CONDITIONING and room sized computers. Things have changed so much over the years- that building still exists but is different inside! I’m an end user.
Perfection can be achieved in coding (i.e. making a program that always operates correctly), but it’s impossible to prove correctness for all possible programs. Since I don’t know what your son told you I can’t figure out what he was trying to relay.
This! The OP specifically said her son was interested in computer programming. That’s coding. There are many people who know how to code and who are not computer science majors or computer science workers; coding is just a good general skill to have, even if he later decides to major in English or social work.
Yes, some introductory CS classes will teach more than just programming (although often the first required CS class in a CS department is a programming language of the student’s choice), but the student 1) has expressed an interest in programming, not an insatiable need for CS and 2) is in 8th grade. He’s what, all of 13?
There’s no reason to create some sort of curated “plan” yet. There are lots of things I was interested in 13 that I wasn’t interested in a year later. Let him explore the vast, vast, VAST free resources on the net and in the library for learning coding. The best way to learn to code is to jump in there and start trying to make a rudimentary project; there are many websites and apps that will teach him the basics of coding and give him enough exposure to decide whether he likes it enough to continue. After that, there are some free courses through edX, Coursera, udacity, Khan Academy, etc., that can expose him to more coding and potentially introductory computer science if he’s interested.
Yes, Codeacademy doesn’t give too many challenging problems. He doesn’t need challenging problems yet. He’s in the 8th grade. He needs small steps that will build his confidence and expose him to the basics. Codeacademy is perfect for that.
And no, Codeacademy doesn’t presume background knowledge. The whole point of Codeacademy was to create an accessible platform for any person of any background who wanted to learn how to code; the only thing it presumes is a knowledge of basic math (and by basic I mean addition and subtraction). I started Codeacademy knowing the basics of code from statistical software (not realizing it) and it’s super easy, interesting, and fun, with lots of reinforcement along the way. It’s really a well-designed program.
Code.org also has some resources with Hour of Code and others for young people interested in learning to code.
A note about Minecraft: it is an excellent resource to teach young people to code because they are obsessed with the game but the basic and intermediate gameplay (building your world) does not actually require any coding. It’s the process of modding that requires the code - Java. However, I have seen 8-year-olds doing this with astonishing speed without even realizing that they were coding, and Minecraft teaches other really interesting skills as well, so it’s definitely worth a hack. (Part of my job is watching kids play Minecraft, sometimes for several hours a day.)
"Good introductory CS courses are not just about learning a computer language. "
-Redundant for person who is interested in coding. After 30+ years, frankly, I know much less about introductory CS then 30+ years ago. I have no idea about PC or the midrange that I am writing my software for. Why do I care? PC is just my tool. We have Tech Service if something does not work properly on my PC, I would not dare to touch any “techy” things, it is outside of my knowledge/background/responsibilities. Those “techies” are not developing software, coding is outside of their responsibilities.
An 8th grader does not have the background you do, Miami… This boy hasn’t had the chance to find out much about computing- it is far vaster than the job you do and what you are familiar with. Maybe he’ll get intrigued by what’s behind the coding someday. You’re doing the tech aspect as opposed to the development usage of programs. Kids need to start with the concrete and perhaps move on to theory.
The CS theorem brief words came about a few months ago when son was on call for his company (yes, they have a software savvy person available to answer questions on weekends for others dealing with things- being vague here). Apparently some big servers had crashed that communicate with each other or some such and I questioned why- couldn’t they prevent that from happening? And the reply involved the theorem stating there was no way to prevent such things. Not much more from him because he is not talkative and I was pressing my luck. Theory that involves math way beyond my eons ago college calc courses.
I find it intriguing that there is so much theory behind computer programming. Perhaps this boy will also once he learns more. Parent- do you see your son asking a lot of “Why” questions? It will be interesting to see the direction he takes in a few years.
Well, the parent can do whatever they wish.
My own GrandS - 14 y o, just finished putting together his own PC, buying parts whenever he had money - also earned on his own initiative… My H. - EE said that it is not that easy and it is not just putting parts together. Did he take any courses? If he was forced to take some courses, I bet, he would have dropped the entire project long time ago. When you are dealing with the teenager, got to consider the way the teenager’s mind operates. A guy wants to do something on his own, let him be!
No background is needed for coding the Computer Programs. I have worked for 9 absolutely different companies in absolutely different industries on different computers, using different languages. You just need to be able to learn on your own at any place, at the place that has nothing to do with your previous experience, different industry, different computer, different computer language, different everything!.
I do not need to know any “theory behind computer programming”, I never ever knew any theory. So servers crush, what a biggy? Well, some documents that needed to be at the customer within 30 min., will not get there within 30 min. So, we will be fined some 170 euros, it is not the end of the world, just normal business. Everybody is trying to do their best, but nobody is perfect and there is nothing fascinating about it, just very interesting job that hard to leave behind. The college education in IT is primarily to satisfy the requirement of employers. My position cannot be filled by somebody without a 4 year degree. And there is no question in my mind that an 8th grader does not need to know any intro CS to start coding. My own S. in his teenage years way back when we got the very first PC, just set down and programmed a little program that showed a little drawn person to walk on the screen. As far as I remember (mind you, my S. is in his 40s), he had to use machine language. The syntax of the languages that are currently used is not that complicated, The thinking process behind writing the program, the level of detail that is required, that is where an 8th grader may experience difficulty, primarily because of the level of focus that is required. My S. had nobody to ask questions about his program, not a single soul around him.
For once in my life I actually mostly agree with MiamiDAP. I think for a middle school age kid you want them to start with something fun. They may be writing bad inefficent code at first, but they’ll figure it out. My kids first project that I remember was some very simple animation of a rocket going around the moon. He also did an Adventure/Zork type game using a book that explained how to go about it. That was a big hit with his third grade class. You don’t need to start with theory.
Scratch is a fun introduction to programming for kids, suitable for interested elementary aged kids. A middle schooler might require some help to install it but should be able to master it independently with little frustration and be writing little programs within minutes. He may be a little old for it but it might be a good place to start if he has not had any exposure to programming.
@mathyone – I was going to mention Scratch but thought the boy might be too old for it. My older son took a Saturday Scratch course when he was in 6th grade, came home and explained it to the 3rd grade brother, and then they were both playing on Scratch. Younger son became fairly invested and would write to the Scratch folks asking for new modules. (I do not know a THING about coding so I am sure I am using the wrong term when I say modules, but my vague understanding is that Scratch provided these pre-programmed bits that students could drop in place to create their own games or animation.) The folks at the MIT Media Lab were kind enough to give us a tour of the facility when we were up in Boston one summer.
Older son has no interest in programming now and younger son now plans to major in it and math in college.
Funny story… When DS was in HS, he was busy with IB courses and music. He didn’t doing any STEM EC. But in the summer he used his TI calculator to design a routine for solving 4x4 Rubics cube. He didn’t realize it was a bit like programming until he started his college engineering courses. Now he is a software engineer.
I just got an email from Sal Khan saying the Hour of Code begins tomorrow.
Start with Python because it’s easier and has fewer steps and will create an interest by being able to create easy programs. If he starts becoming better and more interested then can start taking JAVA which is the language that they teach for AP comp sci.
Scratch might be fun but 8th grader might be too old now. Heard that mine craft has similar logic as programming so might work.