Network science has emerged as a branch of study focussing interest on the connectivity interactions between elements of a system. The most central object of study in network science are the so-called complex networks. Complex weblike structures describe a wide variety of systems of high technological and intellectual importance. For example, the cell is best described as a complex network of chemicals connected by chemical reactions; the Internet is a complex network of routers and computers linked by various physical or wireless links; fads and ideas spread on the social network, whose nodes are human beings and whose edges represent various social relationships; the World Wide Web is an enormous virtual network of Web pages connected by hyperlinks. These systems represent just a few of the many examples that have recently prompted the scientific community to investigate the relationship between the topology of complex networks and the dynamics that take place on them. A complex network is just a graph with several non-trivial topological properties, not present in simple models of networks. Some of them are: scale-free degree distributions, high clustering coefficients (i.e. more triangles than expected in a random network), assortativity (correlations between connected nodes’ degrees), and community structure. On the contrary, simple graphs such as random networks or grids show a homogeneous structure in which all nodes are almost indistinguishable, unlike what is observed in real networks. In this course we will review the state-of-the-art in network science and put focus on the applications, and open problems faced so far.