|
Totally agree with you
|
|
|
|
|
Machine Code for all!!!
Then they'll value whatever language you let them dev with (even COBOL!)
--
The trouble with people, is that they want to hear only what they want to hear.
|
|
|
|
|
I chose multiple but wish I could have ranked them.
1 - javascript
2 - Java
3 - C#
4 - C/C++
unfortunate to see my first love (c/c++) fall to the bottom but even I find fewer reasons to use over others. javascript is fist only because it is something that requires the least setup and gives kids instant gratification.
|
|
|
|
|
I agree with some of the other posters, any specific language is just a tool, and tools change over time. What is critical for a programmer is the ability to take a problem and translate it into working code.
Given that most of the world uses some form of procedural language (operative word "most"), I would opt for one of the "C" variants, or JAVA as a starting point. Once the basics of programming have been instilled, then there needs to be classes on data structures, algorithms, computer hardware elements for those students with a deeper interest.
Using computers is now a requirement for many, many jobs, so having some understanding of what makes them work has to make using them a little easier. However, few of the jobs using computers require programming skills, so forcing high schoolers too deeply into them is not needed. It would be much more useful to teach them basic financial concepts that will aid them no matter what job they end up with.
Dave Legg
|
|
|
|
|
Thus Pascal. It's simply the best language for teaching. You can mutate it into Delphi after a while, then look at the .Net side of it, and then sidestep into C#. Java is a waste of time: C# is what Java should've been.
|
|
|
|
|
Pascal is an option, it's not a language I really have any experience with.
I would not discount Java so quickly though. It has the advantage of being easily obtainable and widely used. The latter makes it easier to obtain assistance which can be critical when starting out.
It is the second most popular languange next to C according to one site http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html[^]
C# is really a Windows based product, so if that is the environment you have, it's fine.
As an intro to programming, most any procedural language would be quite adequate.
I think the thing to remember in all this is we are talking about "new" programmers. The finer points of memory allocation, heap usage, etc. are meaningless when you are talking about simple "hello world", "bubble sort" and such programs. What is important is that they can make something happen quickly and simply and don't get bogged down in details that are not essential to the problem they are trying to solve. Once the basics of programming have been taught, it's time to concentrate on data structures, algorithms, etc. Having them use a different language actually (IMO) helps to separate the logic of the solution from the details of the language.
As with any profession, you have to start with the basics and build up to the current state of the art. In my opinion, being a good programmer has little to do with what languages you know, it's about solving problems to the best of your ability using the tools available.
|
|
|
|
|
Hmmm... well, Java's OK at first, but then you start having to make so many concessions to the virtual machine, then trying to figure out why it doesn't work half the time: to me, it comes under the heading of one of those bitty languages which is only half there...
Pascal was designed specifically for teaching, and is thus amazingly less write-only than most languages: Borland got hold of it in the early '80s and added object orientation; it then morphed into Delphi in the '90s, and became event-driven and so on; finally, it became a .Net-aware thing... so you really can go all the way from the 1960s to today with it.
For me, anyway, if you're going to teach programming then you should be teaching programming, not teaching all about why a machine doesn't work, and which excuse to use at any given point for why you have to do [this inexplicable thing] when you want to do [that]; Pascal is very good at avoiding all that nonsense by being a pure, beautiful language which doesn't require a framework behind it (until you get to the Windows/.Net implementations of Delphi - at which point you should be pretty good at it already). So if you want to teach programming as a skill involving designing algorithms and representing them as programs, then there really isn't a much better place to start.
These days, though, Pascal is useless as a career skill (unless you find yourself somewhere which insists on using Delphi); I guess the real question is how long you want to take to learn to program: do you want to do it properly, or do you want to do it so you can make money very quickly?
I was lucky: I started early (the late '70s) -- so I had the luxury of being around at a time when languages like Pascal and Forth were used for real applications: I even got to write a few systems in pure assembly language -- that just doesn't happen any more. I feel sorry for new programmers today: they have to start at the end, and then try to find time to develop the interest to work backwards.
|
|
|
|
|
I chose Python. It is a very flexible language with OO properties like C++ without having to deal with a compiler, which I think would tend to get in the way of teaching programming principles. This, of course, should just be used to demonstrate more rigorous teaching of algorithms and recursion, etc. Then say the other half of the year can be spent on web frameworks. PHP, JavaScript, HTML, CSS can be used. I think all this can be taught in one school year, since not a lot of time will be spent on setting things up and they can jump right in and start learning. Finally, a couple of weeks at the end of the year can be spent on getting into the weeds with an assembly language and get closer to the hardware.
|
|
|
|
|
Despite what many of us may think, COBOL is going to be around long after many of the others on the list have disappeared. There are literally millions of lines of COBOL code in production use, including government, banks and multi-national corporations.
Migrating to other technologies is likely to be cost prohibitive, therefore these aforementioned institutions are going to need people to maintain these systems.
That's a fact, like it or not.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
|
|
|
|
|
Possibly true, but I see no reason why we should teach it to kids in school because of this.
Certainly no new (sensible) projects will ever use it.
Regards,
Rob Philpott.
|
|
|
|
|
There are more lines of COBOL code in current production use than possibly all other languages combined. I think that's a very persuasive argument.
All those systems require updating with new features as well as fixing bugs.
With so many lines of production code, does the industry not need to address the shortfall in skilled developers who can maintain these systems?
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
|
|
|
|
|
Dominic Burford wrote: There are more lines of COBOL code in current production use than possibly all other languages combined
That's a wild claim. Do you have anything to back it up?
Regards,
Rob Philpott.
|
|
|
|
|
https://scs.senecac.on.ca/~timothy.mckenna/offline/COBOL_not_dead_yet.htm[^]
Quote: Because there are more lines of COBOL in production than all other languages combined; Gartner estimates about 180 billion lines. "By some estimates, the total value of the applications residing on mainframes today exceeds US$1 trillion. Most of that code was written over the past 40 years in COBOL."
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
|
|
|
|
|
Hmm ok. I find it hard to believe though. The only places I know of it still being used is in transaction clearing and there's been a big drive recently to cull that.
Regards,
Rob Philpott.
|
|
|
|
|
Every bank and major financial institution uses it, the government uses it, and many major corporations use it.
As I stated in my opening comment......COBOL will be around long after the other listed languages have disappeared. The cost of replacing these enormous systems is just not financially feasible. It would cost many millions to do so.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
|
|
|
|
|
classes, function pointers, callbacks, pointers, casts and even "goto". And lots of crappy legacy code to rummage in it.
YEAH!!!
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
Yeah, enough rope to hang yourself with. Notice they didn't list Ada. Everyone should know and use Ada... <g>
|
|
|
|
|
Whatever it is, it should be based on the web development because that's what most developers will end up programming for anyway.
PS. Shame on you for not including PHP.
|
|
|
|
|
PHP itself cannot power up a machine or server.
It can't reach the memory of a machine.
If you want to improve PHP
or invent new fancy PHP syntax
or enhance the power of PHP,
you need to know C.
C is the language behind PHP that power up the machine server and run PHP.
Back to the basic of programming, it should be something close to the computer's memory and hardware.
|
|
|
|
|
If you want to teach them a language - let them pick the favorite.
But if you want to teach them software development, teach them basics of logic and left the programming languages alone for time being...
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)
תפסיק לספר לה' כמה הצרות שלך גדולות, תספר לצרות שלך כמה ה' גדול!
|
|
|
|
|
Exactly, teach them to write English, far more difficult than any programming language.
|
|
|
|
|
I agree, after all, we do want to them to eventually graduate.
|
|
|
|
|
I am still a big fan of Pascal. It teaches good habits and is sufficiently complete to make useful programs possible. C has most of the same features but is too 'slack' and can lead to bad habits. Later conversion to use another language is simple (imho). On top of that the 'Pascal User Manual and Report' is a superb example of documentation, although possibly a little too 'dry' for initial teaching purposes. I recommended 'Illustrating Pascal' by Donald G. Alcock to a friend to teach himself and he later became a professional programmer. (I should admit that he had a Spectrum and was able to write simple programs in Basic).
Turbo Pascal was economic, effective and efficient until the pricing went crazy. Last time I looked it was still possible to download older versions from a successor to Borland, but the company name kept changing too often for me to keep up!
|
|
|
|
|
I don't think a programming language is required. But, Ms-Dos may be something to start with(though it is just a commands).
|
|
|
|
|
There is a lot of this old stuff in the manufacturing world. You want a job in manufacturing, say you are a Fortran expert.
|
|
|
|