General Question

ibstubro's avatar

Should today's schools be requiring Basic or C++ as a language requirement?

Asked by ibstubro (18804points) May 23rd, 2014

How important do you feel computer programing is in today’s society?

Many college degrees require a foreign language. Should programming language be given equal time?

I think the phrasing of my question lets you know that I think requiring everyone receiving a public education [U.S for me] to have a passing acquaintance with computer programming language is a great idea.

Feel free to try to reinforce or reeducate me.

Observing members: 0 Composing members: 0

43 Answers

johnpowell's avatar

I’m totally for it. I don’t think the language is important. Python, Ruby, Lisp. It doesn’t matter.

It isn’t about making programmers. It is about conditional statements and teaching how to step through a problem and find a solution.

Mimishu1995's avatar

No. Why do we have to learn something that we don’t use often? I think only those who want to be programmers have the desire to learn at all. And normal people, not that much.

Think about it. Foreign languages can be used to speak to foreigners, but how about computer languages? Do you really need computer languages to use the computers?

I’m just sick of it when I had to learn Pascal at school. Put all the meaningless command into my head, sit all day in front of the computer trying to craft some impractical programs, try to pass the exam by writing a bigger and more impractical program, and… forget everything. I just don’t want to learn something that I know I will surely forget after exams.

ARE_you_kidding_me's avatar

Neither. Most non-technical people will never really get anything out of it. Programming packages like Matlab are a better way to teach programming. Basic is a dead language but a good first language to learn. C would be a better language for basics than C++. It’s not the language that really matters it is the algorithms. A math class on generic computing science that teach them would not be a bad idea for many curriculums but not appropriate for everyone.

Dan_Lyons's avatar

No. What they should do is try to teach Algebra.

stanleybmanly's avatar

My perspective isn’t broad enough to really comment on the societal need for programming fluency. Now let’s talk about English proficiency in the country.

dappled_leaves's avatar

They certainly should be for any student in the sciences. C++ and Matlab are very closely related, as is R or any other object oriented language, really. If you know one, you pretty much know them all. And over the past ten years, there seems to have been a shift away from statistical programs that rely entirely on a GUI. Doing your own programming gives the user a lot more control, and can eliminate some of the drawbacks of packages like SPSS, etc.

But the average computer user does not need any of that. Operating systems are becoming increasingly easy to use with no knowledge whatsoever of how a computer works or thinks. It’s like the need for programming peaked sometime in the 90s.

This also means that entrepreneurial opportunities like app development are only open to people who study science, which is a bit of a shame.

ibstubro's avatar

Why not for a student in the Humanities, @dappled_leaves?

Aren’t computer majors required to take Humanity courses?

dappled_leaves's avatar

@ibstubro Not sure I understand your question. No… computer majors are not required to take humanities courses (at least, they’re not here). And what need would a humanities student need of OOL programming? Some of them use statistics, but frankly, that is the sector that GUI-based statistical software is perfect for.

Coloma's avatar

Why not make sure basic literacy is intact first and foremost?
No, this is nothing more than a twist on education from 30 years ago.
Why should I take advanced calculus if I am going to be a writer and artist?
Where it applies to ones future career choice yes, if it doesn’t, no.

jerv's avatar

Not really, yet definitely.

I learned BASIC when I was in 2nd grade, and everybody else had to learn it in middle school, but it hasn’t helped me one bit. And even C++ is of questionable use to those in the IT field and useless outside of it.

That said, the real secret of programming isn’t the language; it’s the ability to form a flowchart. You figure out what you want to do first and foremost. You have to think things through logically, put steps in the right order, and do other design work before you start coding. While the ability to code is useless outside of IT, the skill to do what you must do before you code is an essential life skill for anybody who plans to do anything.

For instance, suppose you want a bowl of cereal for breakfast. Do you have milk?

IF got_milk=true
. THEN make_cereal
ELSE
. IF really_want_cereal=true
. . THEN go_buy_ milk
. ELSE make_other_plans_for_breakfast

Now, there are many people that can’t even use logic that well, so what makes you think they can ever do something complicated like live as a functional adult? But if they knew a bit about computer programming, we would have more capable people; the sort of person I might trust to live without supervision.

Mimishu1995's avatar

@jerv Totally agree. I think the horrible mistake my school made when they taught us programming was shoving the commands into our heads without ever teaching us how to think logically and use the commands effectively. Some students, when learning programming, didn’t even know what they were supposed to do, let alone writing a program!

rexacoracofalipitorius's avatar

@jerv I’m wishing again for a <code> tag on Fluther…
@Mimishu1995 You’ve hit the nail on the head. Quite apart from the fact that BASIC and C++ are unsuitable for learners*, learning programming is not about learning a programming language. Unfortunately, many teachers of programming don’t know how to teach or to program effectively.

* C++ is an advanced language used for “low-level” programs, things like hardware drivers and libraries. BASIC is IMO not suitable for any use, and teaches poor habits. I would recommend Javascript as a first language for programming (even though it’s also rather poor in many respects) because of its ubiquity (nearly all web browsers have a javascript interpreter built in) and immediate benefit. But before teaching students to program, you should teach them the proper use of a command shell and scripting.

wildpotato's avatar

Absolutely. Not necessarily the two you mention, but some coding for sure. It’s good for people to not see computers as opaque, magical black boxes.

Funny little side note – a buddy of mine is helping me learn HTML, and he got a kick out of how when he showed me how to make italics and bold stuff and etc I got all excited because it reminded me of how we style text here on Fluther. In retrospect though, it’s a bit lame that I was not introduced to these concepts in any formal education but encountered them accidentally only about five years ago.

Seek's avatar

Sounds like either a good way to ruin real coders’ chances at a decent paycheck (Come on, my kid sister could do that in her sleep – she learned it in eighth grade), or extra time spent teaching something that’s almost guaranteed to be obsolete by the time the kids graduate.

Let’s focus on the problem we have with a large percentage of American high school graduates not being able to point out North America on a globe.

Dan_Lyons's avatar

@Seek Isn’t it over there just below France?

Seek's avatar

France is the one shaped like a boot, right?

Dan_Lyons's avatar

Right, just north of Russia.

ragingloli's avatar

Yes.
It would give children and young adults a perspective of the real complexities of the programs, games and apps that they use every day.
Once you realise how much work and thinking goes into even the simplest of programs, you begin to appreciate the sheer amount of brilliance that goes into the big stuff. Even MS Windows.
Besides, they will learn about logic and structure.
(btw, we had some basic Delphi in school)

Darth_Algar's avatar

I see little point in it. Most people would have absolutely no use for it. Personally I’m of the view that our educational system focuses too much on required classes and “one size fits all” standardized goals as it is. Requiring yet another curriculum would only compound that.

ragingloli's avatar

Most people would have absolutely no use for it.” An absolutely and utterly useless and irrelevant argument.
Most people have absolutely no use for mathematics beyond addition/subtraction/multiplication/division. Most people have no use for chemistry, biology or physics. Most people have no use for poetry, or literature.
Most people have no use for history, music, art.
If you had your way, school would only be about basic mathematics and simple writing.

Darth_Algar's avatar

@ragingloli

Don’t be so presumptuous. It does you no favors.

filmfann's avatar

No. Learning a foreign language teaches us more than the words they speak. It teaches us about foreign cultures. It gives us empathy for others. It makes us better neighbors. Even learning sign language in your native language does this.

LostInParadise's avatar

Absolutely. Computer science is a discipline in its own right and students should understand basic ideas, like variables, functions, branching, iteration and recursion. Students should know what an algorithm is and know how to translate a simple algorithm into a program. Some rudimentary work with databases may not be such a bad idea either. So much of business and science makes use of computer programs that students should have some idea of what is going on.

There is a freeware pictorial language developed by MIT called Scratch that has been taught to second graders. It is set up to make it easy to do simple animation and to create simple games.

johnpowell's avatar

@LostInParadise :: Scratch is cool and it comes on the default image for the Raspberry PI. I use my Pi for Btsync since I wanted to replace Dropbox with a locally hosted solution and they hired a war criminal.

Here is what Scratch looks like. It is running from the little 35 dollar box with the clear case.

Yes, I know I need to dust.

ARE_you_kidding_me's avatar

@johnpowell I tinker with raspberry pi’s also. I have one set up with noobs for a general playground box and another running retro pi. They have even used them to make beowulf clusters Graphical programming languages are the next big thing. You can program just about anything with LabView now. I greatly prefer writing software with little more than a console and emacs but times are changing.

Mariah's avatar

Exactly what @johnpowell said; any one language doesn’t matter but the concepts should be taught. The concepts are what you learn in college (at least at mine); the language is a tool used to explore the concepts in depth.

I am a computer science major who came from a huge disadvantage of having had none of it available to me in high school or earlier. Most of the kids in my intro level classes were bored to tears having done stuff like it before, I was challenged. Nowadays it should be standard.

MollyMcGuire's avatar

No. At best it’s an elective in high school.

jerv's avatar

@MollyMcGuire How, then, do you propose to teach kids how to think logically? I suppose I could see it if there truly were nothing about computer programming that applied to adult life.

Then again, many seem to think math has nothing to do with adult life either, then they get swindled on credit applications and ruin their finances. People just don’t see how things apply to other things, much as The Karate Kid didn’t get the whole “wax on, wax off” thing until Mr. Miyagi tossed a few punches at him.

Darth_Algar's avatar

@jerv

I know absolutely nothing about computer programming, yet logical thinking isn’t beyond me. And to use the example you gave several posts above that, to be frank, seems so simple to me that I find it difficult to believe that anyone intelligent enough to speak would be unable to utilize it.

jerv's avatar

@Darth_Algar I wish I could agree, I really do. Thing is, I see plenty of stupid people out there that are utterly incapable of even that simple logic. I find it hard to believe myself, but I see it every day. So maybe computer programming explicitly isn’t the answer, but it’s obvious that people need to be taught what basically amounts to the fundamental principles of computer programming, so I see it as a good idea. Or just go back to eemphasizing science to the degree they did when I was in school.

Also, it’s pretty easy to see how merely having enough intelligence to speak doesn’t mean much. I wouldn’t trust my home finances to a parrot no matter how large their vocabulary. Most humans can speak well before age 5, but I wouldn’t trust a toddler to be logical enough to live independently; there’s much more to it than that. Something that somehow disappeared from education about 15–20 years ago.

Darth_Algar's avatar

@jerv

I wouldn’t trust a 5 year-old to live independently, but I would trust it to be intelligent enough to deduce “want cereal – need milk” (though I would not consider milk to be a requirement for a bowl of cereal). You may believe you see it everyday, but, frankly, I think people often make the mistake of underestimating (sometimes greatly so) those whom they perceive as less intelligent than themselves.

Also, I wouldn’t say a parrot speaks, no matter how many words it “knows”. It merely mimics the sounds it hears with no cognitive understanding of them.

jerv's avatar

@Darth_Algar The “want cereal” was merely an example, and a much simpler one than the sort of decision-making that is required to be a functional adult in society. Maybe that wasn’t clear, but it was intended as an analogy, not a concrete example. Did I overestimate the intelligence of the reader by assuming they could scale things and see parallels, or is it simply miscommunication?

Also, incorrect. Parrots do have cognitive understanding, just not much. They’re approximately equivalent to a 2–3 year old child, only without the potential to really advance beyond that. You must be thinking of truly inanimate objects. The mere fact that a flying bird can avoid a wall and fly through a doorway instead is proof of cognitive ability. And don’t get me started on crows that can actually make simple tools…

Darth_Algar's avatar

@jerv

Did I say “no cognitive ability at all”? Did I overestimate the intelligence of the reader?

Mariah's avatar

My ex boyfriend, who is a biomedical engineering major (i.e. not dumb) does not have the logical brain of a computer scientist, at all. He had to learn some programming for a lab job he was applying for and came to me for help. I shit you not, he didn’t understand why the following code was a bad idea:

if x > (x+1) then [do something]

Don’t assume everyone just innately knows how to think like a computer scientist. It isn’t true.

jerv's avatar

@Mariah Now you know why I seem so critical, and why I think people should learn computer programming even if they never program a computer. What other logical lapses is he capable of? And if one cannot apply the lessons learned from tge underpinnings of programming to everyday life, I must wonder if they have the mental agility to solve any problem at all.

@Darth_Algar If you really do see the example above as simple, then you think more like me than many people. Many wouldn’t find the logic so simple (though most here would; jellies tend to be above-average).

Mariah's avatar

@jerv Yeah, my ex has a serious block with logical and systematic thought in general. Though I guess I’m biased. I wonder if early introduction to computer programming may have alleviated that?

jerv's avatar

@Mariah Maybe. Having been introduced to it at age 6, I have to wonder how much of it’s me and how much of it’s my education.

SavoirFaire's avatar

@jerv For the record, I first learned formal logic in my freshman year of high school as part of my math class. It was a precursor to learning how to do geometric proofs. Formal logic is the foundation of the sort of conditional reasoning you and @johnpowell have mentioned, and it can easily be taught separately from programming. In fact, many computer science programs require formal logic for majors, often as a prerequisite.

Moreover, it is not necessary to master formal logic, let alone programming, in order to think logically. I teach an informal logic course—which includes some formal logic, but not nearly as much as you’d get in a class dedicated to the topic—and my students routinely finish the semester reasoning far better than they did at the beginning. And of course, philosophy students (as a group) outperform all others when it comes to analytic reasoning skills.

So while I have nothing against offering more courses on programming at both the high school and college level, and even find some merit in allowing it to count as a foreign language (for non-CS majors), I cannot agree that it is the only way to learn how to think logically (not least because your guys got all of that stuff from my guys).

jerv's avatar

@SavoirFaire No, it isn’t the only way, though with technology as prevalent as it is in today’s society, I see it as slightly more applicable than 20 years ago. (Of course, thinking logically, even without the CS slant, may put many IT guys out of work as people start to solve simple IT problems (the ones that get laughed at) on their own.) But yes, it can be taught separately. Sadly, it isn’t taught at all, leaving many kids graduating with little problem-solving ability, and growing into helpless, incompetent adults.

Maybe we need to add your course to the curriculum.

jerv's avatar

@SavoirFaire One benefit of going the CS route is that it makes the material less dry and more relatable and interesting. Equations are boring. My interest in physics is not because I like reading numbers, but because I like making things that happen to require some calculations in order to build properly. Many kids want to be game designers, but the same sort ofllogic required for everyday life (flowcharts, conditional branching…) is also required to design a game; in fact, you have to do it before you can even think of typing a single line of code.
As with anything else in education, one must not only convey information, but do it in an engaging manner that won’t cause the lessons to be forgotten (or never learned) due to boredom. Heat transfer equations are boring, but setting stuff on fire is fun even if you have to take measurements. And one of the big issues is, “Why learn something I’ll never use?”. Show how it’s useful (or just fun), and they’ll learn it better and easier.

SavoirFaire's avatar

@jerv I mention that it isn’t the only way because you asked earlier how else one might learn to think logically. And while I agree that formal logic is often taught in boring ways, it need not be. I loved doing proofs in high school, both logical and geometric. My teachers were always able to make it relatable by showing how it applied to real world problems. Need to figure out if that politician’s argument makes any sense? The first step is to formalize it and test for validity. (My informal logic class also uses moral and political problems as a vehicle for the main content.)

Can the learning always be made fun? No. Sometimes you just have to learn something the old-fashioned way. But of course, your own link from above reminds us that even then we’re not learning something merely for the sake of learning it. Skills that are boring to acquire can still be exciting or useful to have. So even if logic cannot always be made relatable in the early stages, it may still be worth teaching and learning it. In fact, the high school math classes might even be able to make logic interesting by pointing out that it will be helpful later to anyone who wants to learn how to program.

LostInParadise's avatar

There are two aspects of programming that make it intrinsically interesting, especially when they work in tandem. Firstly, you can draw pictures and do animation. Secondly, it is easy to get a computer to do repeated iterations of tedious calculation. It allows you to do things that you could never do by hand and encourages you to experiment on your own. Putting these together, it is easy to write a few lines of code to draw a Sierpinski triangle I thought it was a lot of fun when I learned how easy the program was. The program is also instructive in that it shows how the fractal nature of the image can be expressed through recursion.

Answer this question

Login

or

Join

to answer.

This question is in the General Section. Responses must be helpful and on-topic.

Your answer will be saved while you login or join.

Have a question? Ask Fluther!

What do you know more about?
or
Knowledge Networking @ Fluther