A system comprising: an input module configured to receive user specifications defining a training goal; and a training module configured to: generate a training program comprising a plurality of tasks for reaching the user-specified training goal; display the training program to the user in a user interface comprising a plurality of display elements corresponding to the plurality of tasks, wherein a first display element of the plurality of display elements corresponds to at least one attribute of a first task of the plurality of tasks and a second display element of the plurality of display elements corresponds to at least one attribute of a second task of the plurality of tasks; receive user input interacting with the first display element of the plurality of display elements corresponding to a modification of an attribute of the first task of the plurality of tasks; in response to the received user input interacting with the first display element of the plurality of display elements, generate a revised training program for reaching the training goal, wherein the generating a revised training program includes revising an attribute of the second task of the plurality of tasks; and display the revised training program to the user in the user interface comprising a revised second display element, wherein the revised second display element corresponds to the revised second attribute of the second task. an input module configured to receive user specifications defining a training goal; and a training module configured to: generate a training program comprising a plurality of tasks for reaching the user-specified training goal; display the training program to the user in a user interface comprising a plurality of display elements corresponding to the plurality of tasks, wherein a first display element of the plurality of display elements corresponds to at least one attribute of a first task of the plurality of tasks and a second display element of the plurality of display elements corresponds to at least one attribute of a second task of the plurality of tasks; receive user input interacting with the first display element of the plurality of display elements corresponding to a modification of an attribute of the first task of the plurality of tasks; in response to the received user input interacting with the first display element of the plurality of display elements, generate a revised training program for reaching the training goal, wherein the generating a revised training program includes revising an attribute of the second task of the plurality of tasks; and display the revised training program to the user in the user interface comprising a revised second display element, wherein the revised second display element corresponds to the revised second attribute of the second task. generate a training program comprising a plurality of tasks for reaching the user-specified training goal; display the training program to the user in a user interface comprising a plurality of display elements corresponding to the plurality of tasks, wherein a first display element of the plurality of display elements corresponds to at least one attribute of a first task of the plurality of tasks and a second display element of the plurality of display elements corresponds to at least one attribute of a second task of the plurality of tasks; receive user input interacting with the first display element of the plurality of display elements corresponding to a modification of an attribute of the first task of the plurality of tasks; in response to the received user input interacting with the first display element of the plurality of display elements, generate a revised training program for reaching the training goal, wherein the generating a revised training program includes revising an attribute of the second task of the plurality of tasks; and display the revised training program to the user in the user interface comprising a revised second display element, wherein the revised second display element corresponds to the revised second attribute of the second task.