The Common Spatial Pattern (CSP) algorithm is a popular method for efficiently calculating spatial filters. However, several previous studies show that CSP's performance deteriorates especially when the number of channels is large compared to small number of training datasets. As a result, it is necessary to choose an optimal subset of the whole channels to save computational time and retain high classification accuracy. In this paper, we propose a novel heuristic algorithm to select the optimal channels for CSP. The CSP procedure is applied to training datasets firstly and then a channel score based on ℓ1 norm is defined for each channel. Finally, channels with larger scores are retained for further CSP processing. This approach utilizes CSP procedure twice to select channels and extract features, respectively; hence the complex optimization problem of channel selection for CSP is solved heuristically. We apply our method and other two existing methods to datasets from BCI competition 2005 for comparison and the experiment results show this method provides an effective way to accomplish the task of channel selection.