Applications of Topology, Combinatorics and Algorithms to Discrete Geometry