Course prerequisites#
Ain’t no one-week school good enough#
The reality of winter schools like these is that they really don’t teach attending folks all they need to know to subsequently apply the respective content sufficiently, not to mention the training aspect. At best, winter schoolss provide folks with the materials, overview and pointers necessary to continue and actually dive into the taught topics (the truth hurts sometimes, doesn’t it?). Another important aspect that is frequently overlooked is that attendees usually need a certain set of skills and experience to really benefit from a given winter school, especially considering the diverse backgrounds folks have. We want to be fair, open and welcoming to everyone and while we know that we unfortunately can’t achieve and assume a truly similar level of training and experience across all participants, we can at least do our best to work towards certain opportunities. That being said, winter schoolss like the one you’re currently looking at, by default (should) require basic to advanced programming skills and knowledge about file handling/input/output, signal processing, statistics and linear algebra (vectors much?). Tough stuff, eh?
Let there be pre-winter schools training#
So what can we actually do to provide the entire attending gang with the chance to get up to speed for the winter schools and ideally beyond? Unfortunately, we can’t hold pre-winter-school winter schools and various consultations. Instead we decided to utilize the fantastic jupyter-python-open science world and build upon the framework of jupyter books employed to host this winter schools and its materials. In other words, we assembled a stack of short tutorials that cover most of the aspects mentioned above. As the rest of the content, they are jupyter notebooks that can be run interactively (via the little rocket on the top right) or locally (via the download button on the top right) and mix theoretical background with actual code so that folks can familiarize themselves with the corresponding topics. Important: we know that everyone has a lot of stuff to do and that not everyone will be able to go through the stuff we collected here. Y’all: don’t worry about that, it’s chilli-milli. We will try our best to bring the core points across, even if you don’t have a substantial amount of experience. Please just make sure that you ask all the questions that might pop up, the same holds true for any problems you might encounter. Long story short, here are the topics organized from basic to advanced skills and concepts.
GUIs vs CLIs#
How do you interact with your computer? In general, you as a user provide some input
that contains a task
that your computer
should perform in order to obtain a desired outcome
. However, there are different ways you can approach this, each with advantages and disadvantages. More precisely this refers to the distinction between GUI
s and CLI
s. Within this part of the session we’ll discuss both a bit and also talk about different options to utilize programming languages
.
Objectives 📍#
Learn about different ways of interacting with computers
GUI
,CLI
,IDE
stest different options on your machines
Ask and answer questions
Have a great time
Materials 📓#
Introduction to the (unix) command line: bash#
Objectives 📍#
learn basic and efficient usage of the shell for various tasks
navigating directories
file handling: copy, paste, create, delete
Ask and answer questions
Have a great time
Materials 📓#
Please download the example dataset provided here.
Please see the rendered version of the jupyter notebook
Introduction to the (unix) command line: bash in the ToC
on the left.
You can either run the respective commands
in your terminal
or in the Jupyter Notebook
via following the steps outlined here and then selecting/opening the materials/prerequisites/intro_to_shell.ipynb
file.
Introduction to Computational Environments#
You might think: “why do we have to talk about computing environments & reproducibility? I just want to code.”.
Fair enough but as hinted at during the introduction, knowing a bit more about this thing called the “computer” and how your code is run will be tremendously helpful and important going further. The sooner you can utilize the respective tools/resources the better as quite a bit, actually all, of your coding will depend on it. We usually trust our machines to do what we ask them to do and while quite often we get the desired output, there’s a fair chance that the same task will lead to a different outcome on a different OS, using a different version, etc. . However, what outcomes do we “trust” and why does it converge? All of this relates to “reproducibility” and within this section we’ll briefly explore underlying problems and potential (partial) solutions via python
.
Objectives 📍#
get to know problems wrt
computational analysis
&reproducibility
learn about
virtualization
and its different optionsexperiment with
python virtualization
optionsAsk and answer questions
Have a great time
Materials 📓#
Introduction to Python#
The big moment is finally here: after spending quite a bit of time exploring important concepts adjacent to/around python
, with the intention to provide a holistic understanding and situate components accordingly, we will start exploring python
itself. Within the first block of programming with python
we will go through basics of the python
programming language, its central aspects and building blocks, as well as its benefits generally speaking and within the context of research.
Objectives 📍#
learn basic and efficient usage of the
python
programming languagewhat is
python
& how to utilize itbuilding blocks of &
operations
inpython
Ask and answer questions
Have a great time
Materials 📓#
Please see the rendered version of the jupyter notebook
Introduction to Python
in the ToC
on the left.
You can either run the respective commands
in your ipython terminal
or in the Jupyter Notebook
via following the steps outlined here and then selecting/opening the materials/prerequisites/intro_to_python.ipynb
file.
Hakuna matata#
We can’t stress this enough: it’s all ok, don’t let the imposter syndrome get the better of you.
https://c.tenor.com/yfDp5K_0_LMAAAAC/you-got-this-thumbs-up.gif