A very useful way to capture the complexity of a set-system is its VC-dimension. In this talk I will explain the use of VC-dimension in getting improved bounds for several geometric problems, both combinatorial (epsilon-nets, discrepancy) as well as algorithmic (set-cover, nearest neighbors).