To enjoy and succeed in this course, students will need adequate mathematical and programming backgrounds. The concepts and techniques covered in this course depend heavily on basic statistics (distributions, Monte Carlo techniques), scientific programming, and calculus (integration and differentiation).