Erasmus Mundus
European Net of Excellence on Computational Logic
European Net of Excellence
on Computational Logic
the Assoc. of Logic, Language and Information
European Assoc. of Logic,
Language and Information
Portuguese Assoc. for Artificial Intelligence
Portuguese Assoc. for
Artificial Intelligence
IBM Center for Advanced Studies
IBM Center for
Advanced Studies
European  Committee for Artificial Intelligence
European Committee
for Artificial Intelligence
Italian Assoc. for Artificial Intelligence
Italian Assoc. for
Artificial Intelligence
Italian Assoc. for Informatics
AICA: Italian Assoc.
for Informatics
Italian Assoc. for Logic and its Applications
AILA: Italian Assoc. for
Logic and its Applications

EMCL: European Masters Program in
Computational Logic


What is Computational Logic

Computational Logic is a wide interdisciplinary field having its theoretical and practical roots in artificial intelligence, computer science, logic, and applied mathematics. 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, the engineering sciences, mathematics, 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 centres 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 todays computer systems grow more and more complex. Moreover, the rigorous use of logic revolutionises 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

Todays 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, the complex softwares, 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 organisations 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 a 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, robotics, artificial intelligence, to name but a few. The new vision of the Semantic Web is grounded on logic and logic-based knowledge representation and reasoning. 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.

The objective of our Masters Course is to impart to the student a thorough education comprising both the theoretical and practical knowledge required for professional practice in Computational Logic, to give him a profound insight into the various disciplines of Computational Logic and to strengthen his ability to work according to scientific methods. In addition, the student is given the opportunity to tailor his studies to a particular application area. In order to acquire practice-oriented knowledge, he may choose appropriate combinations of modules (study units). Studying at two universities in Europe - with English as language of instruction, accompanying language classes in another European language and studying in multi-national groups - will contribute to the student's preparation for the increasing globalisation of science, commerce and industry.

The European excellence in Computational Logic research and development, after much previous strategic investment, should be brought into fruition at the graduate and postgraduate levels. Thus it will be reproduced and sustained, proffered as an advanced specialised employment recruitment platform, and promoted as an international beacon of worldwide attraction and influence, in line with the Erasmus Mundus goals. The course also prepares the students for followup PhD studies provided by the participating partners and others. Besides the theoretical background, the tools and techniques of Computational Logic will enable the student to tackle and develop software solutions to many problems for which other approaches are not suited.

Teaching Goals

Based on a solid background in applied mathematical logic and its subareas (as normally taught in Computer Science and Artificial Intelligence courses), a student of the Master 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, which are the formal bases of artificial intelligence and knowledge representation, how to apply logic to the new challenges coming from the Semantic Web, how logic represents the meaning of natural languages, 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, non-monotonic and fuzzy logic.

Knowledge Representation and Reasoning. Describing a problem means to represent and reason about knowledge and ontologies, which covers such diverse aspects as databases and knowledge bases, decision making, evidential reasoning, causal reasoning, case-based reasoning, reasoning by analogy, induction, abduction, and deduction, legal reasoning and natural language understanding and generating, ontologies, 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 analyse problems and algorithms according to the properties of decidability, tractability, and complexity.