Аннотация:В рамках выполнения данной работы автором был дан обзор текущего положения дел в сфере обучающих программ и в частности программ по языкам программирования. Также были рассмотрены существующие методы языковой генерации. Описана универсальная программа с возможностью описания заданий в виде шаблонов и наличием обратной связи с учеником. Для описания заданий в шаблонах был разработан специальный скриптовый язык, достаточно простой для освоения, чтобы преподаватель сам мог вносить необходимые ему изменения. В помощь ученику реализована возможность обратной связи вида «ученик - компьютер», то есть ученик может задавать вопросы программе и получать на них ответы. В рамках данной работы была реализована обучающая система, у которой шаблоны заданий хранятся вне программы, и после изменения заданий не требуется перекомпиляция.