GESIS Training Courses

Scientific Coordination

Marlene Mauk
Tel: +49 221 47694-579

Administrative Coordination

Noemi Hartung
Tel: +49 621 1246-211


Introduction to Computational Social Science with Python

Mannheim B6, 4-5
Course duration:
09:00-16:00 CEST
General Topics:
Course Level:
Software used:
Students: 500 €
Academics: 750 €
Commercial: 1500 €
Additional links
Lecturer(s): Milena Tsvetkova, Patrick Gildersleve

About the lecturer - Milena Tsvetkova

About the lecturer - Patrick Gildersleve

Course description

The course provides an introduction to the basic computational tools, skills, and methods in Computational Social Science using Python. Python is the most popular programming language for data science, used widely in both academia and the industry. Students will learn to use common workflow and collaboration tools, design, write, and debug simple computer programs, and manage, summarize, and visualize data with common Python libraries. The course will employ interactive tutorials and hands-on exercises using real social science data. Participants will work independently and in groups with guidance and support from the lecturers. The practical exercises are designed to demand more autonomy and initiative as the course progresses over the five days, culminating in an open-ended group project in the last afternoon session.
For additional details on the course and a day-to-day schedule, please download the full-length syllabus.

Target group

Participants will find the course useful if they:
  • have no or limited technical and computational background
  • have a background in one of the social sciences (sociology, political science, psychology, etc.)
  • would like to pursue research or a professional career in computational social science or social data science (e.g., in academia, think tanks, government, NGOs, social media companies, tech startups)

  • Learning objectives

    By the end of the course participants will:
  • possess an understanding of the tools, methods, tasks, and goals of Computational Social Science
  • design procedures and algorithms to solve data analysis tasks
  • write simple programs in Python
  • work confidently with pandas, matplotlib, seaborn, and other popular Python modules and libraries for data science
  • use bash, Jupyter Notebook, and GitHub to write, run, collaborate on, and share programming code
    Organisational Structure of the Course
    The course will consist of two three-hour-long sessions each day. The morning session will use interactive instruction to introduce participants to the topic, demonstrate the new methods, and facilitate discussion. The afternoon session will make use of guided hands-on exercises with real-world data to practice the new material. Participants will work individually, in pairs, and in groups, and the lecturers will be available throughout both sessions for consultation and support.


    This is an introductory course, and no prior experience with programming is required. Basic understanding of statistics and some scripting experience (e.g., from building web pages or statistical analysis programs such as Stata or R) will be helpful but not needed.
    For those who would like a primer or refresher in Python, we recommend taking the online workshop “Introduction to Python” that takes place from 04-06 September 2023.
    Software and hardware requirements
    Participants require a laptop computer with Anaconda and git installed. Some time will be allocated on the first day of the course to install Anaconda and git.
    Monday, 11.09.
    What is CSS?
  • Data, methods, and questions
  • Accountability, reproducibility, and ethics
  • Setting up your workflow
  • Installing Python with Anaconda
  • Introduction to Jupyter Notebooks
  • Introduction to Bash and GitHub
  • Introduction to programming with Python
  • Scalar data types, operators, and expressions
  • Variable assignment, printing, and comments
  • Non-scalar data types, indexing, and slicing
  • List and string methods
  • Tuesday, 12.09.
    Understanding control flows
  • Conditionals
  • Iteration
  • List comprehensions
  • Abstraction and decomposition with functions
  • Function specifications
  • Function arguments
  • Variable scope
  • Object-oriented programming with classes
    Modules and libraries
    Wednesday, 13.09.
    Handling social data
  • Ethics of data access
  • Reading and writing common file types
  • More complex data types: time and dates, Unicode, etc.
  • Accessing web data
  • Inspecting webpages
  • Parsing static HTML with BeautifulSoup
  • JSON and working with APIs
  • Text analysis with nltk
    Thursday, 14.09.
    Introduction to pandas
  • Creating DataFrames
  • Accessing and filtering data
  • Computing summary statistics
  • Reading and writing data
  • Manipulating pandas DataFrames
  • Handling different data types
  • Combining data from different tables
  • Applying functions to DataFrames
  • Creating basic plots using pandas
  • Machine learning with scikit-learn
    Friday, 15.09.
    Basics of visualization
  • Understanding plot elements
  • Choosing the right chart
  • Principles of color
  • Plotting data with Matplotlib and Seaborn
  • Basic plotting in Python
  • Pyplot vs the object-oriented approach
  • Customising plots and figures
  • Attractive plots with Seaborn
  • Network analysis with networkx

    Recommended readings