Teaching

Machine Learning for the Sciences (6 ECTS)

Machine learning algorithms enjoy a large and increasing number of technological applications. They help us to extract relevant information from big datasets and transform the way we interact with machines. In the sciences, machine learning emerges as a more and more routinely used tool with applications in physics, geography, medicine, chemistry, biology and more. This course offers an introduction to the basic concepts, including supervised and unsupervised learning with neural networks and methods to make the learned results interpretable. The material will be presented with scientific research applications in mind, where data has often very peculiar structure and quantitative accuracy is paramount. In the exercise class, examples will be implemented with openly available machine learning libraries.

Course catalogue

AI4Good (6 ECTS)

Given a specific problem in the environmental sciences, global development or similar, students will learn to self-responsibly design, implement and experimentally evaluate a suitable solution. Students will also learn to critically evaluate their ideas and solutions together with all course members in a broader context that go beyond mere technical solutions, but touch on ethics, local culture etc., too. The organizers of the course will make sure that only those problems are selected that are suitable for a machine learning approach and where sufficient amounts of data (and labels) are available. Students will organize themselves into small groups of 3-5 students, where each group works on solving a specific problem. Students will spend the semester on designing, implementing, and testing suitable solutions using machine learning. Every two weeks, each group will present ideas and progress during a short presentation followed by a discussion with all course members. At the end of the course, students will present their final results and submit source code. In addition, they will describe the developed method in form of a scientific paper of 8 pages. Grading will depend on the source code, the paper, and active participation in class.

Course catalogue

Introduction to Machine learning for Plant Scientists (1+2 ECTS)

This course will introduce machine learning with emphasis on plant sciences. We will discuss topics like data pre-processing, feature extraction, clustering, regression, classification and take some first steps towards modern deep learning. The course will consist of 50% lectures and 50% hands-on programming in python, where students will directly implement learned theory as a software to help solving problems in plant sciences.

Course catalogue

Scientific writing in English for doctoral students (1 ECTS)

This two-day block course is aimed at early doctoral students within the first two years after starting their doctorate. It is an intensive course covering all central aspects of writing scientific papers in English to equip students with all necessary insights and skills to write their first scientific paper. The course is particularly tailored for doctoral students with a technical background, like engineering, or computer science. Topics covered are academic integrity, scientific writing, scientific English, giving and receiving feedback, information research, project and time management. The course is designed as an interactive writing laboratory, where students give each other feedback and support.

Course catalogue

GIT4Academia (1 ECTS)

This two-day block course is aimed at doctoral students looking to enhance their version control and collaboration skills. Spanning multiple parts, the course covers the essential elements and tools of Git, offers insights into fundamental collaboration principles, and presents practical workflows that leverage Git components to support adherence to these principles. Students will become familiar with development cycles and branching strategies and how they integrate with project management tools provided by remote services such as GitLab or GitHub. In the second part, the course introduces automation techniques (CI/CD) commonly used in professional software development. It explores how automation, in combination with version control and virtualization techniques like Docker containers, can enhance reproducibility and code quality in computational projects. All sections are accompanied by hands-on examples and exercises, providing practical experience and ensuring that students can effectively apply their new skills in real-world scenarios. At the end of this 2-day seminar, participants will be equipped with the skills to utilize Git and remote services for effective collaboration and project management, fostering professional practices applicable beyond the scientific realm. They will understand how these tools can enhance their ability to produce high-quality, reproducible scientific work.

Course catalogue

Practical Scientific Computing (1 ECTS)

This two-day block course is designed for doctoral students who want to improve their practical skills in large-scale CPU and GPU-based computations.

The course provides essential knowledge to navigate the landscape of hardware and tools commonly used in resource-intensive scientific tasks, with a focus on the infrastructure available at UZH. It offers a practical introduction to best practices for project structure and coding style to facilitate the use of the previously introduced tools and improve code quality in general. It furthermore pPresents an in-depth guide to efficiently working with SLURM and related services at UZH, including data management and considerations for effective job sizing and scheduling. Finally, the course introduces cloud-based computational approaches and how to use the existing OpenStack cloud at UZH efficiently in computational projects.

Each section includes hands-on examples and exercises, providing practical experience and ensuring that students can effectively apply their new skills in real-world scenarios. By the end of this two-day block course, participants will be equipped with the skills to effectively utilize the hardware and tools available at UZH for large-scale CPU and GPU-based computations. They will understand how to navigate the infrastructure at UZH, implement best practices for project structure and coding style, efficiently work with SLURM and related services, and leverage cloud-based computational approaches. These skills will enable participants to efficiently use available resources, enhancing their ability to manage and execute resource-intensive computational projects.

Course catalogue