Multi-Agent Systems are a promising technology to develop the next generation open distributed complex software systems. The main focus of the research community has been on the development of concepts (concerning both mental and social attitudes), architectures, techniques, and general approaches to the analysis and specification of multi-agent systems. This contribution has been fragmented, without any clear way of 'putting it all together', rendering it inaccessible to students and young researchers, non-experts, and practitioners. Successful multi-agent systems development is guaranteed only if we can bridge the gap from analysis and design to effective implementation. "Multi-Agent Programming: Languages, Tools and Applications" presents a number of mature and influential multi-agent programming languages, platforms, development tools and methodologies, and realistic applications, summarizing the state of the art in an accessible manner for professionals and computer science students at all levels.