Encouraging kids to learn CS?

Hello! I’m wondering if you’ve encouraged your kids to learn CS before college, and if so, what programs you’ve used to get the CS education?

As someone with a CS degree and a son pursuing CS, neither of us had much of anything in high school. The problem is that there are relatively few offerings for most high schools, and even if you can take local CC classes, colleges are not likely to let you transfer them in and skip their introductory series, so you take it there anyway.

Getting involved in a robotics team or local groups like coderdojo would be my recommendation.

My son took a (very) basic coding class in HS and they use Codecademy.

Well Computer Science is different than picking up some coding skills. I think you mean that latter.

S1 is a CS major today and was all over the various hackathons that were in our area at age 15. He was on stack exchange and reading O’reilly books on programming and algorithms frequently. He was also a top 1% math student and that helped him enter his major from the get-go in college. Having the coding experience meant that he could take a slightly more rigorous track in the starting CS courses. The UC where he’s at offers a slower track for students who haven’t done much coding before. But by the 3rd or or 4th quarter everyone’s fairly caught up and on their way. So you don’t necessarily need a lot of coding in high school to be a CS major. But it helps somewhat. You will need to be strong in mathematics.

S2 is a similarly strong student in math and science. But he isn’t driven to code like S1. I’ve tried to encourage him learning some coding. But it takes a back seat to many AP courses, sports, music etc. And that’s fine with me. I try to encourage them to develop what they love.

If AP CS principles is not available in the high school, perhaps going through a course like http://cs10.org/ on one’s own may give the student an overview of what CS is about. This can be useful to learn both to determine whether the student is interested enough in CS as a possible college major, and to get enough of an idea of how CS may relate to other subjects, whether or not the student majors in CS in college.

My kid mostly taught himself. He first learned Java at a summer camp in middle school. If you google computer camps a lot comes up.

Neither one wants to major in CS, but we suggested they take a programming class in HS. It gave a decent foundation for an engineering programming class for our oldest. Our other son self-studied a bit this summer at my suggestion in preparation for AP CS with a Java book he found online.

My kid (now a CS major) got into coding via Minecraft Redstone-- check it out. As others have mentioned, coding is different than “CS”, but an interest in coding is a good indicator of an interest in CS.

My husband has nagged our daughter to learn some coding, but she isn’t interested. Our son took one CS class, aced it and was asked to consider it as a major, but he hated it.

Both my DDs took 2 years of CS at their HS. They mostly learned Java with a little C++. My oldest decided to major in CE with a concentration in CS and my youngest is a CS major. Their HS required a tech credit and it could of been an easy credit on stuff they knew or CS - it changed their lives.

My homeschooled D, now a college freshman, got a great background in theoretical computer science while in high school with these online courses, eIMACS University Computer Science I and II:

https://www.eimacs.com/student_ucs_overview.htm?navname=STUDENTS&toopen=ul25,ul5&scrolly=0&subnavid=a13

Son, currently working as a software engineer/developer (title depends on the company) for a major company, was a college math major who added the computer science major. His programming skills were not that great but his first (large) company valued his other abilities and he quickly caught up with the mundane skills. He had done a local summer computer camp once. His top tier U computer science course offerings included one where students chose one of a few different languages. Since college my son has learned a few computer languages on his own as they apply to the project he is working on.

Computer science is an entire field, not just programming. Having advanced math thinking skills is useful. This means taking as much math as one can in HS and more in college- perhaps beyond that required for CS majors. Learning specific computer languages sounds useful in learning how to learn while the specific language may never be used.

When I entered college in the mid 1970’s, my father mapped out a 4 year program for me that would have resulted in my becoming a computer programmer. I ripped up his proposed scheduled, majored in poli sci and English and became a lawyer instead. Since I paid my way through college, I had the right to disregard my parents’ suggestions.

My H took a couple of computer classes in college and learned enough to be able to set up his own website but chose to become a lawyer instead.

My kids tend to be more social science, history and less mathy types. My middle son is my best at math. He made it though AP Calc BC in HS. In college, he decided to change his major from poli sci to CS. After one class, he called and asked if he could change his major back. CS was BORING! in his words. He was my best hope for having a kid in the computer field. None of the others have the remotest interest, although my oldest is quite good at building computer systems. People actually pay him to set up their computers and systems for them, but I think that programming is something different and I don’t think he does that. He does the hardware.

Absolutely–applied math majors move into CS quite easily and have very high career ceilings.

I’ve seen many math majors over the years get into programming. At least half of software developing is learning to debug. Logical sharp minds can do that; even many CS majors don’t seem be able to think logically enough to burrow down into a problem and solve it - instead they keep trying for the quick, home run fix.

My son started with drag-and-drop programming 2nd grade. He used GameMaker then, but Scratch would be a good on-ramp for younger ages now.

We figured programming would be a good outlet for him, because it didn’t put him ahead in any subjects taught in elementary or middle school. Otherwise, he would have pushed even farther ahead in math. So, programming was mainly a way to slow him down in math.

In 6th-8th, he took 3 online Python and Java classes and ended up taking the AP CompSci test in 8th. The program he used, since the OP asked about programs, was Art of Problem Solving. They mostly offer math courses. Previously they offered Python and Java, but now they offer only 2 Python courses. Python is an excellent teaching language.

So, that left him with no real comp sci classes to take in high school. He did a lot of hacking and cryptography with friends at the school who are/were similarly (or more) advanced. As far as “education programs” in HS, he’s done mostly competitions like USACO, his own projects, and teaching/tutoring other kids.

So, he has lots of CS projects and languages on his resume, but mostly none on his transcript (other than engineering and Discrete Math). For senior year, he’s trying to get permission from a local professor to take a junior level college course.

My D taught herself to code. She then did a summer computer sci course for college credit. She learned a lot, mostly that has zero interest in computer sci. She realized that for her, the fun in coding came out of what she could create with it. Still she did feel it was useful, and recommends it to people.

My D is taking her first CS course now, after zero exposure to CS. She’s taking it because she’s considering a Stats major and a year of CS is required for that. I think she’s all about what she can do with it (plot Zika outbreaks! Track teen pregnancy trends in the midwest! ) but it’s possible she’ll fall in love with it just for its own sake.

I wasn’t a CS major but I am a self-taught programmer/developer, and I have always hoped she’d enjoy what I do. We’ll see.

btw- son liked theoretical, not the applied math major in college. We were surprised (shocked?) when he stated he was tired of school and chose to work instead. We have asked him if a masters in CS would be useful and he keeps replying no- he self teaches himself what he wants/needs to know. I am glad he did more math, including the grad level classes in college, instead of more computer science. I suspect they have a subtle influence on his thinking.

My kid in HS took a programming class and two networking classes. They are minoring in CS and majoring in theoretical math and statistics. They will be a junior this year and they don’t think theoretical math has much to do with CS. The last three summers they have had internships in CS. That has seemed to work out well.