Week 5: Regular, Non-regular Languages, Criteria for Regularity, Minimal Finite Automata