DS 305: Algorithmic Methods and Tools