I would recommend going with a raspberry pi. Yeah, its not a micro controller, but it ensures that you have a full C++ library and easy to work with GPIO pins, and its cheap. I have used beaglebones as well, but the pinmuxing makes it a pain.
You can use a Raspberry Pi and the MakeBlock mBot with the required raspberry pi shield so that you have endless options. Or, you can just buy the mBot robot, it allows you to use MIT's Scratch or actual code via USB. I highly recommend starting with the mBot, it's great for learning and takes the focus off of being a "maker" and more on programming so that you don't have to focus on the hardware as much.
Probably, but if I were teaching a class, I would go with a raspberry pi. I personally like the idea of remoting into the device and working with a more common platform. They get to learn some linux and stuff which would be very useful.
IMO, it really comes down to if you want a Real-Time vs Deterministic operating system. Arduino will be slower and slightly more expensive, but probably wont make a difference.
There's also a price difference. A full Raspberry Pi setup is about $50 - $70 once you factor in power supply, SD card, case, and so on. Adafruit's Trinket Pro (almost 100% Arduino-compatible) can be purchased for about $10 and only requires a USB cord to get started.
I have both platforms. Arduino has far better performance and timing for simpler tasks since it's basically a real-time embedded processor, which makes it a better choice if you're interfacing with motors, servos, LEDs, etc. The Raspberry Pi is far more flexible, and more powerful for general computing, but you lose a lot in timing since it's running a full-blown Linux OS on it, and there's no guarantee that the GPIO will be responsive enough to deal with timing-critical items such as servos or PWM'd components. I do believe there are a couple realtime operating systems for the Raspberry Pi but I've never used them before.
I find C/C++ to be much easier in Arduino. You don't have to deal with makefiles and such, and the Arduino IDE, though a crappy text editor, is otherwise a pretty good platform. Personally I hate C/C++ development on any Linux, which is what you get with the Raspberry Pi, where I normally use Node.js instead.
This is about a month late, but I'm really surprised that no one suggested MBED. I used one throughout college and pretty much everything is written in C++. But Raspberry Pi and whatnot wasn't around back then. Plus MBED units can be a bit hard to find for any price under about 40-50. They're pretty robust though.
I think for teaching Arduino is the most popular MC.
But all these differ in what they support and probably the tools used to compile and upload for them are a bit different.
I don't know why the hell would you run a miniPC with Linux like Raspberry when all you want to do is control a few LEDs and a motor for example. But maybe you want to show off 10million stats on an LCD screen and communicate over LAN then sure a rPI or similar are the way to go as long as you are willing to give up some control to the OS and losing real-time.
You might want to check out parallax as well. I am fairly certain you can use c++ (I know for sure you can use c). You can also use SPIN which is a completely different "language". There is also a large online community with a fairly robust object exchange for hardware libraries. I just started with it a few days ago, and have been happy.
EDIT: I should also mention that it has 8 cores that can be programmed separately and run in parallel.
A forum community dedicated to overclocking enthusiasts and testing the limits of computing. Come join the discussion about computing, builds, collections, displays, models, styles, scales, specifications, reviews, accessories, classifieds, and more!