How can I generate a bitcoin address? Is there any way to generate bitcoin addresses  other than the Blockchain API? (given the fact that it is not public)
There are a number of sample programs here: https://bitcointalk.org/index.php?topic=1026.0

Also see the wiki for the step-by-step algorithm for generating a valid address.