Given a convex polygon P with m vertices and a set S of n points in the plane, we consider the problem of nding a placement of P that contains the maximum number of points in S. We allow both translation and rotation. Our algorithm is self-contained and utilizes the geometric properties of the containingregions in the parameter space of transformations. The algorithm requires O(nk2m2 log(mk)) time and O(n+m) space, where k is the maximum number of points contained. This provides a linear improvement over the best previously known algorithm when k is large ( (n)) and a cubic improvement when k is small. We also show that the algorithm can be extended to solve bichromatic and general weighted variants of the problem.