Algorithmic Aspects of Graph Connectivity