Abstract: A method for adaptive language learning comprises receiving, by a processor, a response from a user in response to a first prompt. The first prompt is intended to test one or more language skills of the user. The method includes analyzing one or more characteristics of the response to determine one or more scores for the response. The one or more scores are determined based on a comparison of the one or more characteristics of the response to a predefined response to the prompt. The method includes determining a language proficiency for the user based on the determined one or more scores. The method includes dynamically selecting a second prompt to present to the user. The second prompt is selected based on the user's language proficiency and intended to further test the user's one or more language skills.