This course will cover different aspects of Algorithmic and High Frequency trading. We will look at how the limit order book works and discuss how and why we could model it. We will devise trading algorithms which take market microstructure into the account. In particular, we will look at the problems of optimal liquidation/acquisition and of market making. For the former, we will discuss the classical Almgren-Chriss setting with permanent and instantaneous market impact and discuss the resulting TWAP and VWAP execution strategies. We will also consider a transient price impact model of Obizhaeva-Wang. This will lead us to consider market efficiency and possible notions of no-arbitrage. We will discuss price manipulation strategies and investigate when models allow, or not, for such strategies.