Please note: This course will be taught in hybrid mode. Hybrid delivery of courses will include synchronous live sessions during which on campus and online students will be taught simultaneously.

Marco Steenbergen has been a professor of political methodology at the University of Zurich since 2011. Prior to that, he held appointments at the University of Bern, the University of North Carolina at Chapel Hill, and Carnegie Melon University. Marco’s research covers methodology, as well as political psychology. He has published several books and articles in these areas. His current research focuses on electoral consideration sets, cleavages and identities, and new forms of political participation.

Catarina is a doctoral candidate at the Chair for Political Methodology under Prof. Dr. Marco Steenbergen’s supervision and is working on the project “Large-Scale Political Participation: Issue Identification, Deliberation, and Co-creation”. She received a master’s degree in International Studies, with a focus on political polarization in text-as-data, from ISCTE (Portugal) in 2022. She has an engineering background with a bachelor’s and master’s degree in Biomedical Engineering from IST (Portugal) and the University of Twente (Netherlands). In addition to her studies, she worked as a Data Scientist in the industry and as an assistant professor of data mining, machine learning, and deep learning at ISEG University (Portugal). Her main interests are in the areas of political representation, deliberative democracy, and computational social science.

Course Content

Images and text are among the most common data materials in the social and behavioural sciences, Over the past two decades, our ability to learn patterns in these types of data has grown by leaps and bounds thanks to advances in deep learning. Deep learning methods engage layers of hidden nodes to extract data representations. They play a crucial role in natural language processing, image processing, and the analysis of video. As such, they are quickly becoming an indispensable tool in the social and behavioural sciences for the classification of texts, images, and videos.

In this course, you will get hands on experience in programming deep learning algorithms in Python. After learning the basics of Python and deep learning, we will build our own classifiers and use state-of-the-art pre-trained models. A focus will be given to convolutional neural networks for images and transformers and embeddings for natural language processing. After describing the logic and architecture of the algorithms, you will have a chance to gain hands-on experience programming them using Python under the supervision of expert programmers.

Course Objectives

    1. To learn the basic principles of Python programming.
    2. To learn the foundations of deep learning, including activation functions, network topologies, computational graphs, and optimization.
    3. To learn the most common deep learning algorithms for text analysis.
    4. To learn the most common deep learning algorithms for vision.
    5. To lay a solid foundation in deep learning that allows you to keep up in a rapidly changing field.

Course Prerequisites

Prior knowledge of Python is not required; the course will teach the basic essential skills. However, prior familiarity with analyzing data (preferably using R) is a must. Additionally, having had prior exposure to machine learning and its validation strategies is highly recommended.

Required textbook

Chollet, François. 2021. Deep Learning with Python. Shelter Island, NY: Manning Publications. 2nd edition. ISBN: 978-1-61729-686-4. (This booked will be provided by ESS.)


This course will be taught using Python. We will be working in the cloud using the Google Colab. In that way, there is less risk of over-burdening your own computer.

Background knowledge required:


Calculus – Elementary

Linear Regression – Elementary


OLS – Elementary

Maximum Likelihood – Elementary


Python  – Elementary

R – Moderate






This course will be taught using Python. We will be working in the cloud using the Google Colab. In that way, there is less risk of over-burdening your own computer.



10.00-10.45          Theory: Introduction to deep learning.

10.45-13 .00          Practice: Setting up Google Colab; basic Python skills.

13.00.-14.00         Lunch.

14.00-16.00          Practice: Advanced Python skills.

16.00-17.45          Practice: Data wrangling with Python.


10.00-13.00          Theory: Multi-layer perceptrons (MLPs); tensors; computational graphs.

13.00-14.00          Lunch.

14.00-15.30          Theory: Optimization and backpropagation.

15.30-17.45          Practice: MLPs.


10.00-11.00          Theory: Visual data.

11.00:13.00          Convolutional neural networks (CNNs) I.

13.00-14.00          Lunch.

14.00-15.00          CNNs II.

15.00-17.45          Practice: CNNs with image data, including data preparation.


10.00-11.00          Theory: Text data.

11.00-13.00          Theory: Embeddings (Glove).

13.00-14.00          Lunch.

14.00-16.00          Practice: Embeddings (Glove).

16.00-17.45          Theory: Transformers I.


10.00-11.30          Theory: Transformers II.

11.30-13.00          Practice: Transformers I.

13.00-14.00          Lunch.

14.00-16.00          Practice: Transformers II.

16.00-17.45          Recent developments.