Courses/EIMI 25WS: Difference between revisions

(create EIMI Course page)
 
(add remaining queries)
Line 59: Line 59:
Für einen (großen) Graphen, der den gesamten Kurs zeigt [hier] klicken.
Für einen (großen) Graphen, der den gesamten Kurs zeigt [hier] klicken.
</blockquote>
</blockquote>
<!-- Table that contains simple/fast queries for the beggining & ending nodes of a course -->
{| class="wikitable"
! '''Vorwissen''' !! '''Ziele'''
|-
<!-- Linke Spalte -->
| style="width: 50%" | {{#widget:SPARQLquery|code=
#defaultView:Table
# Prerequsisite=outside -depends on-> Course-Topic=inside
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
PREFIX wd: <https://graphit.ur.de/entity/>
select distinct
?Vorwissen ?VorwissenLabel
where {
  # get all items that are included in sessions (as some categories include more items)
  wd:Q2113 wdt:P14 ?session.
  ?session wdt:P3 wd:Q427.
 
  ?session wdt:P14 ?item.
  ?item wdt:P1 ?Vorwissen. # get the prerequsites
  MINUS { wd:Q2113 wdt:P14/wdt:P14 ?Vorwissen. } # filter out all prereqs that are included in the course
  service wikibase:label { bd:serviceParam wikibase:language "en".}
} LIMIT 30
|caption=Items, die nicht Teil des Kursen sind, aber als Vorwissen vorausgesetzt werden
|height=20vh
}}
<!-- Rechte Spalte -->
| style="width: 50%" | {{#widget:SPARQLquery|code=
#defaultView:Table
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
PREFIX wd: <https://graphit.ur.de/entity/>
SELECT DISTINCT ?ZielLabel ?Ziel
where {
  wd:Q2113 wdt:P36 ?Ziel.
  service wikibase:label { bd:serviceParam wikibase:language "en".}
} LIMIT 20
|caption=Items, die als Kursziele markiert sind
|height=20vh
}}
|}
=== Timetable ===
<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
{{#widget:SPARQLquery|code=
#defaultView:Timeline
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
PREFIX wd: <https://graphit.ur.de/entity/>
select distinct ?Datum ?Session ?SessionLabel # ?Inhalte ?InhalteLabel
where {
  wd:Q2113 wdt:P14 ?Session.
  ?Session wdt:P3 wd:Q427.
  ?Session wdt:P19 ?Datum.
  # OPTIONAL {?Session wdt:P14 ?Inhalte.}
 
  # Get the amount of eng alias found for an item
  {SELECT ?Session (COUNT(?alias) AS ?aliasCount) WHERE {
    ?Session skos:altLabel ?alias.
    FILTER (LANG(?alias) = "en").
  } GROUP BY ?Session
  }
 
  # re-get the alias as ?SessionLabel (for the links)
  ?Session skos:altLabel ?SessionLabel.
  FILTER (LANG(?SessionLabel) = "de").
  FILTER (!contains(str(?SessionLabel), "Ü:")). # nur VL
 
  # Filter out all descriptive alias (aka. don't use a "[Course] - 01a"-type label)
  OPTIONAL {
    ?Session skos:altLabel ?alt.
    FILTER (!regex(?alt, "MMT", "i"))
    FILTER (LANG(?alt) = "en")  # Ensure the alias is in English
  } # and save them in a different var
 
  # Default to the normal alias, but use the descriptiv one if it exists
  BIND(IF (?aliasCount > 1, ?alt, ?alias) as ?SessionLabel)
 
  service wikibase:label { bd:serviceParam wikibase:language "en".}
} ORDER BY DESC(?SessionLabel)
LIMIT 50
|height=35em
|caption=Alle Vorlesungstermine des Kurses
}}
</div>
<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
{{#widget:SPARQLquery|code=
#defaultView:Timeline
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
PREFIX wd: <https://graphit.ur.de/entity/>
select distinct ?Datum ?Session ?SessionLabel # ?Inhalte ?InhalteLabel
where {
  wd:Q2113 wdt:P14 ?Session.
  ?Session wdt:P3 wd:Q427.
  ?Session wdt:P19 ?Datum.
  # OPTIONAL {?Session wdt:P14 ?Inhalte.}
 
  # Get the amount of eng alias found for an item
  {SELECT ?Session (COUNT(?alias) AS ?aliasCount) WHERE {
    ?Session skos:altLabel ?alias.
    FILTER (LANG(?alias) = "en").
  } GROUP BY ?Session
  }
 
  # re-get the alias as ?SessionLabel (for the links)
  ?Session skos:altLabel ?SessionLabel.
  FILTER (LANG(?SessionLabel) = "de").
  FILTER (contains(str(?SessionLabel), "Ü:")). # nur Übungen
 
  # Filter out all descriptive alias (aka. don't use a "[Course] - 01a"-type label)
  OPTIONAL {
    ?Session skos:altLabel ?alt.
    FILTER (!regex(?alt, "MMT", "i"))
    FILTER (LANG(?alt) = "en")  # Ensure the alias is in English
  } # and save them in a different var
 
  # Default to the normal alias, but use the descriptiv one if it exists
  BIND(IF (?aliasCount > 1, ?alt, ?alias) as ?SessionLabel)
 
  service wikibase:label { bd:serviceParam wikibase:language "en".}
} ORDER BY DESC(?SessionLabel)
LIMIT 50
| height=35em
| caption=Alle Übungen des Kurses (nur eine Termin wird angezeigt)
}}
</div>
=== Interessen & Vorkenntnisse ===
Ein Diagramm, das Items zeigt, die Studierende als "interessant" oder "bekannt" markiert haben.
<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
{{#widget:SPARQLquery| code=
#defaultView:SwarmScatterChart
PREFIX wd: <https://graphit.ur.de/entity/>
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
SELECT DISTINCT ?known ?interests ?itemLabel 
WHERE {
  wd:Q2113 wdt:P14/wdt:P14 ?item.
  OPTIONAL {
    SELECT ?item ?itemLabel (COUNT(DISTINCT ?student) as ?known) WHERE {
      ?student wdt:P25 wd:Q2113.
      ?student wdt:P12 ?item.
      FILTER (!contains(str(?SessionLabel), "Demo")). # rm Demo Students
    } GROUP BY ?item ?itemLabel
  }
  OPTIONAL {
    SELECT ?item ?itemLabel (COUNT(DISTINCT ?student) as ?interests) WHERE {
      ?student wdt:P25 wd:Q2113.
      ?student wdt:P23 ?item.
      FILTER (!contains(str(?SessionLabel), "Demo")). # rm Demo Students
    } GROUP BY ?item ?itemLabel
  }.
  BIND (IF(!BOUND(?interests), 0, ?interest) as ?interests).
  BIND (IF(!BOUND(?known), 0, ?known) as ?known).
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
}}
</div>
=== Preview ===
Eine Liste an Themen, die im nächten Termin behandelt werden.
<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
{{#widget:SPARQLquery| code=
#defaultView:Table
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
PREFIX wd: <https://graphit.ur.de/entity/>
select distinct ?today ?sessionDate ?interested ?completed
?item ?itemLabel
?resource ?resourceLabel ?url ?type ?typeLabel
where {
  { # subquery: get the session for next week
    SELECT ?session  ?today ?sessionDate
    WHERE {
      # get all sessions, that are "bigger" than today
      # BIND("2024-04-29"^^xsd:dateTime as ?today) # for test
      BIND(now() as ?today) # for real
 
      wd:Q2113 wdt:P14 ?session.
      ?session wdt:P3 wd:Q427.
      ?session wdt:P19 ?sessionDate.
      # FILTER(?sessionDate > ?today).
      FILTER(xsd:date(?sessionDate) >= xsd:date(?today)).
    } ORDER BY ASC(?sessionDate)
    LIMIT 1 # limit to 1 session
  } # end of subquery
 
  # limit to 1 session (from subquery)
  ?session wdt:P14 ?item.
  OPTIONAL {?item wdt:P21 ?resource.
            ?resource wdt:P20 ?url.
            ?resource wdt:P3 ?type}
 
    { # start of union
      {  # get all items user is interested in
      SELECT ?item ?itemLabel
      WHERE {
          ?user rdfs:label "{{#username:Max Mustermann}}"@en.
          ?user wdt:P23 ?item.
      } }
      BIND(IF(BOUND(?item), "true", "false") as ?interested)
  } UNION {
      { # get all items user has completed
      SELECT ?item ?itemLabel
      WHERE {
          ?user rdfs:label "{{#username:Max Mustermann}}"@en.
          ?user wdt:P12 ?item.
      } }
      BIND(IF(BOUND(?item), "true", "false") as ?completed)
  } UNION { # union: get all other items
      ?session wdt:P14 ?item.
      ?user rdfs:label "{{#username:Max Mustermann}}"@en.
      # Remove all item user is interested in / has completed -> otherwise duplicates
      MINUS {?user wdt:P23 ?item}
      MINUS {?user wdt:P12 ?item}
  } # end of union
 
  service wikibase:label { bd:serviceParam wikibase:language "en".}
} ORDER BY DESC(?resource)
LIMIT 80
| caption=A Todolist for {{#username:Max Mustermann}}
| height=30em
}}
</div>
== Erste Schritte mit GraphIT ==
TODO

Revision as of 08:40, 23 September 2025

Kurs Einführung in die Informatik und Medieninformatik, Wintersemester 25/26

B.A. Medieninformatik, Universität Regensburg.


Overview

Der Kurs dient als Einführung in verschiedene Grundkonzepte der Informatik und Medieninformatik

Wichtige Themen

Besprochen werden geschichtliche Entwicklungen von Computern und Programmierung; Grundlagen der Datenübertragung, Rechnerarchitektur und Betriebssysteme; der Aufbau der menschlichen Wahrnehmung; sowie Grundkenntnisse zu Zahlensystemen, (Programmier-)Logik und Dateiformaten. In der dazugehörigen Übung werden wichtige Werkzeuge und praktische Kompetenzen vermittelt.


Der Leistungsnachweis ist eine schriftliche Prüfung am Ende des Semesters.

Um zur Klausur zugelassen zu werden, müssen während des Semesters wöchentliche Übungsblätter bearbeitet und bestanden werden. Erwartet wird dazu auch eine aktive Mitarbeit in den Übungsstunden.


Für einen (großen) Graphen, der den gesamten Kurs zeigt [hier] klicken.

Vorwissen Ziele

Items, die nicht Teil des Kursen sind, aber als Vorwissen vorausgesetzt werden

Items, die als Kursziele markiert sind


Timetable

Alle Vorlesungstermine des Kurses


Alle Übungen des Kurses (nur eine Termin wird angezeigt)

Interessen & Vorkenntnisse

Ein Diagramm, das Items zeigt, die Studierende als "interessant" oder "bekannt" markiert haben.

Preview

Eine Liste an Themen, die im nächten Termin behandelt werden.

A Todolist for Max Mustermann

Erste Schritte mit GraphIT

TODO