if the students understand Java, learning C shouldn't be that hard. CS students at my university are required to do it fast. The intro class is Java, then the structures class uses C within two weeks of starting. All that really changes are I/O and structures/classes. Both of which are different for uCs anyway.
I would like to program an 8051 using Java. I know this is a really bad idea, especially since C is so much nicer and widely supported. I want to teach microprocessors to my AP computer science class after the AP test. FYI, the computer science test is in Java now, (not in C++ anymore). Learning another language isn't probable due to time constraints and confusion. Any resources/ideas would be greatly appreciated. Are there other chip sets other than the 8051 which support Java programming? Thanx Dean Krick.
I'm hearing you say you've got a group of computer science students who don't have a lot of electronics hardware background, and you just want them to have a quick overview of a hardware uC setup using a language they're very familiar with. (Hopefully, without paying an arm and a leg -- this is an academic environment.)
One thing that comes to mind for a quick&dirty intro to microcontrollers for the Java over-enhanced is the Javelin Stamp, made by our friends at Parallax.
It's a hybrid circuit on an alumina substrate with DIP pins. It's got the same footprint as the BASIC Stamp II, with an SX-type chip on board. I believe the "compiler" software actually tokenizes the text file containing the program, then sends the tokens to the Stamp to run. Their setup will give you the I/O you need, and it uses a subset of the Java language. The biggest downside is that you can't mix higher-level language and assembler, like you can with most microcontrollers or single board computers that are supported by a higher-level language.
Parallax is very good at providing data and literature that's suitable for newbies. They've also published a project book for the Javelin Stamp which might be of help. Look on the website for more information. (Disclaimer: I haven't used the Javelin Stamp myself.)
Once you've purchased a starter kit, you should be able to etch a programming board and cobble up what's needed for individual students or pairs to have a "programming pod" from what you've got laying around.
Although it might be useful in giving students who know Java an intro into microcontrollers, I don't see this becoming a very popular option for uC high-level language compilers. I'd just tell your students to take a flying leap into the C. But obviously, I don't teach. ;-)
If you really merely want to teach microprocessor principles, then write an emulator as an applet, and let them run it on their laptops, and let them see the program counter, instruction register, ALU, and so on, do their thing.
If you want to teach them hands-on real microprocessors, then avoid Java like the plague, bite the bullet, and get some BASIC Stamp trainers or something.