Search for contacts, projects,
courses and publications

Programming in Finance and Economics II

People

Gruber P.

Course director

Description

 Good programming knowledge is a powerful tool for researchers and practitioners. While AI pair programming makes us more efficient, it still requires basic knowledge of computing. Programming is also a valuable skill in the labor market. This course introduces the students to advanced and powerful programming techniques. Building upon the foundation of Programming in Finance and Economics I, this course expands the students' capabilities.

The course is structured along computational concepts, not applications. The topics are:

  1. Outsourcing in the age of AI (transversal topic during the entire semester)
  2. Setting up a personal data server in the cloud: Linux, SQL, Web scraping, APIs and Cron
  3. Advanced programming: Create an R or Pyhton package while learning about licenses, collaboration, style, and tools such as git
  4. Large Language Models: usage, limits, curating training data and fine-tuning models 
  5. Algorithmic trading
  6. Writing smart contracts on the Algorand blockchain
  7. Nocode programming: Create a smartphone app using the Adalo platform

 

Requested Material

Students should bring a laptop to all classes with R, Rstudio, Anaconda, Python, Jupyterlab and Visual Studio Code installed. Further software will be installed together or will be used on a server.

Porgramming will mostly happen in Python, with occasional use of SQL, bash (Linux) and R.

Students may be required to purchase server space for approx. CHF 25/year for one project.
Students may be required to pay for outsourcing services for one project.
Students will need a (free) license for Github Copilot and at least a free ChatGPT account.

This class is generously supported by Datacamp  and Adalo.
 

Objectives

The course has the goal to deepen the programming skills of students and to empower them to continue deepening their capabilities on their own. After this course, students should be able and confident to collaborate on a complex empirical project in economics, finance or data science or to create prototype software for a startup.

In detail, the course has the following objectives

  • Move from barely solving problems with the computer to advanced and well-structured programming
  • Profiting from AI copilots and natural-language coding
  • Add new languages and tools to the students' toolbox, including the LINUX toolstack
  • Introduce students to important concepts such as databases or the blockchain
  • Learn how to choose the appropriate programming environment, including nocode programming
  • Learn how to plan, manage, deploy and evaluate IT projects

Teaching mode

In presence

Learning methods

The course is organized in seven blocks of four hours. Each block is dedicated to one topic, with outsourcing being an additional transversal topic.

troduces a new concept and employs learning-by-doing to move from theory to practice. Students start with a short video tutorial and reading material before the course starts. The course block itself starts with a presentation of a new concept. Next, we study a sample program that illustrates this concept and try to understand the underlying ideas. Most of the time will be devoted to discussing practical implications and implementation details.

The goal of the lessons is not to cover every detail of a topic but rather to get students started with a new concept and to lay the foundations that allow them to deepen independently the topic.

Examination information

Grading is based on project work. Students perform the following.

Part 1: One individual write-ups (33%)

  • One page: choose among several topics in the area of software development  
  • Write a one-page summary to one topic
  • Give a 5-min presentation to another topic
  • Criteria: completeness, own contribution + insights, structure+readability, convincing presentation

Part 2: Group work on two projects (total 67%)

  • Collaborate in groups on two larger programming projects.
  • Criteria: correctness+completeness, programming style, quality of documentation, difficulty/complexity/comprehensiveness, creativity of the solution

Education

Prerequisite