For Mathematica, here is a simplified tsunami propagation code. Interesting stuff, and quite approachable without an oceanography background.