Modern algorithms in information theory