Schemes to teach the masses to code

The way we categorize programming is actually one of the biggest problems I have our current educational models. I wouldn’t necessarily suggest that most students be exposed to Computer Science as such. The reality is that you don’t have to learn big-O notation or advanced data structures in order to learn how to program. In fact, most programming languages have features and libraries that will abstract away any need to learn these things. You use a built-in function/method, and you’re already working with a highly-optimized sorting algorithm, etc. “Knowing what results X produces” is all that’s required for computer programming. “Knowing how X produces that result” or “how to make a Y yourself that will produce the same results as X” is within the larger scope of Computer Science.

I have a huge problem with how learning to program, on an institutional level, is almost always tied to a larger Computer Science track. The reality is that most people don’t need to know how to optimize algorithms if they’re already going to be using algorithms that have been iterated to mathematical perfection by proper Computer Science experts already. There is value in having a bare-bones understanding of the various search and sort algorithms, for example, but it’s not exactly essential. If you’re already working with these functions in libraries, it’s as simple as reading the documentation to find out which one would be best to use for your specific case.

I really wish, at the institutional level, we would stop treating programming as an entree to Computer Science (very few people actually want to be academic gearheads, though I have tons of respect of course for people who do), and allow it to exist as its own educational subset, an educational package that CS people will obviously need to go through, but which people who don’t plan on going into hardcore CS can essentially use as a terminal point. This isn’t to say that you learn the fundamentals of programming and then you stop learning, of course. The best programmers will always be learning something, whether it’s a new language, or a new stylistic flair in languages they already know. But the whole point of abstracting things in the first place is so not everyone has to be a CS geek to use what are often incredibly advanced algorithms. There is no reason why we have to marry programming and CS as tightly as we do.

Yep in my country. Starting from high school. There is “computer” field, not about programming but production-ready skill like image editing, video editing, etc.

Man, how many years have I been away oh my JGO :persecutioncomplex:

[quote=“TifantaWorld,post:141,topic:53175”]
And, just for the record, we aren’t talking about teaching children about advanced algorithms or big-o notation. We’re calling it a subset of Computer Science, and apparently you have a different and more specific definition of Computer Science, but we’re not talking about advanced algorithmic computer science. We’re talking about the basics. If you want to call that something else, that’s fine.

[quote=“TifantaWorld,post:141,topic:53175”]
I can sort-of agree with some of this. I do think that certain curricula can be bogged down by a need to “frame” the basics in a larger context of “computer science”.

However, I do think there comes a point when it’s time to “graduate” from the basics and move on to more advanced topics. I’m not saying that should happen in elementary school, and I’m not saying it should be compulsory, but it should at least be an option.

[quote=“TifantaWorld,post:141,topic:53175”]
I think you’re being a little bit too pedantic about the distinction between what you’re calling programming and what you’re calling Computer Science, but I understand the frustration. I think we should start with “programming” and let the kids who are interested in more advanced stuff transition into “computer science”, just like we give kids the opportunity to go from “science class” to “advanced biology”.

However, the line between “science” and “advanced biology” isn’t one that a lot of people are worried about, and that’s how I view the line between “programming” and “computer science”. It’s not really a line.

[quote=“TifantaWorld,post:141,topic:53175”]
Sure, okay. And yeah, the kids using Scratch or LightBot or whatever don’t need to know about the algorithms behind them. I can agree with that.

However, once you get to a certain point (advanced classes), it does become extremely useful to talk about the more advanced stuff. Once you get past OOP and into even more abstract things like data structures, then taking apart different algorithms is exactly what you should be doing.

Again, I’m not saying that’s what we should start with. But there is a natural progression from “programming” to “computer science”, just like there’s a natural progression from “reading” to “advanced literature”.

[quote=“TifantaWorld,post:141,topic:53175”]
I actually think we mostly agree with one another.

But, please note, that nobody here is arguing in favor of teaching advanced computer science to children. We’re talking about teaching the basics, which sounds like you agree with.

However, I just want to point out that very few people actually want to become doctors, or mathematicians, or engineers. However, we still teach basic science and basic math. And we still allow any kid who wants to take more advanced courses to do so. All I’m saying is that computer science should function similarly.

I think we agree with one another, but I wanted to clarify for anybody else who still thinks I’m talking about teaching C++ to 6 year olds.

And just to compare, half of all states in the US don’t allow computer science or programming courses to count, at all, towards graduation.

Virginia, where I live, does allow programming to count as a math class, but only 102 schools (out of over 2,000) offer any kind of programming class. Also, there is no official curriculum as to what a programming course even is. Some schools might be teaching advanced C++, while others might be teaching basic HTML. It depends entirely on how lucky (read: privileged) a student is, which is where the marginalization of unlucky (read: less privileged) students starts.

This has just gone nuclear. Wow. Lemme just get some popcorn and er move into the corner :persecutioncomplex:

Er… what sort of weirdo sits and watches a two-week old corpse for excitement?

Cas :slight_smile:

Nuclear?

Corpse?

oh no

ZOMBIES

I think Cas is talking out of his ass when it comes to genetics here.
There is no scientific evidence that one gender works differently than the other when it comes to high level interest, especially implying a bias of a special subset of tasks and brain activities (which translates into doing disciplines like STEM) the juvenile brain cannot even fathom at young age to begin with.
Maternal instinct doesnt count. All instincts dont count. By the same token you can say boys are generally more interested in mating with every girl they see, which is true, but has no value in this conversation since thats not high level interest. That doesnt translate into playing Golf later on, being a swimmer, liking canned food, having an interest in architecture, history or STEM.

That all comes from outside stimuli. Maybe there is a tiny bias per person on what they will like, but not with genders.

Also I regularly was playing “house” with the girls in elementary school while the boys were playing soccer. Also took cooking classes in high school being 3 boys out of 20 people. And I am into STEM now.

I am a programmer because ever since I can remember my dad was tinkering with devices and especially computers as long as I can remember. Exposure to the subject… picked it up.