The Electroencephalogram (EEG) is a recording of the electrical potentials generated by brain activity on the scalp. It has been used for decades as a non-invasive tool both in fundamental brain research and in clinical diagnosis. But it is now widely used also in Brain-Computer Interfaces (BCI) to provide augmentative communication mainly for severely handicapped patients and, prospectively, in the general framework of human computer interaction. As in any communication system, the input (EEG activity) must be coded (feature extraction) before being sent, and the receiving device (the computer) must map the received data to actions classification). This article explores the main approaches used in the BCI community for completing these tasks.