Competitive facility location problems are concerned with the following situation: a firm wants to locate a predefined number of facilities to serve customers located in some region where there already exist (or will be) other firms offering the same service. Both new and existing firms compete for optimizing their market share of profit. A discrete version of such problems arises when it is assumed that there are a (rather small) finite number of candidate locations and the markets consist of point demands. We review modeling and optimization approaches for this type of problems and we emphasize and develop the bi-level programming methodology.