4 ms·
Personally I don't think a student who knows only C++ because he was force to use it in school is going to be much (or any) better than a student who knows only
by twymer 16y ago
Personally I don't think a student who knows only C++ because he was force to use it in school is going to be much (or any) better than a student who knows only Java for that reason. The problem isn't that the language is Java, the problem is that it's a student who never cared enough to learn something else than what was expected she learn and use for classes. I am, however, quite shocked that operating systems classes are being taught in Java. At my university few classes actually required C++ (usually you could use it or Java) and the OS class was certainly one of them.
His concern that students don't have to take hard classes is pretty valid though. If the curriculum changes he described are really that bad I think that is tragic.
- nlawalker 16y agoThe thing about Java is that it's a managed language with little insight into lower-level concepts. This isn't a problem in itself, but when students indicate that they only ever learned Java and that they like it because it's easy, it's usually an indicator that they have no idea what's going on behind the curtain. In my experience, these kinds of students are very reliant on tools that provide a garden path to walk down, become very confused the second that something appears to stop working right, and they tend to approach problems with a very "code-first" mindset - given a problem, they will sit in front of a screen and think that if they can just find the right code to type in, the problem will be solved. A student in a C++ class at least has a chance at being exposed to something lower level.
- twymer 16y agoI think most students don't care. They don't ever understand what's going on with the pointers and are often content to just keep trying combinations of the syntax until the appropriate result comes out and the compiler stops yelling at them. Maybe the point is that if you don't require C++, students will (obviously) often pick the language what provides the easiest way to complete their lab in a timely fashion so they have social time or time to work on other classes. Even those who DO care and would absorb the low level knowledge provided won't take that "risk" by doing their labs in C++ since early on it just means their work will take longer to complete than classmates. Note: As I said my school always allowed the usage of C++, usually allowed Java as well. It's definitely a bad thing if courses require Java to be used.
- jonhendry 16y ago"A student in a C++ class at least has a chance at being exposed to something lower level." True, but the risk of using C++ in other CS classes is that they'll spend most of their time fighting C++, and not focus on whatever the class is supposed to be teaching. And the instructor/professor may be wasting a lot of time doing C++ tech support, rather than teaching compiler concepts, or whatever.
- sid0 16y agoI've posted about this on HN before, but I'm a TA for an OS course in one of the best colleges in India, where this year we switched to a pedagogic OS written in Java. It's gone off remarkably well, since students don't have to deal with random memory safety issues within the kernel itself (they of course need to deal with memory safety issues with user-mode programs). As compensation, we've felt comfortable having the assignments cover a lot more ground than they used to when we used C++. In my opinion, C and C++ are very difficult languages to be able to reason about code in, since there's just so much stuff around the operative part of the code. Java, while not ideal, is a lot easier.