In the wake of the digital revolution, masses of Digital Behavioral Data (DBD) are becoming available for social research. Typically, this data has a relational dimension. As a consequence, network analysis is becoming increasingly important as a social science method. The social networks constructed from DBD, however, are much larger than the small-scale structures classically studied in the past. They give rise to higher-order structures and functionalities (complexity) that spring from lower-order processes. Plus, DBD typically allows for the analysis of the dynamics of these so-called complex networks. In this course, we present a basic understanding of social relations, the structures and dynamics which they collectively self-organize into, and how network methods and programming in Python can be deployed in practical application scenarios. Following an introduction to data formats, network construction, and plotting, the first day covers node-level measures such as centrality. The second day deals with community detection and stochastic blockmodeling, the main classes of methods at the meso-scale of analysis. The third day focuses on macro-scale structures and dynamics. It covers the small-world and scale-free properties that make networks complex and why these are relevant for the social sciences. The fourth day is dedicated to simulations of social mechanisms (network generation) and dynamics on networks. The last day is reserved for group projects. The program plan alternates between demonstrations and exercises. The former presents the theoretical and technical background of network analysis, while the latter allows participants to apply acquired knowledge with code directly.

Participants will obtain profound knowledge of relational methods integrated with social theory. The course includes material typically taught in Social Network Analysis classes but goes beyond it regarding the topic of complexity. Hence, it is aimed at scholars who are interested in the potential of BDB and how networks can be analyzed in an interdisciplinary way. Throughout the course, the Python libraries are used that are most suited for the respective analysis task. For example, community detection will be done with networkx while graph-tool is the library of choice for stochastic blockmodeling. To ease access to network analysis, well-known, also small, datasets are used. Participants are strongly encouraged to bring their own datasets to be analyzed in group projects or during the course.

Participants should be willing to study algorithmic approaches on abstract and applied levels. An affinity to computational approaches to research as well as a basic understanding of statistics are highly recommended. Previous knowledge on network analysis is helpful but not necessary. Previous knowledge on programming in Python or another programming language (like R, Java) is advantageous but not necessary to follow the coursework. Big Data Module I offers – besides an introduction to data science – a general introduction to data handling that is also beneficial for network analysis, but taking that course is not necessary for this one. To ensure a common starting level between participants, we expect attendants to familiarize themselves with the most basic concepts of Python such as variables and tables via provided learning materials beforehand. A mini refreshment of basic Python commands will be offered at the beginning of the course. Please note that participants have to bring their own laptop for this course. All utilized software is available without cost as open source under Windows, MacOS, and Linux systems. Detailed installation instructions for the suggested development environments will be provided before the start of the course.