|
Pualee wrote: That is an interesting point of view, and reflects a previous mentality to programming.
Yes, I'm showing my age, but I also believe that a solid foundation is important. Being able to have some sort of a mental picture of what happens physically in a computer is, IMO, a prerequisite.
Pualee wrote: it was the Electrical Engineers turned programmers that were the best coders! In everything... consistency of quality, design patterns, teaching, work-ethic, troubleshooters... whatever it was, the EEs were the best.
That's been my experience too. You might find it interesting that my first love was actually with hardware, and I learned a lot about digital circuits before doing any coding.
Marc
|
|
|
|
|
Your numbers 10 and 11 would be my numbers 1 and 2!
|
|
|
|
|
clawton wrote: Your numbers 10 and 11 would be my numbers 1 and 2!
I thought about that, but if we're dealing with high school students who have no prior exposure to software development, I felt it would be putting the cart before the horse in this case.
Marc
|
|
|
|
|
Not at all. Wouldn't have to be huge, just something to plant the seed that documentation is very important.
|
|
|
|
|
It should in fact be embedded in every point on your list.
Wrong is evil and must be defeated. - Jeff Ello
Any organization is like a tree full of monkeys. The monkeys on top look down and see a tree full of smiling faces. The monkeys on the bottom look up and see nothing but assholes.
|
|
|
|
|
... I would not go that route. Instead, I'd try to find a problem that excites the student, and help him solve it for himself by transmitting the knowledge to do so. Along the way I'd try to keep his excitement up as the topics you raised logically came into focus at the proper time. Perhaps there would be no 'proper time,' but in that case the student wasn't really a student, and I would reconsider my teaching approach for the next kid.
Start with excitement, go from there... I know that is far from today's teaching model, but everything I've learned has been through that method. Much of the school stuff has been forgotten, because it was unexciting in presentation, and personally.
|
|
|
|
|
Definitely assembly as the first language. Not just a light blinker but something real world. It teaches you everything about step by step logic, memory management, hardware - all the things that higher level languages mask. No debugger - learn to read a core (sorry memory) dump. Then you see how it all fits together. You come to see what makes higher level languages so powerful, and why its so easy to stuff up royally using them.
|
|
|
|
|
I've been programming for a while, it wasn't until I did some PLC programming that I truly understood what's happening at the machine level. I'm with you and believe that including the hardware side of things would greatly help people understand what's going on when they do their programming.
|
|
|
|
|
|
|
The original language for algorithms and that contains almost all the useful features you see in successor languages.
Plus Simula, the originator of objects, which is based on Algol.
|
|
|
|
|
I learned Algol 60 initially, and then did some Forth. They have both stood me in good stead.
|
|
|
|
|
|
I think C or C++, I know it C++ seems to be advanced . But it can be broken down to have the general and conceptual Knowledge of.
These Are important to understand in a way that at least kids know basics of hardware and programming interaction.
|
|
|
|
|
I don't think teachers today could learn our kids and adolescents any programming language.
Most people under 25 are waaaaaay better with computers than the teachers teaching them.
It's kind of sad really.
Anyway, if schools really have to teach programming languages I say C# is a good starter. Maybe some C/C++ for a more low-level understanding of memory (although I don't do C/C++ either). And perhaps some Haskell to throw in a functional language.
It's an OO world.
public class SanderRossel : Lazy<Person>
{
public void DoWork()
{
throw new NotSupportedException();
}
}
|
|
|
|
|
Helper languages like SQL and HTML?
What about interoperability between applications ? (not related to any language, but still important)
What about design of complexer systems ? (not a language at all I know)
And finally, what about diving into a monter of a real-life application that you have never seen in order to fix a bug or add a new feature ? (in school projects are mostly started from scratch)
|
|
|
|
|
Teaching programming at school seems a way of consuming a lot of time on something that could hardly be called insightful. There is plenty of time to learn programming if one decides to specialise.
The Q&A shows that few "programmers" have a grasp of basic mathematics for example so one wonders what the quality of their basic education might have been.
I have voted MATLAB rather than Other because None was not an available choice.
Peter Wasser
"The whole problem with the world is that fools and fanatics are always so certain of themselves, and wiser people so full of doubts." - Bertrand Russell
|
|
|
|
|
i agree. C#, JAVA,... are tech and will expire. someone who could do analysis well and has trained brain can learn and use any tool well.
|
|
|
|
|
Hmm, I was programming years before high school. I don't think learning a programming language should be mandatory for everyone but as an elective just like it was for me 30 years ago.
John
|
|
|
|
|
That was my first language - call it 'mother tongue'
|
|
|
|
|
It was my first language also... but this was more than 35 years ago. We used a card punch to submit our Fortran programs for execution. I think that at this time it is preferable to teach a more modern language
|
|
|
|
|
Why are both Java and JavaScript listed here? After all, JavaScript is Java, isn't it?
Damned! Where's the joke icon when you need it?
Your time will come, if you let it be right.
|
|
|
|
|
Because one was named by a dyslexic: it was originally to be called "JavaScrapped"...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
When I went to college they started with Java in the first year, and in the second year and on we were taught C++. After I left school that all changed to Java. The problem is that a lot of graduates no longer know how things like memory management works (e.g. what happens if you append characters to a string), or how certain data structures work. Perhaps with current hardware it's not such a big issue anymore, and it's not exposed anymore either, but when it does become an issue, they have no idea how to go about it.
Languages like C, C++ or Pascal all teach you about data structures and memory management (C++ is probably the better choice as it also offers the possibility to do object oriented programming). That's what kids need to learn, syntax is totally unimportant.
Perhaps for high school C++ might be too advanced. But in college, I'd go for C++ any time!
|
|
|
|