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 I, this course uses mostly R, but adds other tools where useful and necessary.
The course has the following goals:
- Learn how to collaborate on R programs, write packages and contribute to the open source community
- Learn how to deploy programs in cloud and parallel computing environments
- Understand advanced optimization algorithms
- Learn how to set up a data server and create a data science toolchain
- Learn the basics of a second programming language: Python
After this course, students should be able to collaborate on a complex empirical project in finance and/or data science.
Description / Program
The course is structured along computational concepts, not applications. The topics include
- Advanced programming: Style, Organization, collaboration, deployment
- Advanced elements of the R language: packages and parallel computing
- Open source software and collaborative development using git
- Advanced and stochastic optimization
- Setting up a data server in the cloud: Linux, SQL, Web scraping, APIs
- From raw data to result – Setting up a replicable data science toolchain
(finding, storing, validating, selecting, visualizing and modelling data)
- Python and the Internet of Things (IoT): how to make the first steps in a new programming language
- *Machine learning methods for textual data (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 short tutorial or reading before each class (flipped classroom). 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 three larger programming projects.
33% Small individual tasks
67% Programming projects in small groups
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 15-25.
This class is generously supported by Datacamp.
To be discussed in the first lecture.