Institute of Software Engineering and Compiler Construction
- 1:
Teaching.- 1.1:
Summer term 2012. - 1.2:
Winter term 2011/2012.- 1.2.1:
Constraint programming. - 1.2.2:
Embedded softwareengineering for automotive systems. - 1.2.3:
Functional programming. - 1.2.4:
Foundations of compiler construction. - 1.2.5:
Management of Sotware Projects. - 1.2.6:
Software engineering I. - 1.2.7:
Algebraic structures in computer science. - 1.2.8:
Formal specification languages and their semantics. - 1.2.9:
Techniques of formal program development. - 1.2.10:
Advanced techniques for typical applications in computer science. - 1.2.11:
Logic-based programming languages. - 1.2.12:
Constraint-Programming Practice. - 1.2.13:
Software Construction. - 1.2.14:
Experimental software engineering. - 1.2.15:
Functional programming.
- 1.2.1:
- 1.3:
Regularly offered courses. - 1.4:
Former courses. - 1.5:
Topics for diploma theses, Master's theses and practical work.
- 1.1:
- 2:
Research. - 3:
Staff. - 4:
Contact.
Organisation
The first lecture is on Thursday, 2011-10-20 14:00 in O27/121.
Constraint programming
"Constraint Programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming: the user states the problem, the computer solves it." (E. Freuder)
Constraint-based programming has emerged as a clever combination of two logic-based paradigms: logic programming and constraint solving. Logic programming defines calculations by rules. Constraint solving in turn means solving problems by stating constraints (conditions, restrictions) that have to be satisfied by a solution and combining these constraints to narrow the search space before trying alternatives by search. Thus complex combinatorial problems can be treated efficiently and elegantly by combining constraint solving and searching.
The main application areas are resource planning, transport optimisation and layout generation. The worldwide turnover generated by applying this technology has been estimated at 100 million dollars for 1996 already.
This lecture introduces concepts that are standard in program analysis and artificial intelligence and gives an outlook on properties of future programming languages. The course deals both with formal and practical aspects and provides mature, up-to-date course material and free software online and in books for students who like abstraction and problem solving. The lecture has two main parts: constraint programming languages and constraint systems.
- constraint programming languages: constraint logic programming, concurrent constraint programming, Constraint Handling Rules
- constraint systems and their applications: terms, linear equations, finite domains, intervals
The exercises provide the opportunity to work with one of the most advanced constraint programming languages.
