Gravar-mail: NLP/AI based techniques for programming exercises generation