Logo

4,222 Introduction to Programming

Lecture 1: Introduction

Dr. Franziska Bender, Dr. Aurélien Sallin

2026-02-20

Welcome!

The reality of economics research and work

Whether you’re working with data or with economic models, …

  • You will write code and documents on your own machine.
  • You will collaborate with colleagues, for your thesis, research projects, and in industry.
  • You will share, publish and reuse your code.

… and …

  • Someone else will need to run your code, understand it, and build on it.

This course is about programming…

  • Learning a programming language like Python,
  • Writing code that works on your machine,
  • Solving problems with models or data
… are the A-B-C of an economist’s toolkit.

… and programming the right way

Learning to program in a way that is reproducible, reusable and collaborative is the next step
  • Design and execute projects in a systematic and reproducible way.
  • Write code that is reusable, maintainable and easy to share.
  • Apply collaborative code development practices.

Skills you’ll develop in this course

  • Write modular code, document functions, implement error handling.
  • Collaborate using Git and version control, manage shared code.
  • Structure data in relational databases and query with SQL for systematic data workflows.
  • Produce code that works not just on your machine, but in settings like a research team or industry data job.

Let’s get to work!

  • Learn essential programming practices in Python.
  • Build tools using object oriented programming.
  • Learn git and github.
  • Learn SQL and relational databases.

At the end of this course, you will be able to produce structured and impactful work as an economist.

This course is introductory, and it is not…

Introductory yes ✅, but not in the traditional sense of the term ❌.

  • Learning a new programming language (Python) has become comparatively easier.
  • We will cover the basics of Python, but always with the goal of learning to program in a way that is reproducible, reusable and collaborative.
  • All of you know R because of Data Handling, many of you did DSF, you are learning Econometrics this semester: an introduction to programming is beyond the point.
  • We want you to develop a mindset!

Fair warning

  • Version 1.0 of this course. This is the first time we give this course.
  • Materials and syllabus are brand new.
  • We will be learning and improving the course together with you.

About us

The team - here for your learning


Franziska
Bender
Aurélien
Sallin
Lea
Tschan
Andrija
Lukovic
Valentina
Sontheim
Johannes
Cordier

Course structure and syllabus

Course concept: lectures

  • 11 Lectures + Exam (Friday morning)
    • Background/Concepts
    • Some classes will be focused on programming together, others will be more theoretical.

Course concept: exercises

  • 8 weekly exercise sessions
    • Hands-on exercises/tutorials with exercise sheets handed out every other week
    • Two groups, 4 teaching assistants. One assistant leads the session, the other one assists you personally.
    • Starts at 12:30 without break until 14:00.


  • Q&A sessions for the group project: 08.05.2026 and 15.05.2026.

Course structure: part 1

Set up your environment, learn to work together with version control and git.
Lecture Topic Instructor Date Date Exercise
Lecture 1 The big picture. Set up your environment. Aurélien & Franziska 20.02.2026 20.02.2026
Lecture 2 Working together: intro to version control and git Aurélien 27.02.2026 27.02.2026
Lecture 3 Working together: more about version control and git Aurélien 06.03.2026 06.03.2026

Course structure: part 2

Learn Python from basics to classes, error handling, documentation, and debugging.
Lecture Topic Instructor Date Date Exercise
Lecture 4 Intro to python Franziska 13.03.2026 13.03.2026
Lecture 5 Python for Data: Pandas and Matplotlib Franziska 20.03.2026 20.03.2026
Lecture 6 Python for Data: Pandas and Matplotlib Franziska 27.03.2026 27.03.2026
Break
Lecture 7 Python: Introduction to Classes (OOP) Franziska 17.04.2026 17.04.2026
  Publication of group project, deadline for group formation 20.04.2026
Lecture 8 Error Handling, Documentation, Debugging Franziska 24.04.2026 24.04.2026

Course structure: part 3

Learn about databases, SQL, and DevOps practices.
Lecture Topic Instructor Date Date Exercise
Lecture 9 Short overview of databases and relational database management systems Aurélien 01.05.2026 01.05.2026
Lecture 10 Devops, Continuous Integration Aurélien 08.05.2026 Q&A Session, 08.05.2026
Lecture 11 Conclusion, Q&A, Case Study Aurélien & Franziska 15.05.2026 Q&A Session, 15.05.2026
  Submission Group Project 20.05.2026, 23:59
Lecture 12 Exam Aurélien & Franziska 22.05.2026 No exercise session

Examination

Exam information: Group project

Goals

The goal of this project is to move beyond simple scripts and build a reusable Python tool for economic analysis. Working in groups, you will identify an economic question, source a relevant dataset, and build a Python class that automates the cleaning, analysis, and visualization of that data.

You will be submitting a collaborative Git repository including the tool you developed and two Quarto (.qmd) documents: A Research Brief (the results) and a User Manual (the instructions) so that anyone can pick up your tool and use it instantly.

You will get more Information on what we expect throughout the course, and a fact sheet on April, 20th

Exam information: Project timeline

  • April 20th: Deadline for group formation. Group of five people (groups are created on Canvas, you can create your own groups, and incomplete groups will be reassigned and/or filled by the instructors if needed).
  • May 20th, 23:59: Submission.

Exam

  • May 22nd, 10:15: Exam.
  • Questions about project and course. Multiple choice for lectures, and essay questions to the group project.
  • You don’t need to write code, but you need to understand code and interpret it.

The tools

Core course resources

  • Everything on Canvas, then on github
  • Only one Canvas page
  • Questions only through the Canvas forum!

Contact for personal questions only!

  • Aurélien: until the break
  • Franziska: after the break.
  • Do not contact the assistants regarding organisational questions.

Let’s start!