Unlike European options, American options can be exercised at any time up to maturity. As a result of the early exercise feature of American options, they are at least as valuable as their European counterparts. This, however, makes them harder to price as the analytical closed form equations used for pricing vanilla European options do not apply. In order to price an American option, each time t prior to maturity T must be considered to determine whether it is optimal for the option holder to exercise the option immediately or to hold on to the option until a more advantageous future time before it expires. We implemented the Longstaff-Schwartz algorithm, which incorporates Monte Carlo methods and regression to price American options. We also used variance reduction techniques and quasi-Monte Carlo methods to improve the convergence and computational speed of the algorithm. We were able to significantly reduce the width of the 95% confidence interval of our estimated price of the option by using control variates, and we determined the exercise boundary that results from applying the stopping rule. We found that the Longstaff-Schwartz algorithm efficiently prices American put options.