This course gives an introduction to computational logic, i.e.,
to those aspects of logic that can be supported by software or are relevant for
software development: satisfiability solving in
propositional logic, computer-supported and fully automated proving in
first-order logic, and decision procedures for certain (combinations of)
logical theories.

- Lecturer: Nikolaj Popov
- Lecturer: Wolfgang Schreiner

This exercises lecture is an extension of the main course on Algorithms and Data Structures. It will provide the opportunity for putting into practice all the subjects discussed during the course, both by implementing, analysing, optimizing the presented algorithms, and by exploring additional use cases and new algorithms. It is addressed both to students who started programming only last year (beginners), and to advanced students.

- Lecturer: Cleopatra Pau

This course gives a survey on the use of formal methods for the development of reliable software using freely available tools.

- Lecturer: Wolfgang Schreiner

This seminar discusses techniques and tools for formal methods and/or automated reasoning such as formal specification languages, program verification systems, model checkers, interactive proof assistants, automated theorem provers, satisfiability solvers, decision procedures, etc.

- Lecturer: Temur Kutsia
- Lecturer: Wolfgang Schreiner
- Lecturer: Wolfgang Windsteiger

## Overview

Students will get acquainted with a number of typical algorithms used in various areas of mathematics, general principles underlying the design of such algorithms, and methods for complexity analysis.

The final grade will be determined by the number of points collected in the quizzes and the final exam.

Exam date: January 26th 2024, 12:30

## Organization

Winter Semester 2023.

Exam: January 26th 2024, 12:30. Room to be announced.

**Number:**3260D1**Title:**Design and Analysis of Algorithms**Lecturer:**Cleopatra Pau**Time:**Thu 14:30 - 16:00**Place:**T 406**Language:**English**First lecture:**October 5.

## Contents

- Assymptotic notation.
- Solving Recurrences.
- Divide and conquer.
- Sorting.
- Dynamic programming.
- Greedy algorithms.
- Graph Algorithms: Single-Source Shortest Paths.
- String matching.
- Unification algorithms.

## Course Materials

**Book:**Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. Third Edition. The MIT Press, 2009.**Slides:**Slides and other supplementary materials will appear in Moodle.

- Lecturer: Cleopatra Pau