Open Educational Resource (OER) presentations for a course on Operating Systems

1 What is this?

This page collects OER presentations (HTML slides with embedded audio, available under Section 3, preceded by usage hints in Section 2) for a course on Operating Systems (following the book Operating Systems and Middleware: Supporting Controlled Interaction by Max Hailperin) as part of the module Computer Structures and Operating Systems for 4th-term students in the Bachelor program in Information Systems at the University of Münster, Germany. Some background concerning the origin of this project and the adopted teaching and learning strategy Just-in-Time Teaching (JiTT; see here for the Wikipedia entry) is explained in its README.

If you are teaching or learning Operating Systems (OSs), feel free to use, share, and adapt my presentations. As usual for projects on GitLab, you can open issues to report bugs or suggest improvements, ideally with merge requests. The document CONTRIBUTING contains some pointers for contributors.

Students in Münster have taken courses on programming in Java, data structures and algorithms, and data modeling before taking “Computer Structures and Operating Systems.” As prerequisite for Operating Systems, students should

  • be able to write, compile, and execute small Java programs,
  • be able to use basic data structures (stack, queue, tree) and algorithms (in particular, hashing);
  • also, being able to explain the database transaction concept and update anomalies will ease understanding of presentations on mutual exclusion.

Learning objectives: After taking this course, students will be able

  • to discuss major architectures and components of modern OSs; to explain and contrast processes and threads and their roles for OSs and applications,
  • to explain OS data structures, algorithms, and management techniques
  • to analyze programming challenges arising from concurrency and to apply appropriate techniques addressing these challenges,
  • to discuss the notion of IT security and to apply security mechanisms provided by the operating system in support of secure IT systems.

2 Hints on reveal.js presentations

Presentations are generated with emacs-reveal and make use of the HTML presentation framework reveal.js.

  • Key bindings and navigation
    • Press “?” to see key bindings of reveal.js
    • In general, “n” and “p” move to next and previous slide; mouse wheel works as well
    • Up/down (swiping, arrows) move within sections, left/right jump between sections (type “o” to see what is where)
    • Type slide’s number followed by Enter to jump to that slide
    • Browser history (buttons, Alt-CursorLeft, Alt-CursorRight)
    • Zoom with Ctrl-Mouse or Alt-Mouse
    • Search with Ctrl-Shift-F
  • PDF export
    • Why do you want to do this?
      • You may want to download and annotate/enrich source files instead
    • Change the URL by adding ?print-pdf after .html, then print to PDF file (usually, Ctrl-p)
    • Alternatively, depending on the specific project, PDFs might also have been generated via LaTeX from org source files. If available, those PDF versions are accessible by replacing .html in a presentation’s URL with .pdf
  • Offline use
    • Presentations can be downloaded from build pipelines of source projects as self-contained zip archives
      • Extract contents and open local HTML file(s) in browser
      • E.g., for a course on Operating Systems, go to its pipelines page, click on download icon of most recent pipeline
    • Alternatively, clone source repository and build presentations locally
  • Audio
  • Notes
    • Slides contain additional notes as plain text if you see the folder icon folder_inbox.png
      • Press “v” to open the “courseware view” or click on that icon or press “s” to see the “speaker notes view”
        • For the speaker notes view you need to allow pop-ups
        • If the pop-up window does not work, you may need to press “s” twice or close the pop-up window once
    • If the slide contains audio, the notes are a transcript of the audio’s text
  • Links
    • In presentations, internal and external links (the former are also called relative, while the latter embed a domain in the URL) are styled differently
      • Different colors for internal (blue) and external (green) links
        • Internal links that stay within the presentation come with additional indicators whether they point to a previous (◂) or an upcoming (▸) slide
      • Special link icon for “non-local” links
        • E.g., in this external link to a page explaining external links, which are typically served by independent organizations with their own agendas, with or without their own privacy policies
        • But also for links between different presentations (in particular, this allows to recognize forward references, which may be safely ignored upon first contact)
      • In summary, presentations (not this page) use four link styles:
        • External (green with icon)
        • Relative into different presentation (blue with icon)
        • Relative within presentation (blue), either with backward (◂) or forward (▸) indicator

The document CONTRIBUTING.org contains hints on how to provide feedback or contribute improvements for OER within the group oer at GitLab.

3 Presentations

Note: Presentations linked here are generated automatically from their source files. They are updated throughout the term (and thereafter). The PDF versions provided below are generated via LaTeX from org source files.

List of index terms for Operating Systems (may simplify search for specific topics).

For offline work (also on mobile devices), you can download the results of the latest pipeline execution on GitLab or clone the source repository including all necessary resources and generate presentations yourself.

4 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.

License: This text, “Open Educational Resource (OER) presentations for a course on Operating Systems,” by Jens Lechtenbörger is published under the Creative Commons license CC BY-SA 4.0.

Created: 2019-06-20 Thu 10:27

Imprint | Privacy Policy