Programming in Finance and Economics II
Programming in Finance and Economics I
Keen interest in programming and quantitative problem solving
Good knowledge of a programming language is a powerful tool for researchers and practitioners. It 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 in R and features introductions to Python, MySQL and the Linux operating system.
The course has the following goals:
- Advanced and well-organized R programming, including writing packages and collaborating on R projects
- Deploying programs in R and other languages in cloud and parallel computing environments
- Understanding advanced optimization algorithms
- Learning the basics of a second programming language: Python
- Setting up a data server using Linux and MySQL and creating a data science toolchain
- Learning how to use a no-code environment to create a mobile phone app without writing a single line of code
After this course, students should be able to collaborate on a complex empirical project in economics, finance or data science or create prototype software for a startup.
Description / Program
The course is structured along computational concepts, not applications. The topics include
- Setting up a personal data server in the cloud: Linux, SQL, Web scraping, APIs and Cron
- Nocode programming: Create a smartphone app using the Adalo platform
- Advanced programming: Create an R package and learn about collaboration, style, and tools such as git
- Outsourcing: how to write a program specification and communicate with professional programmers
- Python and the Internet of Things (IoT): how to make the first steps in a new programming language
- Advanced and stochastic optimization
- *Machine learning methods for textual data (optional, time permitting)
- *Algorithmic trading with Interactive Brokers. Setting up a paper trading system (optional, time permitting).
Learning Method - Style of Lessons
The course is organized in seven blocks of four hours. Each block introduces a new concept and employs learning-by-doing to move from theory to practice. Students start with a short tutorial or reading. 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. Grading is based on project work. Students perform small individual tasks (mostly writing summaries) and collaborate in groups on two or three larger programming projects.
33% Small individual tasks (write three one-page summaries)
67% Programming projects in small groups (two or three projects)
Students should bring a laptop with R and R Studio installed to all classes. Further software (Python, SQL, Terminal) will be installed together or will be used on a server.
Students will be required to purchase an IoT kit for approx. CHF 20.
Students will be required to purchase server space for approx. CHF 25.
Reading / Textbooks
To be discussed in the first lecture.