You can code to morse or enode from morse in a simple way. It's written in ANSI C, the source code is redy to be built for unix based systems.
There can be bugs in it, but it does the work. I recommend the source code for those who are learning C.
Java-based free software for learning audio and flashing-light Morsecode. Features include very flexible audio system, drills based on live news feeds, and adaptive drilling strategies.