adding timestamps.  See a bug in exercise completion logic (too many uncompleted, too many exercises touched). Next: sample total # of exercise attempts (based on effort and time_in_program), then distribute according to speed_of_learning (those who learn slower take more attempts to complete, also have a greater probability of not completing)