• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Python Programming Language and Social Networks

Учебный год
Обучение ведется на английском языке
Курс по выбору
Когда читается:
1-й курс, 3, 4 модуль


Пашахин Сергей Витальевич

Course Syllabus


Python is one of the most popular and rapidly developing programming languages. A clear syntax which facilitates learning and a plethora of built-in and third-party libraries made Python especially popular among academics and researchers of all kinds. Python has already been the first-choice language in Machine Learning and Data Science for a while, but as far as Social Sciences are becoming more digitally-oriented it is getting in demand by sociologists, economists, linguists, and other social researchers. This course is created for students who want to learn how to solve real-world data-related problems with Python programming environment but have no experience in programming. The course syllabus covers most of Python functionality from basics syntax to the modern libraries for machine learning and data analysis. The course will explore main conceptual, theoretical and methodological approaches related to Social Network Analysis (SNA). Part of the course will be practical training in SNA research methods and techniques.
Learning Objectives

Learning Objectives

  • Being able to write Python programs covering basic need of data scientist.
  • Understanding basic concepts of social network analysis
  • Understanding how networks can contribute to the explanation of specific social, political, economic and cultural phenomena
  • Mastering basic skills of working with SNA software Gephi, Pajek, R packages
  • Acquaintance with biblographic network analysis software VosViewer, CitNetExplorer
Expected Learning Outcomes

Expected Learning Outcomes

  • Able to evaluate and revise learned scientific methods and methods of activity.
  • Able to store and manage data.
  • Able to retrieve data from open statistical databases, archives, and other public sources.
  • Able to analyze and visualize data with Python.
  • Able to independently master new research methods, change the scientific and production profile of their activity.
Course Contents

Course Contents

  • Python for data analysis: overview
    a. Installing python b. Console and Python interpreter c. Command prompt and modules/scripts d. Editor
  • Scientific computing with Python: managing data, code, and result
    a. Scientific computing: the three “R”s b. Organizing a computational project c. Virtual environment
  • Writing code: statements and modules
    a. Statements, expressions, objects, operator
  • Data wrangling: numpy and pandas
  • Data collection: web scraping and APIs
  • Visualizing data: matplotlib and seaborn
  • Data preprocessing and modeling: scikit-learn
  • Python for Social Network Analysis
  • Network terminology and metrics. Describing, visualising and analysing networks. Software: Pajek, Gephi, R.
    1) Network terminology and basic concepts Definition of a network. Nodes (vertices) and links (arcs, edges). Directed and undirected relations. Representation of social relations as graphs. How to record network data: adjacency matrix, edge list, node list. 2) Network structure: centrality Egonetworks, k-neighbors. Centrality measures: in/out degree centrality; betweenness; closeness; eigenvector, Katz & PageRank. Centrality vs. centralization. Degree distribution and centralization measures. 3) Social capital What is social capital? Definitions of P.Bourdieu, J.S.Coleman, R.D.Putnam, A.Portes. Bonding and bridging; social capital formation; social capital and economic development. World Bank's programs with emphasis on social capital. Operationalization and measures of social capital. 4) Network structure: components and communities. Weak, strong, and giant components. Diffusion of information in networks. Real life examples. Network modularity. Community detection algorithms: local and global definitions, vertex dissimilarity. Clustering: hierarchical, partitional, spectral. Communities in real-life networks.
  • Network in bibliometrics: using SNA for bibliographic search and analysis. Software: VosViewer and CitNetExplorer
    5) Networks in bibliometrics. Two-mode (bimodal) networks. Affiliation matrix. Weighted networks. Bibliometric networks: co-citation, bib-coupling, co-authorship. Journal networks. Timeline in bibliometric analysis.
  • Network theory and applications. Network models. Software: Pajek, Gephi, R
    6) Network models: Random graphs (Erdos-Renuy), Small world, Preferential attachment (Power law). Network characteristics: shortest path, clusterization coefficient, degree distribution. 7) Diffusion of information in networks. Opinion formation. Social movements. Recruiting through networks. 8) Project presentations 9) Test
Assessment Elements

Assessment Elements

  • non-blocking Test 1. Statements, expressions, objects, operator
  • non-blocking Test 2. Data: collecting and wrangling
  • non-blocking Laboratory work. Collecting data online
  • non-blocking Test 3
  • non-blocking Individual project (written essay) with oral presentation
  • non-blocking In-class Participation
Interim Assessment

Interim Assessment

  • Interim assessment (3 module)
    0.4 * Laboratory work. Collecting data online + 0.3 * Test 1. Statements, expressions, objects, operator + 0.3 * Test 2. Data: collecting and wrangling
  • Interim assessment (4 module)
    0.4 * In-class Participation + 0.35 * Individual project (written essay) with oral presentation + 0.25 * Test 3


Recommended Core Bibliography

  • McKinney, W. (2018). Python for Data Analysis : Data Wrangling with Pandas, NumPy, and IPython (Vol. Second edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1605925
  • Scott, J. (DE-588)132315661, (DE-576)299070239. (2009). Social network analysis : a handbook / John Scott. Los Angeles [u.a.]: Sage. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edswao&AN=edswao.307646734

Recommended Additional Bibliography

  • Bernard, J. (2016). Python Recipes Handbook : A Problem-Solution Approach. [United States]: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1174476
  • Downey, A. (2012). Think Python. Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=477161
  • Hajba G.L. Website Scraping with Python: Using BeautifulSoup and Scrapy / G.L. Hajba, Berkeley, CA: Apress, 2018.