Describir: An introduction to formal languages and automata