This tutorial will give an introduction to voting theory, with a focus on computational aspects and other issues that are of particular interest to the MAS community. The first part of the tutorial will give the background on social choice, discuss some of the most famous impossibility theorems and their impact, then present the most important classes of voting rules (with many examples) and their properties. The second part will focus on computational issues, such as the computation of voting rules, the computational resistance to strategic behaviour, voting with combinatorial domains, communication protocols; voting with incomplete knowledge, and beyond. A few application domains (such as web page ranking) will be discussed. There will be one or two voting experiments with the students.