The Science of Algorithmic Trading and Portfolio Management