I teach programming at secondary school: this is our current status and I would appreciate any suggestions:
- We have programmers club for advanced students. We develop in MSVC# (even commercially) and NetBeans, everything works fine
- However, two thirds of the class are not developers: they are otherwise oriented, their job will probably not be in IT
- According to our school agenda, we HAVE TO teach them some basics
- So in the first year of their studies, we teach them something like “programming for dummies” to give them time to decide what they really want to do (programmers club requires to do MUCH homework)
- The language HAVE TO BE C++ (for many reasons). Currently they develop in C++ Builder 6.0, which is slow and buggy in our school network.
So what would be the best solution for those students? The requirements are fast, reliable and very easy to undestand IDE. Console output is sufficient, something like “editor and play button”. Visual programming and debugging tools are not required. The IDE should be free, preferably running on Windows.
My favorite was MSVC 2008 Express – it is really fast and pretty simple. But C++/CLI is not C++ (managed code is not the basics), so this is not an option. Any other suggestions?
Visual C++ Express does support native C++ developement. I would strongly urge you to upgrade to the 2010 version to gain some C++0x support; C++0x makes it much easier to program in C++ without touching the nasty bits.
However, C++ as a first language sounds daunting. Particularly for those without any further programming aspiration; it’s complicated, easy to misuse, and will blow up with poor error handling in hands of beginners.
For some casual programming introduction, I’d recommend something like JsFiddle: they can do it from anywhere with no special tools, and whatever they learn they might even be able to actually use as non-IT guys. It’s also much more fun to get immediate feedback when learning something, which is another mark against C++.
So if you have to use C++, use C++0x to make stl algorithms “just work” using lambdas and avoid iterator complexity using the range-based for (amongst other improvements).