Courses/HCI 26SS: Difference between revisions

Line 125: Line 125:
   ?Session wdt:P19 ?Datum.  
   ?Session wdt:P19 ?Datum.  
   # OPTIONAL {?Session wdt:P14 ?Inhalte.}  
   # OPTIONAL {?Session wdt:P14 ?Inhalte.}  
 
   
 
 
   service wikibase:label { bd:serviceParam wikibase:language "en".}
   service wikibase:label { bd:serviceParam wikibase:language "en".}
}  
}  
Line 135: Line 133:
}}
}}
</div>
</div>
-->


{{Note|type=info|text=[https://tinyurl.com/2b734b8r Query], die anzeigt, wie viele Items jede Session enthält}}
=== Interessen & Kenntnisse ===
Ein Diagramm, das Items zeigt, die Studierende als "interessant" oder "bekannt" markiert haben.
<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
{{#widget:SPARQLquery| code=
{{#widget:SPARQLquery|code=
#defaultView:SwarmScatterChart
#defaultView:Timeline
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
PREFIX wd: <https://graphit.ur.de/entity/>
PREFIX wd: <https://graphit.ur.de/entity/>
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
select distinct ?Datum ?Session ?SessionLabel # ?Inhalte ?InhalteLabel
 
where {
SELECT DISTINCT ?known ?interests ?itemLabel 
   wd:Q1986 wdt:P14 ?Session.
WHERE {
  ?Session wdt:P3 wd:Q427.
   wd:Q2943 wdt:P14/wdt:P14 ?item.
  ?Session wdt:P19 ?Datum.  
   OPTIONAL {
   # OPTIONAL {?Session wdt:P14 ?Inhalte.}
    SELECT ?item ?itemLabel (COUNT(DISTINCT ?student) as ?known) WHERE {
 
      ?student wdt:P25 wd:Q2943.
  # Get the amount of eng alias found for an item
      ?student wdt:P12 ?item.
  {SELECT ?Session (COUNT(?alias) AS ?aliasCount) WHERE {
      ?student rdfs:label ?studentLabel.
    ?Session skos:altLabel ?alias.
      FILTER (!contains(str(?studentLabel), "Demo")). # rm Demo Students
    FILTER (LANG(?alias) = "en").
    } GROUP BY ?item ?itemLabel
  } 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 {
   OPTIONAL {
     SELECT ?item ?itemLabel (COUNT(DISTINCT ?student) as ?interests) WHERE {
     ?Session skos:altLabel ?alt.
      ?student wdt:P25 wd:Q2943.
    FILTER (!regex(?alt, "MMT", "i"))
      ?student wdt:P23 ?item.
    FILTER (LANG(?alt) = "en") # Ensure the alias is in English
      ?student rdfs:label ?studentLabel.
  } # and save them in a different var
      FILTER (!contains(str(?studentLabel), "Demo")). # rm Demo Students
    
    } GROUP BY ?item ?itemLabel
   # Default to the normal alias, but use the descriptiv one if it exists
   }.
   BIND(IF (?aliasCount > 1, ?alt, ?alias) as ?SessionLabel)
   BIND (IF(!BOUND(?interests), 0, ?interest) as ?interests).
    
   BIND (IF(!BOUND(?known), 0, ?known) as ?known).
  service wikibase:label { bd:serviceParam wikibase:language "en".}
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
} ORDER BY DESC(?SessionLabel)
}
LIMIT 50
|height=35em
|caption=Alle Vorlesungstermine des Kurses
}}
}}
</div>
</div>


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


<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
{{#widget:SPARQLquery| code=
{{#widget:SPARQLquery|code=
#defaultView:Table
#defaultView:Timeline
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
PREFIX wd: <https://graphit.ur.de/entity/>
PREFIX wd: <https://graphit.ur.de/entity/>
select distinct ?today ?sessionDate ?interested ?completed
select distinct ?Datum ?Session ?SessionLabel # ?Inhalte ?InhalteLabel
?item ?itemLabel
?resource ?resourceLabel ?url ?type ?typeLabel
where {
where {
   { # subquery: get the session for next week
   wd:Q1986 wdt:P14 ?Session.
    SELECT ?session  ?today ?sessionDate
  ?Session wdt:P3 wd:Q427.
    WHERE {
  ?Session wdt:P19 ?Datum.
      # get all sessions, that are "bigger" than today
  # OPTIONAL {?Session wdt:P14 ?Inhalte.}
      # BIND("2024-04-29"^^xsd:dateTime as ?today) # for test
      BIND(now() as ?today) # for real
    
    
      wd:Q2943 wdt:P14 ?session.
  # Get the amount of eng alias found for an item
      ?session wdt:P3 wd:Q427.
  {SELECT ?Session (COUNT(?alias) AS ?aliasCount) WHERE {
      ?session wdt:P19 ?sessionDate.
    ?Session skos:altLabel ?alias.
      # FILTER(?sessionDate > ?today).
    FILTER (LANG(?alias) = "en").
      FILTER(xsd:date(?sessionDate) >= xsd:date(?today)).
  } GROUP BY ?Session
    } ORDER BY ASC(?sessionDate)
   }
    LIMIT 1 # limit to 1 session
   } # end of subquery
    
    
   # limit to 1 session (from subquery)
   # re-get the alias as ?SessionLabel (for the links)
   ?session wdt:P14 ?item.
   ?Session skos:altLabel ?SessionLabel.
   OPTIONAL {?item wdt:P21 ?resource.
   FILTER (LANG(?SessionLabel) = "de").
            ?resource wdt:P20 ?url.
  FILTER (contains(str(?SessionLabel), "Ü:")). # nur Übungen
            ?resource wdt:P3 ?type}
    
    
    { # start of union
  # Filter out all descriptive alias (aka. don't use a "[Course] - 01a"-type label)
      {  # get all items user is interested in
  OPTIONAL {
      SELECT ?item ?itemLabel
    ?Session skos:altLabel ?alt.
      WHERE {
    FILTER (!regex(?alt, "MMT", "i"))
          ?user rdfs:label "{{#username:Max Mustermann}}"@en.
    FILTER (LANG(?alt) = "en")  # Ensure the alias is in English
          ?user wdt:P23 ?item.
  } # and save them in a different var
      } }
 
      BIND(IF(BOUND(?item), "true", "false") as ?interested)
  # Default to the normal alias, but use the descriptiv one if it exists
  } UNION {
  BIND(IF (?aliasCount > 1, ?alt, ?alias) as ?SessionLabel)
      { # 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".}
   service wikibase:label { bd:serviceParam wikibase:language "en".}
} ORDER BY DESC(?resource)
} ORDER BY DESC(?SessionLabel)
LIMIT 80
LIMIT 50
| caption=A Todolist for {{#username:Max Mustermann}}
| height=35em
| height=30em
| caption=Alle Übungen des Kurses (nur eine Termin wird angezeigt)
}}
}}
</div>
</div>


==Erste Schritte mit GraphIT==
{{Note|type=info|text=[https://tinyurl.com/2b734b8r Query], die anzeigt, wie viele Items jede Session enthält}}
# '''GraphIT-Account einrichten'''
## Account einrichten via: [https://graphit.ur.de/register Registrierung]
### Der Benutzername wird öffentlich angezeigt, also gerne auch ein Pseudonym wählen
### Den Kurs "HCI 26SS" für die Teilnahme wählen
# ''' Benutzer-Item überprüfen'''
## Logge dich bei GraphIT ein (Menüpunkt ganz rechts oben)
## Dein Benutzer-Item findest du einfach über die Suchleiste (über deinen Benutzernamen)
## oder über deine Nutzerseite: [[User:{{#username:Max Mustermann}}]] (bist du nicht eingeloggt, wird auf eine Beispiel-Nutzerseite von "Max Mustermann" verlinkt).
## Hier sieht du alle Verknüpfungen die von oder auf dein Item zeigen. Aktuell sollten hier 3 Statements sein (siehe z.B. das Item Q630: [[Item:Q630|Markus Mustermann]])
### '[[Property:P3|instance of]]' (P3) + '[[Item:Q167|Student]]' (Q167)
### '[[Property:P28|username]]' (P28) + Benutzernamen (siehe Schritt 1)
### '[[Property:P25|participates in]]' (P25) + [[Item:Q2943|MMT 25/26WS]] (Q2943)
### &rarr; fehlt eines dieser Statements, füge es mit dem '+ <span style="color:#008CBA">add statement</span>' Button hinzu
# '''Vorkenntnisse und Interessen angeben'''
## Auf https://graph.graphit.ur.de/app/src/pages/selectionTools/ einmal mit Benutzername und Passwort (aus Schritt 1) anmelden.
## Oben rechts die Lehrveranstaltung "MMT 25WS" auswählen.
## Im angezeigten Graph die damit verbundenen Themen anschauen.
## Alle Themen als "completed" markieren, mit denen man sich schon befasst hat (auswählen und Taste '1' drücken bzw. den Button auf der rechten Seite).
## Mindestens fünf Themen als Interessen markieren (auswählen und Taste '2' drücken bzw. den Button auf der rechten Seite).
## '''Änderungen speichern über den 'save'-Button unten rechts!'''
## Auf der eigenen Item-Seite überprüfen ob die Interessen und Vorkenntnisse korrekt dokumentiert wurden.
Als ein Beispiel kann [[Item:Q157|Max Mustermann]] angesehen werden. Für eine detailiertere Übersicht kann die Seite [[ExampleStudent]] besucht werden.

Revision as of 12:22, 12 May 2026

Kurs Human-Computer Interaction, Sommersemester 2026

B.A. Medieninformatik, Universität Regensburg.

Overview

Die Vorlesung Grundlagen Human Computer Interaction vermittelt Basiswissen zu den folgenden Schwerpunktthemen:

  • Grundlagen der menschlichen Wahrnehmung
  • Handlungssteuerung
  • Interaktionsformen und -techniken
  • Ein- und Ausgabegeräte
  • Gestaltung von Benutzerschnittstellen
Wichtige Themen

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 Sie für alle Übungsblätter (Studienleistung) eine akzeptable Lösung abgeben, d.h. mindestens 75% der Punkte bei jedem Übungsblatt erreichen. Sie haben einen "Freischuss", d.h. Sie dürfen maximal ein Blatt nicht abgeben oder nicht bestehen.

Für Studierende des Studienganges Informatik (B.Sc.) ist die Abgabe der Übungsblätter freiwillig.


Für einen (großen) Graphen, der den gesamten Kurs zeigt hier klicken und ausführen.


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)


ℹ️ Query, die anzeigt, wie viele Items jede Session enthält