1. A computer implemented, data driven method of teaching a student to read, comprising the steps of: presenting the student with a whole word recognition test, a partial word recognition test, and/or a word sequence recognition test; inputting a response from the student; determining if the response is correct or incorrect; measuring a response time from said presentation step to said inputting step; providing feedback to the student based on whether the response is correct or incorrect as determined by said determining step; calculating student performance based on the response time and whether the response is correct or incorrect; adjusting the difficulty level of the test presented in said presenting step based on the student performance; and a first iterating step iterating said presenting step, said inputting step, said determining step, said measuring step, said providing step, said calculating step and said adjusting step.