Programming multi-agent systems. (3rd September 2015)