A personal computing device comprising: a) a processor, an onboard memory, an accelerometer, a gyroscope, and a display; b) a computer program including instructions executable by the personal computing device to create an exercise analysis application comprising: i) a software module configured to receive acceleration data from the accelerometer and angular velocity data from the gyroscope, the acceleration data and the angular velocity data associated with the bodily motion of a user in three dimensions; ii) a software module configured to place the device in a learning mode, the learning mode comprising recording the acceleration data, the angular velocity data, and repetitions of the user performing a defined exercise to generate a statistical exercise model for the exercise; iii) a software module configured to place the device in a normal mode, the normal mode comprising applying a probabilistic analysis to the acceleration data and the angular velocity data to identify an exercise event, classify the exercise, and identify repetitions of the exercise by obtaining from the statistical model a vector of predicted probabilities associated with an estimated exercise and an estimated number of repetitions and generating an estimated exercise form based on the predicted probabilities associated with the estimated exercise and the estimated number of repetitions; and iv) a software module configured to apply a statistical analysis to the acceleration data and the angular velocity data to score the user's exercise form. a) a processor, an onboard memory, an accelerometer, a gyroscope, and a display; b) a computer program including instructions executable by the personal computing device to create an exercise analysis application comprising: i) a software module configured to receive acceleration data from the accelerometer and angular velocity data from the gyroscope, the acceleration data and the angular velocity data associated with the bodily motion of a user in three dimensions; ii) a software module configured to place the device in a learning mode, the learning mode comprising recording the acceleration data, the angular velocity data, and repetitions of the user performing a defined exercise to generate a statistical exercise model for the exercise; iii) a software module configured to place the device in a normal mode, the normal mode comprising applying a probabilistic analysis to the acceleration data and the angular velocity data to identify an exercise event, classify the exercise, and identify repetitions of the exercise by obtaining from the statistical model a vector of predicted probabilities associated with an estimated exercise and an estimated number of repetitions and generating an estimated exercise form based on the predicted probabilities associated with the estimated exercise and the estimated number of repetitions; and iv) a software module configured to apply a statistical analysis to the acceleration data and the angular velocity data to score the user's exercise form. i) a software module configured to receive acceleration data from the accelerometer and angular velocity data from the gyroscope, the acceleration data and the angular velocity data associated with the bodily motion of a user in three dimensions; ii) a software module configured to place the device in a learning mode, the learning mode comprising recording the acceleration data, the angular velocity data, and repetitions of the user performing a defined exercise to generate a statistical exercise model for the exercise; iii) a software module configured to place the device in a normal mode, the normal mode comprising applying a probabilistic analysis to the acceleration data and the angular velocity data to identify an exercise event, classify the exercise, and identify repetitions of the exercise by obtaining from the statistical model a vector of predicted probabilities associated with an estimated exercise and an estimated number of repetitions and generating an estimated exercise form based on the predicted probabilities associated with the estimated exercise and the estimated number of repetitions; and iv) a software module configured to apply a statistical analysis to the acceleration data and the angular velocity data to score the user's exercise form.