This course is a well-structured effort to solve vital financial problems based on simulation methods and techniques. The algorithmic techniques presented here, find a wide range of applications in every aspect of modern finance, with particular emphasis in the modeling of randomness, in the valuation of financial derivative products, financial risk measurement and portfolio management. The course is addressed to the undergraduate students of the Financial Engineering Track and focuses on the presentation and study of the basic algorithmic techniques employed in the simulation of various financial scenarios. More specifically: (i) we study in detail the binomial option pricing model, mainly from an algorithmic point of view, (ii) we simulate the basic stochastic processes (random walk, Brownian motion, Geometric Brownian motion), and (iii) we present Monte-Carlo simulation methods in a wide variety of financial related problems (exotic options pricing, value at risk, distance to default). Every lecture is accompanied by applications in R.