Languages, machines, and classical computation is a new undergraduate course book on the conjoined subjects of Formal Languages and Automata & Computability and Complexity. By new, we mean more than its recent publication:
It is (more) clearly structured around the Chomsky hierarchy, which acts as its backbone;
It has an overall algorithmic approach, with many central algorithms thoroughly and clearly described in a step-by-step...