uCtools is an open source collection of microprocessor programming tools. So far they support development for AVR, ARM, MSP430, STM32L1xx and are developing tools for others. If I need to develop firmware for embedded systems, this will be a handy tool to have at my disposal. For now, the arduino IDE seems like the best choice for teaching, since it is simple to use and understand. But who knows? Maybe something else will be better. You don't know unless you explore the possibilities.
One of the projects that I'm interested in building is an alarm clock with a variety of alarms to wake a person up. I've though of using LEDs to simulate sunlight, a motor to vibrate my pillow, a speaker to play music, a squirt gun, a spring-loaded mechanism to pull off my sheets, etc. I haven't built one yet, but the project has always been in the back of my head. I cam across a series of alarm clocks that simulate sunrise, and I like the one in the link below, particularly for its great bill of materials. I would use an arduino instead of the Arm processor because I have a few ATMega328p's I haven't found projects for. He also uses all open source products to create the project, which I think is awesome. I haven't dabbled in board layout much, and an open source program would be a great place for me to start.
Dangerous Prototypes has a sunrise alarm clock that uses a PIC32. I've used one for another class, but since I'm focusing on ease of teachability, for now I'm going to stick with the arduino (very beginner friendly). This one plays sounds back, which is nice, but I can do that with an arduino as well.