This book covers the traditional intro topics regarding computability, complexity and language theory. The writing is clear and concise. The organization is well thought out. The exercise count is a bit low, but the exercises are well thought out. The proofs are sometimes a bit soft, but are rigorous for the most part. Overall this is a nice little book.