introduction for uninitiated readers, advanced methodologies and efficient algorithms