A Tutorial on Synthesis of Logic Programs from Specifications