The current, last week of tutorials is dedicated to discussing your results in the test exam (including the sample solutions) and clarifying any open questions left.
Good luck in the official exams!
– Your ALP team
This course is regularly offered in the summer semester, as part of the ICM track of the CS Master's program. The course number in the master module handbook is MA-INF 3207.
|Date||Weekly, from April 24 to July 24 (except for Dies Academicus and Whitsun vacation (see schedule)|
|Place||Lecture room HS 2, ground level of the AVZ, Römerstr. 164.|
|Course number (Module handbook)||MA-INF 3207|
|Course number (BASIS)||612113207 (Course) and 612213207 (Exercises)|
|Credit points||6 = 2 (Course) + 4 (Exercises)|
|Lecturer||Dr. Günter Kniesel|
|Exercises||See separate page|
|Exams||See separate page|
This course addresses students interested in software quality. It aim is to show how software software quality assessment, detection of emerging problems and automating correction of identified problems can be built on the basis of logic programming.
Although this is an advanced course, we will spend some time on logic programming foundations – to make you familiar with the used development environment, help you refresh prior knowledge and make sure that all course participants have a comparable starting level. If you have no background in logic programming you will need to invest more time in this initial phase.
The course will lay the foundations for a logic programming representation of software systems and will introduce JTransformer as a tool that automatically generates such a representation for Java programs. Based on this representation, we will learn how to easily implement software quality analyses. These analyses will be the use cases that motivate the different advanced logic programming techniques that will gradually be introduced (e.g. metaprogramming).
Finally we will learn about the approach of classic Prolog systems to program transformation, analyze its risks and embrace the alternative concept of “conditional transformations” implemented in JTransformer.
Summarizing, you will learn new things in three different areas: