Teaching

Digital Skills

Best practices in computer science

In the context of the Swissuniversities Digital Skills initiative, the Computer Science Department is offering three workshops to improve your skills in scientific programming. The workshops will cover the following topics:

  • Source code management with Git

Learn to easily save and restore different versions of your source code, keep track of each modification and collaborate on a common code project .

  • Automated code testing

Learn to write code to ensure correctness and make sure that your software stays consistent and compatible.

  • Using the supercomputer Baobab

Learn what is Baobab, how to use it, and how to execute computation tasks on this powerful machine through SLURM job manager.

These workshops are open to PhD students, postdocs or all researchers who want to improve their knowledge with modern development tools, or want to use the University’s high performance computer.

1. Source code management with Git

Have you ever been afraid to loose your code? Or afraid that nothing will ever work again after a slight modification? You don't know how to share your work?

Git is one of the most popular version control system. Developers and software engineers use it to save code modifications and allows them to change their code without fear. Moreover Git makes it very easy to collaborate and share work with others.

This workshop will teach you how Git works and how to use it with your own projects. You'll learn to use Git main features, to save versions of your code, to restore a previous version and how to use it as a collaborative tool. We'll also introduce basic features of the University's GitLab.

More detailed information about prerequisite, date and location can be found here.

2. Automatic code testing

Do you lack of confidence in what your code is doing? Are you afraid to use or modify an old group/lab's code? How to ensure that your own code works as excepted?

Debugging is one the of most time consuming tasks for developers and software engineers. The code is not always working as expected and even with minor modifications, a complex or unknown code can easily be broken. Fortunately there exist approaches to detect bugs before a production run, or to ensure that future modifications will not break already existing features.

This workshop will show several approach to automatically test your code and what are the best practices when you're involved in any development project. What we'll show you apply whenever your working on a personal project or on a collaborative one. During the workshop you'll learn to write automatic tests for a small Python project.

More detailed information about prerequisite can be found here.

3. Using the supercomputer Baobab

What to do after time spent on optimizing your code is still too slow? Or do you need huge amount of memory to run your program?

Desktop machines are not always powerful enough to solve the large problems researchers try to tackle. Fortunately the University provides the supercomputer Baobab when a researcher needs more computing resources. However you don't use this machine like you use your laptop.

This workshop will introduce you to Babobab. What is this machine, what it provides and how to use it. During the workshop you'll learn to write scripts to submit your own tasks with SLURM. After that, the participants will be qualified to connect to the machine and execute their own program on Baobab.

More detailed information about prerequisite can be found here.