Lecture Note Formal Methods in Software Engineering - Lecture 1 (Download Tai Tailieutuoi - Com)
Lecture Note Formal Methods in Software Engineering - Lecture 1 (Download Tai Tailieutuoi - Com)
Lecture Note Formal Methods in Software Engineering - Lecture 1 (Download Tai Tailieutuoi - Com)
Islamabad
The goal of this lecture series is to provide training in formal thinking to students
of applied informatics. Students should learn to analyze and solve problems us-
ing formal methods. The class will expose students to a wide set of problems
and show ways of solving them. Formal methods, as they are used in theoretical
computer science, constitute an essential part of a computer science education,
not only for those who target an academic or research career, but also for practi-
tioners. Although the main goal of theoretical computer science, and the use of
formal methods, is to gain insights, it turns out that many of the methods have
direct practical applications. We will make an attempt to always illustrate the
theoretical ideas with concrete examples and case studies – which is sometimes
easier and sometimes a bit harder.
Because the curriculum is toward applied informatics, we only provide an
overview of the field – on each of the chapters, we could have an entire course
itself (e.g. on complexity, on logic, on automata and languages, etc.). Thus, it is
not possible to always dig very deeply into the subject matter, but we do hope that
this is sufficient to appreciate the issues involved and their implications.
We will cover the classical topics – formal languages, automata theory, etc. –
but we have added a number of subjects that reflect our background in artificial
intelligence, artificial life, and complex systems. They all require clear, formal
thinking, and provide an additional valuable set of tools. For example, we have
included sections on cellular automata, L-systems, and fractals which we feel,
every computer scientist should know about. We also bring in the relatively
recent
1-1 CHAPTER 1. INTRODUCTION
1.2 Acknowledgment
Rolf Pfeifer and his teaching assistants are grateful to Norbert Fuchs for gener-
ously providing materials and patiently answering our questions.
Formal Languages
Automata Theory
Markov
Logic
Processes
Cellular
Automata
Complex
Systems
Graphs &
Networks
Morphological Quantum
Computation Computation
Figure 1.1: Overview of the topics that will be covered during the lecture.
1-1 CHAPTER 1. INTRODUCTION
The second topic, automata theory, is very closely related to formal lan-
guages: it deals with the various kinds of abstract machines capable of recogniz-
ing formal languages. In fact, the two topics of formal languages and automata
theory constitute together the very basis of computation. Yet, this first part of the
lecture is not only about theoretical computer science. We will also encounter
various applications, many of which are found in the most modern software and
devices.
An example of complex systems on which we will focus are graphs and net-
works. In this chapter, we will learn different techniques that enables us to deal
with and characterize such kind of systems. We will also discuss some interesting
effects found in different kind of static or growing networks.
Finally, we will conclude our journey through theoretical and applied com-
puter science with two particular topics – morphological and quantum
computa- tion – which should provide insights on alternatives to the classical
and prevalent theory of Turing computation.
1.4. SUGGESTED READINGS 1-5