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

Язык программирования Python и социальные сети

Статус: Дисциплина общефакультетского пула
Когда читается: 3, 4 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 6

Программа дисциплины


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.
Цель освоения дисциплины

Цель освоения дисциплины

  • 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
Планируемые результаты обучения

Планируемые результаты обучения

  • 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.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • 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
Элементы контроля

Элементы контроля

  • неблокирующий Test 1. Statements, expressions, objects, operator
  • неблокирующий Test 2. Data: collecting and wrangling
  • неблокирующий Laboratory work. Data collection and preprocessing
  • неблокирующий Test 3
  • неблокирующий Individual project (written essay) with oral presentation
  • неблокирующий In-class Participation
  • неблокирующий Home tasks: all Python-related topics of the course
    The final score is the number of correctly done home tasks (10 tasks in total). Each task can be either correctly (1) or incorrectly done (0). These tasks will be checked automatically by Python unit tests (with predefined results) to exclude subjective assessment. «Excellent» (8-10): In total, 8-10 tasks have been done correctly. «Good» (6-7): 6-7 tasks have been done correctly. «Satisfactory» (4-5): 4-5 tasks have been done correctly. «Fail» (0-3): 0-3 tasks have been done correctly.
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (4 модуль)
    0.2 * Home tasks: all Python-related topics of the course + 0.2 * In-class Participation + 0.175 * Individual project (written essay) with oral presentation + 0.15 * Laboratory work. Data collection and preprocessing + 0.05 * Test 1. Statements, expressions, objects, operator + 0.1 * Test 2. Data: collecting and wrangling + 0.125 * Test 3
Список литературы

Список литературы

Рекомендуемая основная литература

  • 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

Рекомендуемая дополнительная литература

  • 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.