• Starting today August 7th, 2024, in order to post in the Married Couples, Courting Couples, or Singles forums, you will not be allowed to post if you have your Marital status designated as private. Announcements will be made in the respective forums as well but please note that if yours is currently listed as Private, you will need to submit a ticket in the Support Area to have yours changed.

Are we giving access to computers to kids too early?

seriously21

New Member
Sep 12, 2015
3
0
33
✟22,613.00
Gender
Male
Faith
Atheist
Marital Status
Private
We are only going to need more programmers in future but I don't think it does justice to how enjoyable programming can be learning it at a young age. I think it will put children off the idea and really most children won't even be able to learn simple languages like python or java so I assume they will be teaching them the concepts which could seem lame to children. Although to children with mathematical minds it would improve problem solving heavily.
 
Upvote 0

Tomm

Christian
Site Supporter
Jan 30, 2007
1,791
895
WS
✟278,556.00
Country
Brazil
Gender
Male
Faith
Catholic
Marital Status
Private
Read "The shallows" by N Carr, which argues that internet and technological gadgets are making it harder for us to concentrate. Jakob Nielsen's research
showed that people read Web pages in
an F pattern, showing how the internet
affects our reading habit.

Some educational researches concluded
that computers do not improve student
performance.
 
Last edited:
  • Like
Reactions: brewmama
Upvote 0

iluvatar5150

Well-Known Member
Site Supporter
Aug 3, 2012
29,550
29,255
Baltimore
✟763,293.00
Country
United States
Faith
Christian
Marital Status
Married
Politics
US-Democrat
the most basic aspects should be taught.
the major problem is that the technology changes so rapidly, that by the time they reach uni, what they've learned could very well be obsolete.

certain languages, such as C and C++, have withstood the tests of time, but others, such as BASIC has fallen by the wayside long ago.
new languages are constantly being introduced, python, java, etc.

the one thing that hasn't changed all that much is the basic operations, and mechanisms, of a computer.
they still employ memory, logic gates, registers, base 2 operation, program counters, fetch/ execute cycles.
they are still architecturally the same as the ones i cut my teeth on.

so, my opinion about all of this, is to teach the hardware aspects and how computers execute code, and leave the software to uni level.
of course teaching current software at primary would be ok, but it could very well be obsolete by the time the students got to uni.

The basic paradigms of programming haven't changed much in 30+ years, and the basics of designing a solution in c++, java, Basic and numerous other languages are all fairly similar. The big differences are in the syntax and in the specific features and shortcuts that are built into each language - differences which are all easy enough to adapt to once you know the basics. Proper teaching of programming should allow the student to hop between many languages rather easily.

It's the problem-solving and analysis skills that are so good to learn early.


Read "The shallows" by N Carr, which argues that internet and technological gadgets are making it harder for us to concentrate. Jakob Nielsen's research showed that people read Web pages in an F pattern, showing how the internet affects our reading habit.

Some educational researches concluded that computers do not improve student performance.

Again, learning programming is not the same as using a computer as an educational aid for some other subject. It's a fundamentally different experience.
 
Upvote 0

whois

rational
Mar 7, 2015
2,523
119
✟3,336.00
Faith
Non-Denom
The basic paradigms of programming haven't changed much in 30+ years, and the basics of designing a solution in c++, java, Basic and numerous other languages are all fairly similar.
yes, if you are talking concepts such as flowcharting.
a single flowchart would be applicable to all the languages you listed.
so maybe flowcharting could be one of the things taught in primary.
as for languages being similar, i must disagree.
i know BASIC quite well, but would be hard pressed to translate BASIC code into C++ without a flow chart.
even then i couldn't do it, because i don't know the syntax of C++.
The big differences are in the syntax and in the specific features and shortcuts that are built into each language - differences which are all easy enough to adapt to once you know the basics. Proper teaching of programming should allow the student to hop between many languages rather easily.
i would leave that to uni.
computer architecture and flowcharting should be enough for primary
 
Upvote 0

iluvatar5150

Well-Known Member
Site Supporter
Aug 3, 2012
29,550
29,255
Baltimore
✟763,293.00
Country
United States
Faith
Christian
Marital Status
Married
Politics
US-Democrat
yes, if you are talking concepts such as flowcharting. a single flowchart would be applicable to all the languages you listed. so maybe flowcharting could be one of the things taught in primary. as for languages being similar, i must disagree. i know BASIC quite well, but would be hard pressed to translate BASIC code into C++ without a flow chart. even then i couldn't do it, because i don't know the syntax of C++.

If that's the case, then I'd humbly submit that your programming skills are either rusty or not comprehensive. Translating a BASIC program into C++ should be pretty easy, unless you're using BASIC to do something weird that isn't allowed in c++, but even then, there should be a way to do it.

There may be a somewhat bigger different between old-school BASIC and the C++-esque languages, but there's less of a difference between the more modern Visual Basic and the rest.
 
Upvote 0

whois

rational
Mar 7, 2015
2,523
119
✟3,336.00
Faith
Non-Denom
If that's the case, then I'd humbly submit that your programming skills are either rusty or not comprehensive. Translating a BASIC program into C++ should be pretty easy, unless you're using BASIC to do something weird that isn't allowed in c++, but even then, there should be a way to do it.
i've been out of the loop for years.
i'm not saying it can't be done, i'm saying you must have at least a little knowing about both languages.
i knew nothing of fortran, but i was still able to code some, but not all, BASIC programs from it.
a flow chart would be universal across ALL languages.
in that regard, flowcharting would be a good primary school subject.
There may be a somewhat bigger different between old-school BASIC and the C++-esque languages, but there's less of a difference between the more modern Visual Basic and the rest.
i'm old school.
in fact i started a thread about GWBASIC in the golden eagles forum that no one replied to.
i was kind of hoping to find some kindred spirits where we could share our knowledge.
 
Upvote 0

KitKatMatt

stupid bleeding heart feminist liberal
May 2, 2013
5,818
1,602
✟37,020.00
Gender
Female
Faith
Agnostic
Marital Status
Single
This is a great idea! I'm so saddened that my nephews are graduating school not knowing how to properly use a computer*, so I'm excited with any advancement meant to teach them more.

*They can Google "facebook.com" and sign in, and use Spotify, and download pictures. That's it, they don't even know how to type properly, use antivirus software, or protect themselves while online!

Also, just lol at the people insisting that the sky is going to fall because people use computers a lot.
 
Upvote 0

beaverpond

Well-Known Member
Oct 25, 2013
503
60
Visit site
✟23,480.00
Faith
Non-Denom
Marital Status
Married
Politics
US-Republican
Back in the 80s we used to teach basic programming to kids in elementary school and I know this because I was the instructor, it was part of my internship for 5th and 6th grade. It was also being taught in every grade in high school in the school district I was working in back then. There was another intern working with all the Junior High students. This was all taking place in the late 80s and we were all using Apple Computers.

Nothing has changed, now the kids are learning typing skills starting in the 3rd grade so by the time they reach Middle School they are ready for their Computer Programming Classes that start in the 6th Grade which continues all the way through their Senior Year. We Start off by using a Mac and then in 9th and 10th they are using Windows, and in 11th and 12th we teach them the Linux Operating System. There is also talk of teaching them the Google Chrome System in the 4th and 5th grade starting next year.

The reason for teaching the kids all these different operating systems is that businesses in our area all use a variety of computer systems and what better way to teach the kids then to give them hands on experience on a little of everything.

I learned a lot in my final year of high school, but I learned more in college. However, it was one employer who took me and a select few other employees in and wanted help in writing their computer manuals for their locations literally step by step to get through a days paperwork for their store managers. Then they had us in to help write the software manuals for their cash register systems. While they had a vendor do it for them, they found a lot of steps missing and several managers were making adaptations to things to show where things were not working correctly.

Bottom line, school systems need to teach the kids to be proficient like myself so we have kids of the future who can think things through and type things out in the form of a manual and make it easy to understand, but also be able to go in and fix the bugs in the system by going in through the system backdoor that the vendor leaves for the employer and employees who are trained to do such things.
 
  • Like
Reactions: KitKatMatt
Upvote 0

DogmaHunter

Code Monkey
Jan 26, 2014
16,757
8,531
Antwerp
✟158,395.00
Gender
Male
Faith
Atheist
Marital Status
In Relationship
Some countries are not only introducing computer lessons in primary schools,
they are also pushing for computer programming lessons for school children.

Do you agree ?

I have mixed feelings about this.

Being a software engineer myself, I know very well that it's not a thing for anybody. Certain people's brains simply aren't wired to think like you must do in order to code.

On the other hand, the same can be said about math - but that's no excuse to not teach math.

However, I do see the benefit in some sort of "ICT basics" course, where one not only learns how to use certain applications, but where one also learns how the application itself works. The basics of how a computer works, what software is, what an operating system does, etc.

By way of example, one could go through some lines of codes and perhaps make one or more "hello world!" applications. That should cover enough of the basics to really understand what software is.

But an actual course dedicated to programming?

No, I don't really see the point of that. The first question that comes to mind then is "which language?". In this day and age, I guess that would be javascript.
But when you say "java script", you also say "html". The learning curve to start with any programming language to do something half usefull is VERY steep.

No high school is going to go through all that trouble in order to have students write something that is half usefull.

So instead, they'll either have to do really really boring and useless things, or they'll have a bunch of code handed to them which they will not understand and where they will simply have to write a little subroutine, at which point they will fail to see the bigger picture.

In my first year at uni, the better part of the year, and accounting for the biggest chunk of points, we were taught programming structures with the help of so-called "pseudo-code".

This is not done on a computer. This is done on paper. It's only purpose is to familiarize the student with the most important programming structures and architectures. First, obviously, conditionals (if..else..then, case / select / switch,...). Then the loops (for, while, foreach, etc). Data types and the difference between value types and reference types. The concept of objects, private and public functions, encapsulation, polymorphism, abstraction etc etc etc. And when to apply what...

And all that is before we even touched a keyboard!

I realise the goal of the proposed high school course is not to turn those teenagers into professional coders, but the fact is that all those things are quite important to know and understand before you can even really start writing modern code.

While I can certainly see the value in bringing teenagers into "contact" with the world of code, I think such courses will miss their purpose and that those goals could be accomplished without it. I think it should be a lot more general.

As for the "reasoning factor" of programming... you don't need to teach students actual code languages (and all the baggage that comes with it) in order to do that.

You can, instead, just teach them about logical logarithms. This includes the main programming structures (conditionals, loops, etc) and can be done on paper with either some form of pseudo-code or with diagrams.

However, I see it as overkill and don't see the need for it in non-IT minded courses. I think an "ICT basics" course is more then enough. A course that simply explains how computers and software work and that this phone they have isn't powered by magic.
 
Last edited:
Upvote 0

DogmaHunter

Code Monkey
Jan 26, 2014
16,757
8,531
Antwerp
✟158,395.00
Gender
Male
Faith
Atheist
Marital Status
In Relationship
/* HelloWorld.java */

public class HelloWorld
{
public static void main(String[] args) {
System.out.println("Programming is good for people of all ages");
}
}

See, this is what I mean....

Typically, when high-school students would get an "introductory" course into programming, they'll have it like...what...an hour per week? PERHAPS 2?

Let's consider the above block of code.
I easily see 20 hours worth of teaching in those 3 lines.

What is "public"?
What is a "class"?
What's the difference between the outer block of '{..}' and the inner block of '{..}'?
What is "static"?
What is "void"?
What is "String"?
What is "[]"?
What does the "." mean in "System.out.println"
Why is the System.out... line closed by a ";" but not the other textual lines?

Answering those questions alone will take up a full trimester in a 1-hour course.

This is why I don't see the point in teaching an actual language.
It comes with SO MUCH baggage that only distracts from the actual goal of the course.

Let's also not forget... in the quote above we have only a couple lines of text.
Those lines don't do anything if written in notepad. Nope. You need an actual IDE to compile that stuff. You need to learn that IDE as well. You need to know what "compile" means. You need to deal with compilation errors (and somewhat know what they are). You need to be able to create a new solution in the IDE and know wich options to choose and which not to.

Either it will become a parrotting game and the students will have no clue what they are doing (and thus just blindly copying the teacher)... or the year will be over by the time a student knows enough to write and understand the 3 lines posted in that quote.



So, to conclude: you really don't need an actual programming language. In fact, I think it will be counter productive.

Better to just stick to the logical structures, algorithmic diagrams and perhaps some pseudo-code (on paper).

At least when talking about general 1-hour a week courses.
 
Upvote 0

DogmaHunter

Code Monkey
Jan 26, 2014
16,757
8,531
Antwerp
✟158,395.00
Gender
Male
Faith
Atheist
Marital Status
In Relationship
yes, if you are talking concepts such as flowcharting.
a single flowchart would be applicable to all the languages you listed.
so maybe flowcharting could be one of the things taught in primary.
as for languages being similar, i must disagree.
i know BASIC quite well, but would be hard pressed to translate BASIC code into C++ without a flow chart.
even then i couldn't do it, because i don't know the syntax of C++.

The paradigms of BASIC, which is procedural, and C++, which is object oriented, are as far apart in the world of programming as it gets. Another big one out there is functional programming.

Visual Basic (not the .NET version - rather the upto 6.0 version) sits somewhere in between. It tries to act as an object oriented language, but it isn't one. Though can somewhat use it as one. But it lacks a few features (most importantly, inheritance) that makes it impossible to call it object oriented.

i would leave that to uni.
computer architecture and flowcharting should be enough for primary

Very much agreed.
 
Upvote 0

DogmaHunter

Code Monkey
Jan 26, 2014
16,757
8,531
Antwerp
✟158,395.00
Gender
Male
Faith
Atheist
Marital Status
In Relationship
If that's the case, then I'd humbly submit that your programming skills are either rusty or not comprehensive. Translating a BASIC program into C++ should be pretty easy, unless you're using BASIC to do something weird that isn't allowed in c++, but even then, there should be a way to do it.

There may be a somewhat bigger different between old-school BASIC and the C++-esque languages, but there's less of a difference between the more modern Visual Basic and the rest.

One is procedural code and the other is object oriented.
They are very different.

Yes, you can technically write procedural code in an object oriented language.
Still, you'll be confronted with things that are entirely unfamiliar to you if you've never used object orientation.
 
Upvote 0

iluvatar5150

Well-Known Member
Site Supporter
Aug 3, 2012
29,550
29,255
Baltimore
✟763,293.00
Country
United States
Faith
Christian
Marital Status
Married
Politics
US-Democrat
No, I don't really see the point of that. The first question that comes to mind then is "which language?". In this day and age, I guess that would be javascript.
But when you say "java script", you also say "html". The learning curve to start with any programming language to do something half usefull is VERY steep.

No high school is going to go through all that trouble in order to have students write something that is half usefull.

So instead, they'll either have to do really really boring and useless things, or they'll have a bunch of code handed to them which they will not understand and where they will simply have to write a little subroutine, at which point they will fail to see the bigger picture.

While that's a fair concern, it's also one faced by many other disciplines including math and the hard sciences. I'd argue that a fundamental part of good teaching (of any subject) is figuring out how to present those components in a way that makes them easy to understand while also maintaining the relevance of the big picture. For example: Physics teaches you which forces act on a body, and Math teaches you how to add those forces together, but without any real context, the lessons can get boring and seem irrelevant. But once you ask the student to calculate the trajectory needed to fire a bullet at a moving object or to build a bridge under certain design restrictions, then the real-world applications become clear. I see no reason why simple programming tasks can't be taught in the context of a larger program that does "something useful." Students wouldn't have to build the useful program from scratch. They could be given a functioning program and tasked with modifying it, or they could start with the finished product and slowly re-build parts of it over the course of the semester.

See, this is what I mean....

Typically, when high-school students would get an "introductory" course into programming, they'll have it like...what...an hour per week? PERHAPS 2?

Let's consider the above block of code.
I easily see 20 hours worth of teaching in those 3 lines.

What is "public"?
What is a "class"?
What's the difference between the outer block of '{..}' and the inner block of '{..}'?
What is "static"?
What is "void"?
What is "String"?
What is "[]"?
What does the "." mean in "System.out.println"
Why is the System.out... line closed by a ";" but not the other textual lines?

Answering those questions alone will take up a full trimester in a 1-hour course.

This is why I don't see the point in teaching an actual language.
It comes with SO MUCH baggage that only distracts from the actual goal of the course.

You don't have to teach most of that. For an intro class, you just tell them "do it this way; you'll learn about why to do that (or not to do it) later."

Let's also not forget... in the quote above we have only a couple lines of text.
Those lines don't do anything if written in notepad. Nope. You need an actual IDE to compile that stuff. You need to learn that IDE as well. You need to know what "compile" means. You need to deal with compilation errors (and somewhat know what they are). You need to be able to create a new solution in the IDE and know wich options to choose and which not to.

Either it will become a parrotting game and the students will have no clue what they are doing (and thus just blindly copying the teacher)... or the year will be over by the time a student knows enough to write and understand the 3 lines posted in that quote.

I suggest you check out this series of tutorial videos. This guy manages to hit all of the things you're worried about, because he's a good teacher.
https://www.microsoftvirtualacademy...es/c-fundamentals-for-absolute-beginners-8295



One is procedural code and the other is object oriented.
They are very different.

Yes, you can technically write procedural code in an object oriented language.
Still, you'll be confronted with things that are entirely unfamiliar to you if you've never used object orientation.

And again, if you run into something that doesn't make sense at the time, it can just be explained as a more advanced concept that will be explained in depth at a later time. Physics is FULL of this kind of thing: all of those simple equations you learn in high school physics (e.g. F=MA, e=MC^2, etc) are actually derived from larger, much more complicated equations that you don't learn how to compute until you're well into college. But i don't hear many people complaining about teaching e+mc^2 to high schoolers, even though they can't do all of the really deep math that sits behind it.
 
Upvote 0

JustMeSee

Contributor
Feb 9, 2008
7,703
297
In my living room.
✟31,439.00
Country
United States
Faith
Other Religion
Marital Status
Private
Politics
US-Others
Some countries are not only introducing computer lessons in primary schools,
they are also pushing for computer programming lessons for school children.

Do you agree ?
Absolutely, yes.
While computers where somewhat of a novelty when I attended middle school, they are not now.

I would go so far as to say that the programming courses should not be BASIC (pun) in middle and high school, but heavily object oriented programming.

Even if students don't pursue the computer sciences into the future, the logic and problem solving are priceless.
 
Upvote 0

Dave-W

Welcoming grandchild #7, Arturus Waggoner!
Site Supporter
Jun 18, 2014
30,522
16,853
Maryland - just north of D.C.
Visit site
✟772,040.00
Country
United States
Gender
Male
Faith
Messianic
Marital Status
Married
Politics
US-Others
How many Microsoft engineers does it take to change a light bulb?

... :scratch:

None, they simply define darkness as the new standard. :D

:sorry:
And then tell you to re-boot.

Can I give this post an ARFie* award?

* Abort Retry Fail
 
Upvote 0

JustMeSee

Contributor
Feb 9, 2008
7,703
297
In my living room.
✟31,439.00
Country
United States
Faith
Other Religion
Marital Status
Private
Politics
US-Others
Interestingly, when I was introduced to programming, I did not own a computer nor did I have very much computer time. I learned from books and wrote much of my code on paper. Though Apple and Atari BASIC were far less difficult to modify and correct syntax and process problems, the basic logic can be achieved without sitting in front of a screen.
 
  • Like
Reactions: DogmaHunter
Upvote 0

DogmaHunter

Code Monkey
Jan 26, 2014
16,757
8,531
Antwerp
✟158,395.00
Gender
Male
Faith
Atheist
Marital Status
In Relationship
While that's a fair concern, it's also one faced by many other disciplines including math and the hard sciences. I'd argue that a fundamental part of good teaching (of any subject) is figuring out how to present those components in a way that makes them easy to understand while also maintaining the relevance of the big picture. For example: Physics teaches you which forces act on a body, and Math teaches you how to add those forces together, but without any real context, the lessons can get boring and seem irrelevant. But once you ask the student to calculate the trajectory needed to fire a bullet at a moving object or to build a bridge under certain design restrictions, then the real-world applications become clear.

I agree. I'm just of the opinion that the basics do not require diving into any particular language.

Quite the opposite. Diving into any particular language will actually distract from the basics. The basics being recognising common tasks, abstracting those and isolating them into generic processes while calling them from other processes as sub-routines, creating logical flows for those processes with the help of diagrams or pseudo-code, using the logical structures of loops and conditionals etc.

That's the core of thinking like a programmer. That's what a programmer does all day long. The language is just the dialect in which these processes are then written out.

If the goal is to impart the reasoning / methodology that goes into programming, then don't waste time fiddling around with a dialect.

I'ld rather use some code left and right from a variety of languages, but more as mere examples. Otherwise it becomes about the code. But it's not about the code. It's about automation and abstraction. :)

Those who get excited by that way of thinking, and who get inspired by the code examples, those people will go home, pull up google and start hacking away at whatever language they happen to pick.

You don't have to teach most of that. For an intro class, you just tell them "do it this way; you'll learn about why to do that (or not to do it) later."

I know.
I am not a fan of such practices when they can be avoided

I suggest you check out this series of tutorial videos. This guy manages to hit all of the things you're worried about, because he's a good teacher.
https://www.microsoftvirtualacademy...es/c-fundamentals-for-absolute-beginners-8295

I'ld wager that most high school students wouldn't pass the exams of that series. Too bad we can't check on that.

But this is actually a good example of my point. Using such a thing for learning how to program, I feel the point is simply missed - especially for a 1 or 2 hour a week highschool class. In such a class it becomes all about .NET, C# and Visual Studio and the quirks therein.

It is a "C# class". It's not a "programming class".
 
Upvote 0

ThatRobGuy

Part of the IT crowd
Site Supporter
Sep 4, 2005
28,135
17,012
Here
✟1,464,401.00
Country
United States
Gender
Male
Faith
Atheist
Marital Status
Single
Politics
US-Others
The profession has treated me well over the last 10 years...and with the market changing to become more technologically automated by the day, it's definitely a valuable job skill to have.

At a time when people have fear and uncertainty about their jobs in other professions, we have a shortage of programmers in our areas where we can't get enough applicants to satisfy the local markets...and myself, and all of my co-workers are getting calls from recruiters from other companies 2-3 times a week at the moment.

As another poster mentioned, technologies do change and there are "fad" languages that come and go...however, with the more popular languages out there, it's a pretty safe bet that what they'd learn now will still be applicable and useful a couple years down the road. C# would be a good example of that. It's been around for nearly 15 years now, and doesn't show any signs of slowing down. Java would be another example of that...
 
Upvote 0

FreeSpirit74

Contra Dancing Pagan Warrior
Mar 15, 2006
2,149
209
50
Troy, NY temporarily displaced to Schenectady, NY
Visit site
✟19,334.00
Gender
Female
Faith
Pagan
Marital Status
Single
Politics
US-Others
But when you say "java script", you also say "html". The learning curve to start with any programming language to do something half usefull is VERY steep.

I know a woman who ran one of the first Internet/web site graphic design boutiques in the dot-com business. She was entirely self-taught, and could hand-code HTML the way literate people can write English. She also has a background (and degree) in traditional graphic design and when you compare her sites to the ones churned out by a business's secretary for pennies on the dollar, it shows.
 
Upvote 0