Motivation and Background

From International Center for Computational Logic
Toggle side column

Motivation and Background

View of the Old City part in Dresden
View of the Old City part in Dresden

In 1996 the European Network of Excellence in Computational Logic, CompulogNET, has developed a curriculum for a Master's Program in Computational Logic with the ultimate goal that the best students can study with the best experts in the field.This curriculum has been implemented in 1997 at the Technische Universität Dresden as part of an initiative of the Bundesministerium für Forschung und Technology (BMFT) and the German Academic Exchange Service (DAAD) to strengthen international study programs at German universities. The International MSc Program in Computational Logic was funded by the DAAD from 1997 until 2002. It is an accredited and internationally recognized Master's Program focusing on Computational Logic.It is also a part of the European Master's Program in Computational Logic.

What is Computational Logic?

Computational Logic is a wide interdisciplinary field having its theoretical and practical roots in mathematics, computer science, logic, and artificial intelligence. Indeed, its wideness of scope anchors in the power and generality of logic based reasoning across the spectrum of scientific disciplines, and in its practical use in the form of computer supported automated tools. As a consequence, it has its applications in computer science itself, mathematics, the engineering sciences, humanities and social sciences including Law, as well as in the natural sciences, and in interdisciplinary fields like cognitive science.

The field of Computational Logic covers all kinds of applications of logic in Computer Science. Computational Logic centers around the famous definition: Algorithm = Logic + Control. According to this view, algorithms consist of a problem description (the logic part) along with a strategy to carry out useful computations on this description (the control part). Computational Logic is devoted to the ideal of a programmer who concentrates solely on the description of the problem and spends no time at all on the actual computation mechanism. This unique paradigm of `declarative programming' leads to programs that are fast and simple to develop and easy to understand and maintain - features which are of rapidly increasing importance as today's computer systems grow more and more complex. Moreover, the rigorous use of logic revolutionizes the whole field of hard- and software verification. Instead of having to undergo a test phase, which necessarily cannot give more than just some confirmation that a program will do what it is supposed to do, the development of programs and systems that are guaranteed to be correct is the second ideal of Computational Logic.

Professional Perspective

Today's information technology is witnessing a change - and the change is omnipresent. It is getting closer to our lives and plays a more active role in day-to-day activities with more and more people using it for diverse needs: from on-line transactions, on-line chat and e-mail to fancy browsers and real-time audio and video; computers and especially the Internet have taken the entire world by a storm. The Internet is a scientific invention that has really influenced the way we think and act. As all this increasingly transfuses into our lives, the more mind boggling it becomes for the computer scientists to handle various key issues involved in data security, transactions, network computing, network architecture, computer architecture, complex software, distributed platforms and in short - every little aspect which affects our present day computer society. As our systems become smarter every day and as the major organizations vie for the maximum market share, present computer scientists are forced to understand the key issues even faster while making advanced sophistication look a triviality. Computational Logic is a unique paradigm to address problems in hardware and software design that are too complex to be solved by plain heuristics and rules of thumb. It is no longer the case that hardware can survive without good software and vice versa. In fact they now have to grow synergetically as our systems become more complex. It has been observed that Computational Logic also plays a crucial role in understanding key problems in software. The advent of logic and constraint programming has led to a great success of declarative programming languages in expert systems, natural language processing, planning and acting, to name but a few. In today's world of wireless and mobile networking, distributed system protocols form a major aspect of system design. Removing unnecessary and redundant computations from such protocols and verifying such protocols is usually a formidable task. With the tools of computational logic the journey is easier. The field of software engineering is witnessing a multi-discipline approach to define the software system specifications formally and logics have shown immense guiding potential to the way formal specifications are studied. With these motivations to guide the heuristics and to have more emphasis on formal methods for software and hardware verification, Computational Logic covers the scope of the above mentioned areas.
As of today, Computational Logic is one of the flagships of research and education in Europe. Computational Logic is of increasing importance for dealing with the complexity of modern computer-supported systems and worldwide on the rise. The field has been established over many years by numerous European projects and networks. In particular, the European networks of Excellence in Computational Logic, CompulogNET 1 and 2 as well as CoLogNET were instrumental for turning Europe into the world-wide leading region in Computational Logic.

Teaching Goals

Based on a solid background in mathematical logic and its subareas (as normally taught in Computer Science and Artificial Intelligence courses), a student of the International MSc Program will learn the engineering aspects of Computational Logic: how does a deductive system operate, what kind of logic-based grammar can be used to process natural language, how can techniques for the verification of software and hardware be applied in industry, what kind of implementation techniques are needed for logic-based systems, what formal methods are required for computer integrated manufacturing, how to apply formal methods for the layout of blue prints for machines and processes, and what problems occur in such applications.

Logic. All kinds of logic appear in applications of Computational Logic: propositional logic, classical predicate logic, and higher-order logic as well as non-classical logics such as modal, nonmonotonic and fuzzy logic.

Knowledge Representation and Reasoning. Describing a problem means to represent and reason about knowledge, which covers such diverse aspects as decision making, evidential reasoning, causal reasoning, case-based reasoning, reasoning by analogy, induction, abduction, and deduction, legal reasoning and natural language understanding and generating, reasoning about actions and planning, models for dynamic processes and systems, and hardware specifications.

Control. Computational Logic includes the design of abstract and real machines for declarative programming languages and the building of deduction systems and automated theorem provers. Searching being the fundamental computation mechanism in Computational Logic, the development of search control strategies and heuristics is a major issue.

Programming. Software engineering in Computational Logic includes logic programming, constraint programming, and functional programming, program analysis, program synthesis, and program transformation. The student will learn how to analyze problems and algorithms according to the properties of decidability, tractability, and complexity.