  Community structure is one of the most relevant features encountered in
numerous real-world applications of networked systems. Despite the tremendous
effort of scientists working on this subject over the past few decades to
characterize, model, and analyze communities, more investigations are needed to
better understand the impact of community structure and its dynamics on
networked systems. Here, we first focus on generative models of communities in
complex networks and their role in developing strong foundation for community
detection algorithms. We discuss modularity and the use of modularity
maximization as the basis for community detection. Then, we overview the
Stochastic Block Model, its different variants, and inference of community
structures from such models. Next, we focus on time evolving networks, where
existing nodes and links can disappear and/or new nodes and links may be
introduced. The extraction of communities under such circumstances poses an
interesting and non-trivial problem that has gained considerable interest over
the last decade. We briefly discuss considerable advances made in this field
recently. Finally, we focus on immunization strategies essential for targeting
the influential spreaders of epidemics in modular networks. Their main goal is
to select and immunize a small proportion of individuals from the whole network
to control the diffusion process. Various strategies have emerged over the
years suggesting different ways to immunize nodes in networks with overlapping
and non-overlapping community structure. We first discuss stochastic strategies
that require little or no information about the network topology at the expense
of their performance. Then, we introduce deterministic strategies that have
proven to be very efficient in controlling the epidemic outbreaks, but require
complete knowledge of the network.
