The course offers a response to the increasing demand for understanding of networks - large-scale and complex dynamical systems that are created by interconnecting components and subsystems. We will not restrict ourselves to one physical or technological domain. Quite the opposite, we will analyze the network-related phenomena found in several domains, including societal, economic, or biological. We will analyze the fundamental similarities among flight control of formations of unmanned aerial vehicles, tigh distance regulation in platoons of trucks on highways, generation and distribution of energy in smart grids, realization of a phone call in a cellular phone network, manipulation of a community through Facebook, or even forecasting the epidemics spread over a globe. For such networks, the resulting behavior is given not only by the individual components and subsystems but also by the way in which they are interconnected (topology of the network). Understanding these issues goes far beyond the boundaries of individual physical and technological or scientific domains. In the first part of the course we will introduce fundamental theoretical and computational concepts for analysis of networks, in particular, we will introduce basics of algebraic graph theory and network algorithms. In the second half of the course we will view the network as a dynamic system and we will study its properties and the ways in which these properties can be affected (controlled). We will use the methodologies from the automatic control theory. Finally, we will introduce some interesting tools for analysis and synthesis of networked systems such as wave and scattering description and distributed optimization.