Formalists School, particularly led by David Hilbert, states that mathematics is essentially the manipulation of symbols according to some specific rules. In this perspective, proofs are sequences of symbol manipulations that follow the rules of the formal system. Formal Methods in computer science apply this formlist philosophy by using
mathematical models to specify, analyze, and verify software and hardware systems and algorithms. The study of automata and formal languages plays a key role in formal methods. These concepts are rooted in formalist traditions, and are widely used in specified purposes.
In this course, we emphasize abstraction and the mechanization of reasoning, processes that can be carried out without relying on human intuition. This principle lays the groundwork for the development of computability theory and algorithmic methods, and many other directions in the field of theoretical computer science.