In many industrial robot applications, the robot is programmed to do the same task over and over. Iterative Learning Control (ILC) uses tracking errors from previous trials to correct the control input, thereby reducing tracking errors caused by plant uncertainty. Though many ILC algorithms in the literature process the previous error using causal operators, it was recently proved that the performance of causal ILC is fundamentally limited to that of conventional feedback control (without iterations). It was also proved that noncausal ILC improves on both feedback control and causal ILC. In this thesis, we validate these theoretical results through simulations and experiments. We show that, unlike causal ILC, noncausal ILC can converge to zero error even if the plant has a relative degree greater than one. Practical implementation issues, such as unsteady initial conditions and the truncation of signals in the time domain, are also addressed.