Open Educational Resource (OER) presentations as part of a module on Communication and Collaboration Systems
1. What is this?
Historical project. This course was taught for the last time in 2023.
This page collects OER presentations (see here for generated presentations if you currently read the README) to be used for sessions on distributed systems as part of a module on Communication and Collaboration Systems (CACS) at the University of Münster, Germany.
Following a classical textbook on distributed systems by Coulouris et al. (see presentation on Distributed Systems for full reference), an IT system is a distributed one if it contains several components on networked computers that communicate and coordinate their actions by passing messages. In times of so-called smart devices and the Internet of Things, distributed systems surround us, shape how we communicate and collaborate, how we work, how we live.
Distributed systems can be classified into centralized and decentralized ones. The former are controlled by one company or organization, while the latter consist of multiple sub-systems that are controlled independently but still serve a common goal. The presentations here offer an introduction to distributed systems and their fundamental technical infrastructure, namely the Internet, and provide examples of decentralized distributed systems, namely Web and E-Mail as well as Git.
I’d like to share thoughts which may explain some of my choices for this course and beyond. We as tech-savvy people, particularly in disciplines such as Information Systems and Computer Science, find ourselves in a unique position to shape the digital future. We can either allow others to control the devices, software, and services that we use for communication and collaboration (which may be called self-incurred immaturity), or we may strive to gain control over larger parts of our lives.
I hope that my presentations and examples for decentralized systems provide enlightening pointers.
1.1. Why Git?
Version control is a fundamental technique. I suggest to learn it simultaneously to (digital) writing. Unfortunately, that view does not seem to be very popular (yet?).
I use Git not only for collaboration on free/libre and open source software (FLOSS) and on open educational resources (OER) but also for individual organization, e.g., to keep track of the history of certain documents and thoughts, to synchronize my environment among different devices (e.g., PC at work with PC at home, with notebooks); as an additional benefit, GitLab, where these resources are hosted, provides a powerful infrastructure for continuous integration and deployment (CI/CD), which runs arbitrarily complex processes when new versions are created in Git (e.g., to generate PDF files from LaTeX sources or from other markup, to compile and test executable software from source code, to deploy generated resources and software on the Web).
Importantly, with Git I can control those environments without needing to use (and, by network effects, to endorse) companies “out there in the cloud”, whose legal terms are frequently unacceptable (or which I fail to understand—which amounts to the same outcome).
Besides, Git is a de-facto industry standard for software engineering. I find the idea of GitOps as path to more self-service IT highly appealing.
I learned about Git much too late. You are younger than I was when I started (well, my students in Münster usually are), so you are at a clear advantage. Use it.
1.2. Distributed Systems with Git on GitLab
If you are teaching or learning Distributed Systems, feel free to use, share, and adapt my OER. As usual for projects on GitLab, you can open issues (GitLab documentation on issues) to report bugs or suggest improvements, ideally with merge requests (GitLab documentation on merge requests). Note that a video below contains a step-by-step description of the creation of a merge request on GitLab.
Presentations make use of the HTML presentation framework reveal.js.
2. Presentations and other OER
- Git
- General comments on Git and examples for collaboration with Git on GitHub and GitLab: Video, script of video as HTML page (PDF)
- Git Introduction as presentation (PDF with screen layout, condensed PDF)
- Quickstart for GitLab with SSH keys (PDF)
- Instructions for group exercise on Feature Branch Workflow (PDF)
- Introduction to Distributed Systems (PDF with screen layout, condensed PDF)
- Introduction to the Internet (PDF with screen layout, condensed PDF)
- Web and E-Mail (PDF with screen layout, condensed PDF)
3. Source code and licenses
In the spirit of
Open Educational Resources
(OER), source files, necessary software, and presentations are published in this GitLab repository
under free licenses.
All OER presentations are created from plain text files in a simple text
format called Org Mode (a
lightweight markup language),
focusing on content, while layout is defined separately.
Importantly, the separation of content and layout
simplifies collaboration across organizational boundaries, and the use
of a simple text format enables comparisons of adapted or enhanced
versions (with diff
-like functionality).
Using the free software emacs-reveal these text files are translated into reveal.js HTML presentations, which can be viewed on (almost) any device with a Web browser. In times of dragnet surveillance and surreptitious as well as blatant data brokerage I recommend the Firefox variant Tor Browser as tool for digital self-defense (here in English and here in German); presentations work for me under the higher-than-default “Safer” security settings in Tor Browser.