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.

Much of the interesting data in the social sciences consists of text, images, and time series. Think of political speeches, fMRI images, and ERP measures. Our understanding of this data has grown because of advances in machine learning, in particular deep learning. In general terms, machine learning algorithms learn rules or data representations that help us reconstruct outputs from a set of inputs. Deep learning entails the use of successive layers of representations to learn patterns from data. Feed forward, convolutional, recurrent, and other types of artificial neural networks are at the heart of deep learning and are revolutionizing data science. This course is about those algorithms and their uses in image recognition, natural language processing, time series analysis, and unsupervised machine learning. We discuss the theory behind the methods and then use Python and various Python libraries to work through examples of deep learning.

Deep learning algorithms are everywhere—on the Internet, on your cell phone, in business, and in science. These algorithms play a crucial role in the analysis of images, text, video, and time series, among numerous other applications. In this course, you will learn the most fundamental algorithms in the aforementioned areas, to wit autoencoders, convolutional, feed forward, generative adversarial, and recurrent neural networks. You will learn how these algorithms work, how they can be applied, and how they can be programmed using Python. The course is hands-on and problem driven. Using images, text, and time series as the basic data, you will learn how to build appropriate models, program, and evaluate them. Of course, we need to delve into some statistical theory but only to the extent needed to understand the algorithms and their outputs.

The course starts by introducing the data, the research problem, and the algorithm in the morning session. The afternoon session is dedicated to programming.


At the end of the course, you should have mastered the following milestones:

  1. Understand what deep learning is.
  2. Understand basics of optimization theory, as well as mathematical constructs such as tensors.
  3. Understand how to prepare your computer for deep learning.
  4. Understand the theory behind autoencoders, convolutional, feed forward, generative adversarial, and recurrent neural networks.
  5. Understand how these algorithms can be used to analyse images, text, and time series data.
  6. Know how to program basic algorithms using Python.


Course Objectives

By the end of the course, you should understand key algorithms of deep learning, including feed forward, convolutional, recurrent, and generative adversarial networks, as well as autoencoders. You should also be familiar with basic optimization theory and tensors. In addition, you should have developed some hands-on experience in programming in Python, using KERAS and Tensorflow.[1]

[1] Important: This is not a programming course in Python. While you will learn some basic programming concepts, this course does not come close to covering the variety of topics that make up a standard Python programming course.


This is an advanced course in machine learning. The successful completion of an introductory course in data science, machine learning, or statistical learning is highly recommended. Prior experience with Python is not required. However, prior experience with programming in statistical software like R is recommended.

Representative Background Readings

Chollet, François. 2021. Deep Learning with Python. Manning, 2nd edition. (The course will use this as the background reading.) (this will be provided by ESS)


Background knowledge required:


Calculus – Moderate

Linear Regression – Elementary


OLS – Elementary

Maximum Likelihood – Elementary


Python  – Elementary






You should install Python on your computer. We shall discuss how to setup your computer for the course on the first day of the course.






Day 1

Introduction to Deep Learning

Chollet, Chapters 1-6.

Setting up your computer. Some basic concepts of Python programming.

Day 2

Convolutional neural networks.

Chollet, Chapters 7-9.

Analysis of images.

Day 3

Recurrent neural networks.

Chollet, Chapter 10.

Analysis of time series.

Day 4

Natural language processing.

Chollet, Chapter 11.

Analysis of text.

Day 5

Unsupervised Learning

Chollet, Chapter 12.

Autoencoders and generative adversarial networks.