1. A method for teaching a foreign language to a user who has knowledge of a base language, comprising: receiving the text entirely in the base language; receiving the text entirely in the target foreign language; preparing a set of mixed language texts by at least one of substituting target foreign language words for base language words in the base language text and substituting base language words for target foreign language words in the target foreign language text, each text in the set of mixed language texts having a respectively decreasing amount of base language words and a respectively increasing amount of target foreign language words; assessing the user's proficiency in the target foreign language; based on the user's assessed proficiency, choosing one of the set of mixed language text as the text for presentation to the user; and presenting the text to the user that includes both base language words and target foreign language words, where the amount of target foreign language words in the text depends on the user's assessed proficiency in the target foreign language.