PhD course: Distributed applications with automata and choreographies