This document provides an introduction to automata theory and finite automata. It defines an automaton as an abstract computing device that follows a predetermined sequence of operations automatically. A finite automaton has a finite number of states and can be deterministic or non-deterministic. The document outlines the formal definitions and representations of finite automata. It also discusses related concepts like alphabets, strings, languages, and the conversions between non-deterministic and deterministic finite automata. Methods for minimizing deterministic finite automata using Myhill-Nerode theorem and equivalence theorem are also introduced.