|
Vaso Elias wrote: If they offer it in the school, probably they know how to teach it.
You are probably live in an utopian state...
“Real stupidity beats artificial intelligence every time.”
― Terry Pratchett, Hogfather
|
|
|
|
|
Vaso Elias wrote: I would recommend it. If they offer it in the school, probably they know how to teach it.
Not necessarily. I recall a couple of classes where the instructor was learning the material a day ahead of teaching it, and a lot of the professors had no idea how to teach.
Many moons ago a coworker did a tech interview for a college professor who wanted to leave academia and get into consulting. She failed the tech interview in a language she had been teaching for 5 years. She could explain language syntax, but had no idea how to program anything of any complexity.
|
|
|
|
|
I had the same experience myself when I was studying at university, however we had also teachers who knew way too much and they did teach us lot
There are always good and experienced teachers and then those who need to work more on their teaching skills .
|
|
|
|
|
My second thought was that I might be very biased (and so less right) since my first thought was "any other choice would be a mistake".
|
|
|
|
|
I guess it's ok. I got taught OOP in Java before I returned to C++ (which was my first language oddly, C was my second). But once you start judging all languages from the lens of C (and even ARM assembler), it's hard to like any new ones.
With exception of LISP
|
|
|
|
|
Don't be confused, bro! Studying C# is VERY good idea! You not only study programming itself, but will have PRACTICAL and POWERFUL language in skills.
C# is "hard" only if you take all features at once. But if you simply create 10-lines helpers inside Main(), it's EASY! Everything depends from teacher - if he is professional, studying can be cool. I support C#!
|
|
|
|
|
The reality is that the choice of language really doesn't matter, although I would agree that restricting to a simpler subset during initial teaching helps. The goal is to understand the basics of programming, not the complexities of the task or the tool. After all, getting someone to understand "I = I + 1" can often be the divider that separates the programmers from the rest of the world. Before we get into the guts of the .NET library, it's necessary to first understand decisions, loops, and so on.
My first language was FORTRAN IV, followed by other high- and low-level languages, now numbering over 30. I have used COBOL as a first language when creating new programmers, with good success. I knew someone who actually used assembler as the first programming language when teaching newbies, on the grounds that that way people would learn both how to program and how computers worked all at the same time.
|
|
|
|
|
I would say it's a good choice, yes. It has a well-balanced set of language features but frees you from having to deal with managing memory and makes it hard[er] to shoot yourself in the foot.
BUT, Interop is a whole other thing...
Paul Sanders.
If I had more time, I would have written a shorter letter - Blaise Pascal.
Some of my best work is in the undo buffer.
|
|
|
|
|
I wouldn't.
In my opinion a beginner needs to start with a simple language and learn more complex languages as he gains experience. With the result that he then knows several languages and can compare and contrast their features and syntax and make decisions about what he likes and doesn't like.
Like many, I first learned BASIC, then Pascal, then a little COBOL and ForTran and assembly, then C, dabbled in C++, and finally C# for the past twenty years.
Any object-oriented language is going to be too complex, with too much boiler-plate code the beginner doesn't need to know about (yet). Even C is too complex, requiring the developer to know about including libraries and linking them.
A modern version of BASIC (not VB) should still be a good option for a beginner to get a feel for how to think about giving a computer instructions.
Python (which I'm not about to learn) is pretty easy and can implant good indenting and formatting habits early.
My kid had a couple of classes in Java. Well not really. Really just how to modify an existing MineCraft object, build it, and use it. He learned nothing.
|
|
|
|
|
When my youngest kid (9) asked me to teach him programming a brought out C64 with BASIC...
“Real stupidity beats artificial intelligence every time.”
― Terry Pratchett, Hogfather
|
|
|
|
|
Kornfeld Eliyahu Peter wrote: C64 with BASIC...
Edsger Dijkstra: It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Which is obviously not true... Most of in my age-range started with some kind of 8 bit, home computer with BASIC on it...
“Real stupidity beats artificial intelligence every time.”
― Terry Pratchett, Hogfather
|
|
|
|
|
It definitely is true. Just because code compiles as C or C++ or whatever doesn't mean that it uses the mechanisms available in the language. I've seen people write BASIC in many different languages.
I suspect that many mediocre programmers program in the usages of the first language that they learnt; better programmers will learn the proper usages of each language. It's like learning to speak a foreign language - poor speakers will still use the idioms of their native language, but better speakers will use the idioms of the foreign language.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
I've seen code in C# that screams COBOL all over... That's true...
But Edsger Dijkstra states that the moment you had your fair share of BASIC you are lost for good - that's just not true!
As you stated:
Daniel Pfeffer wrote: better programmers will learn the proper usages of each language
“Real stupidity beats artificial intelligence every time.”
― Terry Pratchett, Hogfather
|
|
|
|
|
Daniel Pfeffer wrote: beyond hope of regeneration
Definitely untrue. Just hyperbole and rhetoric, which is fine.
A counter argument is that we developers who began with BASIC and did "regenerate" are the better for it.
I do wonder which form of BASIC he was commenting on, the earliest form (1964) which requires line numbers and has few features, or a modern version (but still not VB). I have seen significant programs written in VAX BASIC -- though I still have nightmares.
|
|
|
|
|
Yes C# would be the best lang to teach IMO.
C# supports tons of things you can branch to later. Unsafe code, Unity3D, etc.
Its reach goes a lot further in the areas that people learning might care about.
|
|
|
|
|
Learning Programming is NOT about the language.
It's about the concepts, the building blocks, the approaches.
Back in the day, we had paper terminals and "edlin on steroids called TECO" (ex$$)
Nowadays, the software development ENVIRONMENT takes students HOURS to wrap their brains around.
I remember teaching Java, using NetBEANS, and the CLASSPATH problem all the kids ran into, despite being
in the handouts. LOL.
It boils down to:
- Inputs
- Outputs
- Variables/Data Structures
- Computation (Conditionals, Loops, Algorithms)
- What's Written for the "compiler"
- What's Written for the NEXT Developer!
I liked focusing on how do you decide between FOR/WHILE (and graded down if you got it backwards/wrong).
It's a skill. You have to actually open up the software, and key something in, know how to run it.
With some of the modern IDEs... That's not trivial your first time!
|
|
|
|
|
Kirk 10389821 wrote: Learning Programming is NOT about the language.
It's about the concepts, the building blocks, the approaches.
Agreed! That's the reason I fear C# will stand in the way to understand those things by hiding a lot of them...
“Real stupidity beats artificial intelligence every time.”
― Terry Pratchett, Hogfather
|
|
|
|
|
I'll be the controversial curmudgeon here and say, Yes, I would. Using the VS IDE.
Why? I think the goal of an intro course needs to be wrapped around the concept of software development and engineering instead of coding. You can build a really quick and complete app while you learn the basic constructs of a programming language. I'd make it interesting with my first assignment being to come up with a list of a few apps you want to build, reach a consensus with the class and dive in. You can explore GUI concepts as well as a ton of other aspects that are handled by the IDE but also exposed through it for further teaching moments. Working from a project-based level, you can touch on so many key programming aspects. Critical thinking pieces that go beyond just coding syntax.
I think too many teaching strands create "cubicle-coders", without looking at overall design concepts. Over the years, I've worked with some great programmers. Some of them could build an amazing app given a fairly extensively documented pseudo-script. But tell them "I need a screen to get this information, do this to it, create this result, and do something with it" would be torturous.
That said, it's an intro class. The goal isn't to create a C# wizard that could create a monster app but to teach the basic concepts. It's a pretty easy jump to learn syntax of a given language when you get the underlying concepts. Whether a dog is a dog, chien, perro, or hund isn't hard to relate if you know it is a dog.
|
|
|
|
|
End of the tram line? (8)
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
TERMINAL
(anag of TRAM LINE)
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
What was the anagram indicator?
|
|
|
|
|
The ?
Life should not be a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!" - Hunter S Thompson - RIP
|
|
|
|
|
Was not aware it's an anagram indicator. If so,
|
|
|
|
|
To be honest, I just saw TRAM LINE and (8) and went TERMINAL without reading the clue ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|