This interdisciplinary seminar offers training for aspects of both research software engineering and research data management.
Abstract:
This seminar introduces the fundamentals of Git and the typical workflows used for research projects. We will cover what version control is, compare hosted options (GitHub, GitLab, etc), and walk through the common day-to-day commands: initializing and cloning repos, staging and committing changes, branching, merging, and pushing. You will learn how to set up your identity (user.name and user.email), open and manage issues, and create/merge pull requests (merge requests). The session combines short demos with guided hands-on exercises so you leave with a working repository and a PR you created yourself.
Prerequisites: a laptop with internet access and a Bash terminal. git installed and working (verify git --version). Access to your WIAS GitLab account. Basic familiarity with your terminal and a text editor of your choice.
git --version
A compact, hands‑on seminar that teaches researchers and staff how to access and use our local compute servers safely and efficiently. You will learn what resources are available, how to connect from a terminal, how to avoid repeated password entry by using SSH key authentication, how to check whether a server is available, basic use of tmux for persistent sessions, and the essentials of submitting short jobs to the queuing system used on some servers. After a short demo, attendees will get to try connecting and run a small example task (either interactively or inside tmux) and/or submit a minimal queued job.
tmux
Prerequisites: a laptop with a working Bash terminal. Your username, password and two-factor authentication to access the WIAS servers.
This seminar introduces the Unix shell and how to use the terminal to perform everyday development and system tasks. This is particularly useful to interact with the compute servers at WIAS. Participants will learn basic Bash commands, filesystem navigation, file and text manipulation, simple process and permission management, and how to combine commands with pipes and redirection. The session is interactive and concludes with hands-on exercises that reinforce the commands and workflows introduced.
Prerequisites: a laptop with a Bash terminal installed. For Windows users: Windows Subsystem for Linux (WSL) installed with a Linux distribution (e.g., Ubuntu) and a working shell terminal. An installation guide is presented here.
This seminar introduces core principles of research software engineering and data management in the context of applied mathematics. It outlines a roadmap for the topics to be covered in the seminar series and invites participants to provide feedback and suggest additional themes to guide future sessions.
We will start by looking at how we can test locally on our own laptop and then set up a workflow such that these tests run automatically for every change we do on a GitLab repository.
Prerequisites: Setup of an SSH key for working with GitLab is highly recommended but optional. For information on how to set it up see https://docs.gitlab.com/ee/user/ssh.html . If you have any questions on this don't hesitate to ask!
In this seminar we will learn some basics about testing and test driven development. Both from the theoretical site of test design and scopes of tests and the practical site of setting up a testing environment and writing some first tests. Prerequisites for this weeks seminar: The exercises are prepared in Python, Julia, R and C++ so you should ideally have one of these installed. But the test design can also be done theoretically.
In this first workshop in a series on software quality, we will look at some tools where you don't need to write additional code to use them. The tools and example we use will be in Python, but you won't need a lot of knowledge about python to participate. Additionally, many things can be transferred to other languages (including LaTeX) and we will name respective tools. The workshop will answer the following questions: What is a linter and how do I use it? How can I ensure that code written by multiple people looks coherent? How can I write comments for my functions so they show up in the help menu? How can I find spelling mistakes? How can I run all these checks whenever I want to commit my code in git?
Prerequisites: Bring your own laptop with Python installed.
In this workshop we will learn some more advanced techniques and commands in git and answer the following questions. How do I manage urgent fixes interrupting my current work? How can I undo my most recent work? How do I incorporate changes done by others in the meantime? How can I rewrite the git history to tell a cohesive story? How do I find out at which commit a bug was actually introduced?
Prerequisites: Bring your own laptop with git installed. This is an advanced course so having some experience with git is recommended, more specifically How do I record changes in a commit? How can I see what happened before / inspect my git history? How can I branch off my work? How do I synchronize between my machine and a remote machine/server?
This seminar will answer the following questions: How do I download a repository, so I can contribute my changes to it? What is a fork? How do I synchronize changes between different machines (laptop, GitLab, workstation)? How can I present and offer my changes to be added in a merge request? How can we discuss merge requests and suggest changes? How do two of the most common workflows for collaborating on a repository work?
Prerequisites: You will need to have an SSH key set up with our local GitLab instance, see: docs.gitlab.com/ee/user/ssh.html#generate-an-ssh-key-pair and https://docs.gitlab.com/ee/user/ssh.html#add-an-ssh-key-to-your-gitlab-account but don't hesitate to ask! I will also be at A406 a few minutes earlier to help. This is an intermediate course so having some experience with git is recommended, more specifically: - How do I record changes in a commit - How can I branch off my work
This seminar will answer the following questions: How can I set up a public/private ssh key pair? How can I run commands on a remote machine using ssh? How can I register a public key with a remote computer? How can I register a public key with GitLab and GitHub How does authentication with a public/private key pair work?
Prerequisites: You should know the answers to these questions from the introduction course: How can I move around and inspect files and folders on the computer? How can I run shell commands?
As a deeper dive into the command line (Terminal/Konsole) we will answer the following questions: How can I perform the same actions on many different files? How can I save and reuse commands? How can I find files? How can I find things in files?
Prerequisites: As this is a continuation of last weeks seminar you will need to follow the instructions under 'Download files' and possibly under 'Install software' (directly below) on https://swcarpentry.github.io/shell-novice/#download-files Additionally, you should know the ansers to the questions covered last week: What is a command line interface and why should I use one? How can I move around and inspect files and folders on the computer? How can I create, edit, copy and delete files? How can I combine existing commands? If not don't hesitate to ask, or look through the material on https://swcarpentry.github.io/shell-novice/ up to and including 04 Pipes and Filters.
In this hands-on workshop, we will look into the Unix shell, which allows us to navigate our computers file system, inspect and modify files and folders as well as using the so called command line interfaces (CLI) of many programs.
Prerequisites: You should bring your own laptop with a Bash shell installed. You can follow the instructions for your operating system for The Bash Shell here to install both git and a bash terminal (if not already present).
The Bash Shell
In this hands-on workshop, we will look into git, a version control system. We will start by learning the basic ideas of tracking changes with git. Then, we will look at using so called branches to organize in-progress work as an individual and finish with learning how to resolve conflicting changes.
Prerequisites: You should bring your own laptop with git installed. You can follow the instructions for your operating system for The Bash Shell here to install both git and a bash terminal (if not already present).
JuliaCon 24 has just ended (9th-13th July) and we will give a recap on interesting new developments within the wider community. Additionally, the release of the new Julia version (1.11) is just around the corner so we will have a look at some new features it will provide.
This meeting will features talks by Maximilian: A schort introduction to FEniCSx Tom: Spherically symmetric Cahn-Hilliard equations on multiple coupled domains. More information and source resources can be found at the WIAS internal gitlab website https://lab.wias-berlin.de/fenicsuser/meetings .
We will explore a few ways of how you can backup your data from your Laptop to the WIAS servers. And we will also give you some time to set it up if you need to and help you with it.
Prerequisites: If you want to setup a backup during the seminar you should bring your laptop.
We will start by learning how working with a remote git repository works on our institutes laptop. Afterwards, we will look at two typical collaboration workflows and how to practically do them on GitLab.
Prerequisites: You should set up an SSH key for working with GitLab before the seminar (see https://docs.gitlab.com/ee/user/ssh.html ). If you have any questions on this don't hesitate to ask!
The Julia language comes with a standardized infrastructure for testing and documentation generation. We describe and demonstrate the main elements of this infrastructure, cover supporting Julia packages and give practical hints from package development experience.
Prerequisites: Bring Your Own Laptop.
In the hands-on workshop, we will introduce the preparation of mathematical models using MarkDown templates for the integration into MaRDI's MathModDB (database of mathematical models). In the interactive part of the seminar you will be able to practice this preparation using the templates for your own mathematical model. We kindly ask you to bring a mathematical model that is relevant for you as a paper, preprint or manuscript (e.g. as PDF).
Prerequisites: Bring Your Own Mathematical Model (Paper, Preprint, Manuscript) Bring Your Own Laptop with MarkDown-Editor. We recommend Visual Studio Code.
This meeting will features talks by Anant on Reusing LU factorization in FEniCS Janina on Neural Networks for Parametric PDEs - Learning FE Coefficients Dirk on Solving and visualising axisymmetric PDEs in FEniCS More information and source resources can be found at the WIAS internal gitlab website https://lab.wias-berlin.de/fenicsuser/meetings .
In this workshop we will learn some more advanced techniques and commands in git like Managing interrupted work Integrating work from other branches Rewriting git history Bug hunting
Prerequisites: Some basic knowledge about using git. Bring your own laptop with git installed.
In this workshop, we will introduce the tool MaRDMO for the research data management organizer (RDMO).
Prerequisites: Bring Your Own Laptop, no need to have anything special installed.
Pluto's mission statement is to make scientific computing more accessible and fun ! We all know that computers are fun, but what does it mean for computing to be accessible ? More info: This talk highlights different areas of accessibility in scientific computing: - Taking skills into account: easy installation, simple API. - Taking learning backgrounds into account: documentation like "Julia for Matlab users" or "Pluto for Excel users". - Web accessibility: screen reader support, high-contrast mode. - Availability: free and open source, easy to find.
In this three part workshop, we will start by a general look into the user interface of VSCode. Afterwards, we will look at a useful extension for writing LaTeX source files and its features and end with a look into the git integration of VSCode.
Prerequisites: You should bring your own laptop with VSCode or VSCodium installed and some thesis or paper to use as a playground to try out features.
Prerequisites: You should bring your own laptop with git installed You can follow the instructions for your operating system for The Bash Shell here to install both git and a bash terminal (if not already present).