|
c++ is multi paradigm programming language. here they can achieve good understanding of core concepts.
|
|
|
|
|
They should not just learn C++ but Assembly, C, C++, C#, Java. Assemply gives them a real sense of what is going on "Under The Hood". C provides them with an understanding of memory management and risks asscociated with improper code that has leaks and is open to Buffer Overflow attacks. C++ gives them the understanding and usefullness of libraries and complex graphics. C# and Java teaches OOP
|
|
|
|
|
I think there is value to understanding how the underlying machine works. Never know when it might come in handy. It also gives students a taste of embedded systems. We still need people who do this.
The beauty of a course on 2600 development is the machine itself. Designed in the early 70's, it has only 128 BYTES of memory and no video shifter, so you have to sync with the video hardware in code. It will definitely provide a good lesson in software wedded to the hardware, as well as learning to design for economy.
|
|
|
|
|
C++ is currently the best language offering multiparadigm programming for the best down to the metal performance.
Sure it could be better, and C++11 is a step in the right direction, at least until we can get a language able to offer the same set of performance/abstraction mappings that C++ does.
|
|
|
|
|
|
really? smalltalk and lisp? hey, should also put Ada, fortran and cobol right?
Leonardo Paneque
|
|
|
|
|
WHY?
I am absolutely sick of recent CS graduates (some with a masters)that cannot write code. Outside of academia and perhaps the national labs they have no commercial value as delivered by the university. Yes, it is nice for people to have a good foundation in the "know why" of CS, but they need some "know how" to go along with it.
All their "knowledge" about information theory, data structures, and algorithms is pretty much pointless when making commercial software. They don't have enough math, physics, or chemestry to be useful in developing new methods and without any "know how" they are drain on financial resoruces.
|
|
|
|
|
I had the same experience, but <b>you</b> should teach them how to 'develop' good code. Just studied electrical engineering, I had to learn PLM, Petri nets, modular programming and understand company written multi tasking operating systems more then 25 years ago.
Only possibly because I had very good teachers with enough time and patience, no chance to do it by my own with the knowlegde coming from university.
|
|
|
|
|
It took until technical school for me to learn C and C++. This was way back when we had to punch the code into stone tables. Each hole turned a peg on a wooden gear. Those were the days.
|
|
|
|
|
...until the operators dropped the stack and just put them through in random order...
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
In 1981 high school I had to fight to get time on the only TRS80... And god forbid that I tried to put a meter the expansion port to see it the bit was toggling.
|
|
|
|
|
Pointers, data structures, object oriented programming, memory management, and the inner workings of computers are all subjects that are independent of the C++ language. And if you want to work for a longer time as software developer, you will have to learn them no matter by which programming language.
C++ is a very wide spread language and well suited to learn about all those concept. To work for some time with assembly language would not hurt in addition.
So yes to C++, in my opinion. Most of us will have to learn C++ anyway, so why not in the beginning.
|
|
|
|
|
Nowadays student are becoming just Programmer than Computer Engineer. IMHO though while developing software people should think about abstraction but they should know internals about OS and other intricacies.
Regards
Happy Programming
|
|
|
|
|
...they want to do real programming and not this web based crap.
It's just a fad.
Look at me still talking when there's science to do
When I look out there it makes me glad I'm not you
|
|
|
|
|
|
You don't learn these things from C++. Let them learn assembly.
Nevertheless, they should learn C++. Because it's a widely used language, on which many others are based. If they want to switch to C# or Java or PHP even, they could do so easily. Switching the other way around isn't easy.
|
|
|
|
|
I worked extensively in Assembly before moving onto FORTRAN, Visual Basic, and then C#. I needed to understand these technologies when I was working in assembly. Since then I have had little need to understand these concepts. So I say no, it is not important. In developing business applications it is less necessary. However, I think that it is good to understand these concepts to be the best developer; it is part of understanding the theory of computers and software. There is also the advantage of understanding these concepts if there is a possibility that the developer will be involved in lower level programming.
|
|
|
|
|
C++ isn't C. Good modern C++ code shouldn't contain any pointers or manual memory management.
If the question is "should programmers learn C concepts using C++?", then my answer is no - they should use C to learn C concepts. There's no need to add additional complexity by using C++.
But learning about C concepts certainly is important, without them you simply cannot understand how your code in the higher-level languages actually works.
|
|
|
|
|
"Good modern C++ code shouldn't contain any pointers"
You can't do any C++ without pointers. What do you think you use to get objects interacting? Pointers to other objects
|
|
|
|
|
You can write plenty of C++ code just using stack-allocated objects (types like std::string and std::vector may end up on the heap, but that's an implementation detail and not relevant for the programming model).
In case you need pointers, either std::unique_ptr or std::shared_ptr should do the job. Classic C pointers with manual memory management simply shouldn't occur in C++ code.
|
|
|
|
|
1. Quote: Should Comp Sci students learn C++?
My answer: No you may choose not to learn it.
2.Quote: Learning about pointers, memory management, linked lists and to-the-metal programming used to be important. Is it still a necessary skill?
My answer: YES!!! After all learning things like memory management, linked lists and other data structures are absolutely necessary for a computer science student.
But these skills may not absolutely be necessary for an application programmer.
Peace, ye fat guts!
|
|
|
|
|
Its necessary to learn c++.
|
|
|
|
|
|
There is almost no other way to understand some principal things about how computer works.
If you don't understand how computer works, then it's magical box for you. Then you write "magical" code for it. For example: http://en.wikipedia.org/wiki/Cargo_cult_programming , but there is much more.
|
|
|
|
|
its true....
|
|
|
|