- Robertson Klaingar
- Houston, TX
- United States
This conversation is closed. Start a new conversation
or join one »
Do you think programming and logic should be made part of basic courses along with math and art?
How could these be implemented at various education levels?
I think these are getting more and more important and these days it is good to have at least a basic grasp of these. Plus they help foster logic, creativity and problem-solving, which we seem to need more and more of.
Topics:
education programming













Revett Eldred 10+
But as with so many things, there could be unintended consequences. Example: I have been a programmer since 1964. I learned machine language and then ugly disasters like COBOL. As I progressed through my career, I did less programming and more design. One day, when I wanted to do some hands-on coding for the first time that was object-based, I realized I would have to unlearn everything I ever knew about sequential programming and, in addition, try to figure out what on earth dot-NET was all about. I was actually worse off than if I had never programmed at all in the previous 25 years. If we decide to teach the kids the fundamentals of object-based programming, and if the programming paradigm should suddenly change again, we may not have done them any favours!
Vasil Rangelov 50+
Since all programming languages are based on Assembly abstraction, and Assembly has (pseudo sort of) loops, conditions and values, that's the stuff that should be emphasized, with the rest (data types, arrays, objects, events, etc.) being taught with a warning sign on. The only way for THAT to change is if the way computers work changes, but at that point, we aren't really dealing with computers.
Not exactly buying the business people thing though (and I'm just being a devil's advocate here; you know, just in case someone decides to put this as an argument to their government officials)... all citizens would also be better off if they knew the laws of their country in details, and yet we still hire lawyers, even if we know for a fact that something is illegal, and I'm guessing we still would, even if he knew the basics surrounding our government's laws.
Robertson Klaingar
We used carriages, then we had to learn to use cars. As long as we continue to develop, we are probably always have that problem.
I am just wondering. Was the logic completely different though? I mean the logic behind the programs. I am completely unfamiliar with COBOL. I just heard about it, but know nothing of how it worked.
Vasil Rangelov 50+
Many modern languages come with pre-built functions that make commonly complex stuff easier by putting it in a single "function" you can "call" (e.g. writing out data on the screen is actually very difficult if you do it in machine code or Assembly). COBOL comes with financially specialized functions, which is how businesses were once persuaded into buying programs written in COBOL. However, it has few other functions (or at least it did once), and it's syntax (i.e. the way you write it), as well as its organization (data types, function features, etc.) have little to do with what most other languages use.
I don't know COBOL, mostly because I just look at code samples and go "What on earth is this about?". I know a few more modern languages, a.k.a. "C like" languages, as well as a few languages from other paradigms (SQL, Lisp, Prolog, XSLT) but the reason I do is because it's the exact same thing written differently... COBOL... not so much.
Revett Eldred 10+
The other major difference is that data is now managed separately from the code and is accessed using tools such as SQL, whereas COBOL, for example, embedded data management within the program.
God, I feel old...
Vasil Rangelov 50+
As for making it mandatory... if Conrad Wolfram's idea* of using computers for the calculations and focusing on the what and why instead is implemented, there will be time, and a reason, to THEN push the envelope on programming. Until then, programming is likely to make just as much sense to people as math does today.
I mean, yes, you can use programming to do more than math, with different (typically non math related) interests being the driver for students, but the applications are so vast that the only way to illustrate the basics in a way that will make sense to everyone is to try simplifying a subject that's already tedious and boring without programs being there... like math.
* http://www.ted.com/talks/conrad_wolfram_teaching_kids_real_math_with_computers.html
Robertson Klaingar
My major has nothing to do with programming. I study Biology. And I tried to learn some of those programming languages, but it was too tedious, hard and time-consuming. It is the kind of thing that you have to spend a lot of time on.
But lately I have been playing around with appinventor for android. It is much more limited than other mentioned languages but it allows you to develop little apps for the android platform and is even fun. If more languages like this could be developed, then they would probably be much easier to integrate. I am not talking about studying the theory behind programming either though. At least not separately from applications. That would cause the same problems we have with math and would just be boring.
Btw I also come from a developing country and understand what you mean when you say those classes do not even exist. I only hope that with time, we will be able to get more computers to work on.The only problem is that we lack even the electricity to operate these computers. The big problem for us would probably be getting stable supplies of electricity. But that is another problem altogether.
Vasil Rangelov 50+
You've instead learning the basic flow of graphical applications (the ones with buttons and everything), i.e. you've learned that you have a graphical interface, and that you assign certain stuff to be happening when the user does something with this interface (e.g. clicks on a button). But the "certain stuff" is actually really limited in App Inventor and similar applications, whereas the basics of programming revolve around how those "certain things" come to be. Conditions, loops, values and the generic concept of "input" and "output"... that's the basics of programming. Everything else is abstraction for the sake of easier management.
Programming in any language directly, with a specialized editor, similarly to Java with Eclipse or C++ with Visual Studio, doesn't have to be tedious, hard and time consuming, but like math, it depends heavily on the presence of a good teacher.
In high school, I was thought some Pascal (it was only for about a month without any exams afterwards; command line applications only; I was part of the exceptions), but it didn't make any sense, because the only thing the teacher would do is repeat what she said when I had a question
- Me: What's the idea of this array thing?
- She: An array stores single typed values.
- Me: But what's the point? We must still write out all values, so why not use a bunch of variables instead?
- She: An array stores single typed values.
Yeah... that was definitely not helpful... it was years later that I learned what's the big idea (simplified processing of related data) by learning other languages, but until that point, I was like "Pascal is stupid!", whereas nowadays I think "Pascal is needlessly complicated and verbose, but is just as powerful as any language".
Robertson Klaingar
It would be sort of like a gateway drug you know? I tried learning by myself when I was much younger and little programs that said hello world( I know in this case, program is a very strong word), did other simple stuff and tried to make me do more math outside the classroom were simply not enough to keep my attention you know. I knew that if I stuck to it, I could do some really cool stuff, but being much younger, I thought the process would take way too long. So I gave up. I wanted things fast because I needed to see something concrete and solid enough to keep me going. We have different brains and while some people would be satisfied building one kind of program, others would probably hate that same program( I ope that made sense). I think for kids, you would need to show some fast results to get them interested. Then when they are, you can make things incrementally harder. When they ask about something that cannot be done with the basic program, then you can point them to what they need.
I had a teacher try to explain the basics of programming to me too once. But he was not able to convey the ideas to us clearly either. You're definitely right. Better teachers are also needed.
Vasil Rangelov 50+
Since I've never been introduced to how biology develops (that's not the same as "biology" as "a set of facts" that students learn; I'm talking about how biology goes on to classifying species and learning about DNA and other stuff), I've always thought of it as this complicated process (and I'm guessing you can tell me that indeed it is, until you learn it?), and have to this day not bothered into learning about it in detail.
But I think there's an easier way to make instant gratification than using what some programmers refer to as "lego programming" (which is in essence what App Inventor and the like are). Namely, one could prompt the students to think about what mind activity they find tedious to do, and prompt them to describe how they would go about doing it. The process of programming is just the description of the process (a.k.a. writing down the algorithm). Instant gratifications comes once they see the machine do something they'd find tedious in just a second (or a few seconds...), which would happen shortly after they describe the process (assuming the teacher is good).
Math currently holds the cup for a tedious thing, but if a student finds something else tedious (e.g. counting the words in their literature essay, finding out what day of the week a certain date is, counting the number of "CTG" occurrences in a DNA sequence, finding out whether they're a match for this guy/girl they like based on a horoscope, etc.), then that could be taught too.
David Wees
Robertson Klaingar
Mark Baum
Robertson Klaingar
I think it might even have the same effect as learning a second language and should definitely help us grasp abstract concepts much more easily.
Nick West
Programming is also fairly important in many job fields today, perhaps almost as important as math. Many people leave grade school wondering why they were taught algebra and geometry, etc. I think a similar feeling would exist if programming were mandatory in grade school. Many people will never really need programming in their day to day lives, just like algebra. But learning the core concepts behind those subjects changes how we think and how we relate.
Personally, I feel that there is room for many more subjects in our K-12 class rooms. From programming, logic and philosophy to day to day skills, such as money management, home economics and home/auto maintenance. Exposing young people to a vast array of subjects is not only a great way to help them choose a career, but it also enriches their lives and helps make them better citizens.
Robertson Klaingar
steven wright
Robertson Klaingar