Courses/ASE 24WS: Difference between revisions

m (style adjustements (add borders + change height of todo list))
(→‎Timetable: fix alias query)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<div style="font-size:35px; font-weight:bold"> Kurs Advanced Software Engineering, Wintersemester 24/25 </div> <!--so it doesn't show up in TOC-->
<div style="font-size:35px; font-weight:bold"> Kurs Advanced Software Engineering, Wintersemester 24/25 </div> <!--so it doesn't show up in TOC-->
M.Sc. Medieninformatik, Universität Regensburg.
M.Sc. Medieninformatik, Universität Regensburg.
Imagemap?


<div style="float:right; width:25em;">__TOC__</div>  
<div style="float:right; width:25em;">__TOC__</div>  
Line 11: Line 7:
<!-- Links to important/official resources -->
<!-- Links to important/official resources -->
<div style="width:40em; padding-bottom: 7px; background-color:#fff2e5; border: solid 2px #ffcc99">
<div style="width:40em; padding-bottom: 7px; background-color:#fff2e5; border: solid 2px #ffcc99">
* Der Kurs in [... GRIPS] (TODO)
* Der Kurs in [https://elearning.uni-regensburg.de/course/view.php?id=68743 GRIPS]
* Der Kurs in [https://campusportal.uni-regensburg.de:443/qisserver/pages/startFlow.xhtml?_flowId=detailView-flow&unitId=22990&periodId=426&navigationPosition=studiesOffered,courseoverviewShow SPUR]
* Der Kurs in [https://campusportal.uni-regensburg.de:443/qisserver/pages/startFlow.xhtml?_flowId=detailView-flow&unitId=22990&periodId=426&navigationPosition=studiesOffered,courseoverviewShow SPUR]
* Das GraphIT-Item für den Kurs: [[Item:Q1022]]
* Das GraphIT-Item für den Kurs: [[Item:Q1022]]
* Folien?
* [https://wiki.mi.ur.de/lehre/ws24/ase_24ws/start Tutorials] used in the Practice Sessions
</div>
</div>


Line 61: Line 57:
<blockquote>
<blockquote>
For a graph showing the full course click [https://tinyurl.com/23vz49ul here].
For a graph showing the full course click [https://tinyurl.com/23vz49ul here].
For a graph showing the goals of the course and their immediate prerequisites click [https://tinyurl.com/29qlmvzd here].
</blockquote>
</blockquote>


{{Note|text=TODO: Required Prerequisites, Goals}}
<!-- Table that contains simple/fast queries for the beggining & ending nodes of a course -->
{| class="wikitable"
! '''Required Knowledge''' !! '''Goals'''
|-
<!-- 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 {
  wd:Q1022 wdt:P14/wdt:P14 ?item. # get all items in course
 
  ?item wdt:P1 ?Vorwissen. # get the prerequsites
  MINUS { wd:Q1022 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, not part of the Course, but that are required knowledge
 
|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:Q1022 wdt:P36 ?Ziel.
  service wikibase:label { bd:serviceParam wikibase:language "en".}
} LIMIT 20
|caption=Items, marked as goals
|height=20vh
}}
|-
<!-- Linke Spalte -->
| [https://tinyurl.com/25gbeeea Full screen view of the Query]
<!-- Rechte Spalte -->
| [https://tinyurl.com/2c2qgg48 Full screen view of the Query]
|}
 
 


=== Timetable ===
=== Timetable ===
Line 69: Line 111:
{{#widget:SPARQLquery|code=
{{#widget:SPARQLquery|code=
#defaultView:Timeline
#defaultView:Timeline
# title: Alle geplanten Termine
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 ?Datum ?Session ?SessionLabel ?Inhalte ?InhalteLabel
select distinct ?Datum ?Session ?SessionLabel # ?Inhalte ?InhalteLabel
# ?item # for debug
where {
where {
   # todo. change Q:468 to current course
   # todo. change Q:468 to current course
   wd:Q1022 wdt:P14 ?Session.
   wd:Q1022 wdt:P14 ?Session.
   ?Session wdt:P3 wd:Q427.  
   ?Session wdt:P3 wd:Q427.  
   ?Session wdt:P19 ?Datum.
   ?Session wdt:P19 ?Datum.  
   # OPTIONAL {?Session wdt:P14 ?Inhalte.}
   # OPTIONAL {?Session wdt:P14 ?Inhalte.}  
 
  # re-get the alias as ?SessionLabel (for the links)
   ?Session skos:altLabel ?SessionLabel.
   ?Session skos:altLabel ?SessionLabel.
   OPTIONAL { FILTER (!regex(?SessionLabel, "ASE", "i")) } # get the alias, that describes the session (i.e. not e.g. ASE 24WS - 01a)
  FILTER (LANG(?SessionLabel) = "de").
 
  # Filter out all descriptive alias (aka. don't use a "[Course] - 01a"-type label)
   OPTIONAL {
    ?Session skos:altLabel ?alt.
    FILTER (!regex(?alt, "ASE", "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".}
   service wikibase:label { bd:serviceParam wikibase:language "en".}
} ORDER BY ASC(?Datum)
} ORDER BY ASC(?Datum)
LIMIT 50
| height=38em
| height=38em
| caption=Planned Sessions
| caption=Planned Sessions
Line 102: Line 156:
   OPTIONAL {
   OPTIONAL {
     SELECT ?item ?itemLabel (COUNT(DISTINCT ?student) as ?known) WHERE {
     SELECT ?item ?itemLabel (COUNT(DISTINCT ?student) as ?known) WHERE {
      ?student wdt:P25 wd:Q1022.
       ?student wdt:P12 ?item.
       ?student wdt:P12 ?item.
     } GROUP BY ?item ?itemLabel
     } GROUP BY ?item ?itemLabel
Line 107: Line 162:
   OPTIONAL {
   OPTIONAL {
     SELECT ?item ?itemLabel (COUNT(DISTINCT ?student) as ?interests) WHERE {
     SELECT ?item ?itemLabel (COUNT(DISTINCT ?student) as ?interests) WHERE {
      ?student wdt:P25 wd:Q1022.
       ?student wdt:P23 ?item.
       ?student wdt:P23 ?item.
     } GROUP BY ?item ?itemLabel
     } GROUP BY ?item ?itemLabel
Line 118: Line 174:


=== Preview ===
=== Preview ===
A list of things to be discussed in the upcomming session.
A list of things to be discussed in the upcoming session.


<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
<div style="border: solid 5px #d2d6e0; background-color:#eaecf0;">
Line 183: Line 239:
}}
}}
</div>
</div>
=== Additional Learning ===
Items, that are part of the course, but are not [[Property:P14|included]] in a Session. Meaning that they either weren't discussed, or weren't discussed in depth.
{{#widget:SPARQLquery|code=
#defaultView:Table
PREFIX wdt: <https://graphit.ur.de/prop/direct/>
PREFIX wd: <https://graphit.ur.de/entity/>
select distinct
?category ?categoryLabel
?item ?itemLabel
where {
  # get all items in categories
  wd:Q1022 wdt:P14 ?category.
  ?category wdt:P3 wd:Q169.
  ?category wdt:P14 ?item.
 
  MINUS {
    # Remove all items that are included in Sessions
    wd:Q1022 wdt:P14 ?session.
    ?session wdt:P3 wd:Q427.
    ?item ^wdt:P14 ?session.
  }
  service wikibase:label { bd:serviceParam wikibase:language "en".}
} LIMIT 200
| caption=Items not "included in" a Session of the course.
}}
<small>Or they haven't been added yet.</small>


==Erste Schritte mit GraphIT==
==Erste Schritte mit GraphIT==
Line 188: Line 273:
##Account anlegen (gerne mit Pseudonym oder Initialen): [[Special:CreateAccount]].  
##Account anlegen (gerne mit Pseudonym oder Initialen): [[Special:CreateAccount]].  
##Einen ''Graph User'' (einfach ein Item) mit gleichem Namen anlegen (siehe z.B. das Item Q630: [[Item:Q630|Markus Mustermann]]):
##Einen ''Graph User'' (einfach ein Item) mit gleichem Namen anlegen (siehe z.B. das Item Q630: [[Item:Q630|Markus Mustermann]]):
###auf [[Special:NewItem]] gehen oder oben im Menü "Items -> New Item" auswählen.
###auf [[Special:NewItem]] gehen oder oben im Menü "Items New Item" auswählen.
###Label (für Sprache Englisch): ''<eigener Name>''
###Label (für Sprache Englisch): ''<eigener Name>''
###Description (für Sprache Englisch): ''Student at University of Regensburg (<eigener Name>)''  // Hinweis: in WikiBase dürfen unterschiedliche Items nicht die gleiche Beschreibung haben, deshalb bitte den eigenen Namen noch dranhängen
###Description (für Sprache Englisch): ''Student at University of Regensburg (<eigener Name>)''  // Hinweis: in WikiBase dürfen unterschiedliche Items nicht die gleiche Beschreibung haben, deshalb bitte den eigenen Namen noch dranhängen
Line 195: Line 280:
###'[[Property:P3|instance of]]' (P3) + '[[Item:Q167|Student]]' (Q167)
###'[[Property:P3|instance of]]' (P3) + '[[Item:Q167|Student]]' (Q167)
###'[[Property:P28|username]]' (P28) + Benutzernamen (siehe Schritt 1)
###'[[Property:P28|username]]' (P28) + Benutzernamen (siehe Schritt 1)
###'[[Property:P25|participates in]]' (P25) + [[Item:Q926|Wissenschaftliches Arbeiten SS 2024]] (Q926)
###'[[Property:P25|participates in]]' (P25) + [[Item:Q1022|ASE WS 2024]] (Q1022)
##Auf der eigenen Benutzerseite (des Accounts) einen Link zum eigenen Item anlegen:
##Auf der eigenen Benutzerseite (des Accounts) einen Link zum eigenen Item anlegen:
###[https://graphit.ur.de/w/index.php?title=Special:MyPage&action=edit Benutzerseite anlegen/bearbeiten]
###[https://graphit.ur.de/w/index.php?title=Special:MyPage&action=edit Benutzerseite anlegen/bearbeiten]
Line 201: Line 286:
#'''Vorkenntnisse und Interessen angeben'''
#'''Vorkenntnisse und Interessen angeben'''
##Auf https://test.graphit.ur.de/app/src/pages/selectionTools/ einmal mit Benutzername und Passwort (aus Schritt 1) anmelden. Achtung: das Passwort wird momentan beim Eintippen angezeigt.
##Auf https://test.graphit.ur.de/app/src/pages/selectionTools/ einmal mit Benutzername und Passwort (aus Schritt 1) anmelden. Achtung: das Passwort wird momentan beim Eintippen angezeigt.
##Oben rechts die Lehrveranstaltung "CGBV 24SS" auswählen.
##Oben rechts die Lehrveranstaltung "ASE 24WS" auswählen.
##Im angezeigten Graph die damit verbundenen Themen anschauen.
##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).  
##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).  

Latest revision as of 15:06, 18 November 2024

Kurs Advanced Software Engineering, Wintersemester 24/25

M.Sc. Medieninformatik, Universität Regensburg.



Overview

The course gives an overview of current issues and trends in Software Engineering.


Important Topics

Full Query

It discusses strategies, patterns and automations to help develop and maintain complex software.


The course includes bi-weekly practice sessions to teach the students practical skills using excercises and examples.

At the end of the semester each student has to turn in a project, in which they use their new found skills in developing a small contained application.


For a graph showing the full course click here.

For a graph showing the goals of the course and their immediate prerequisites click here.

Required Knowledge Goals

Items, not part of the Course, but that are required knowledge

Items, marked as goals

Full screen view of the Query Full screen view of the Query


Timetable

Planned Sessions

Interests & Knowledge

A graph showing the items students have marked as "interesting" or "known".

Preview

A list of things to be discussed in the upcoming session.

A Todolist for Max Mustermann

Additional Learning

Items, that are part of the course, but are not included in a Session. Meaning that they either weren't discussed, or weren't discussed in depth.

Items not "included in" a Session of the course.

Or they haven't been added yet.


Erste Schritte mit GraphIT

  1. GraphIT-Account einrichten
    1. Account anlegen (gerne mit Pseudonym oder Initialen): Special:CreateAccount.
    2. Einen Graph User (einfach ein Item) mit gleichem Namen anlegen (siehe z.B. das Item Q630: Markus Mustermann):
      1. auf Special:NewItem gehen oder oben im Menü "Items → New Item" auswählen.
      2. Label (für Sprache Englisch): <eigener Name>
      3. Description (für Sprache Englisch): Student at University of Regensburg (<eigener Name>) // Hinweis: in WikiBase dürfen unterschiedliche Items nicht die gleiche Beschreibung haben, deshalb bitte den eigenen Namen noch dranhängen
      4. Button 'Create' anklicken
    3. Statements beim Benutzer-Item hinzufügen (siehe z.B. das Item Q630: Markus Mustermann):
      1. 'instance of' (P3) + 'Student' (Q167)
      2. 'username' (P28) + Benutzernamen (siehe Schritt 1)
      3. 'participates in' (P25) + ASE WS 2024 (Q1022)
    4. Auf der eigenen Benutzerseite (des Accounts) einen Link zum eigenen Item anlegen:
      1. Benutzerseite anlegen/bearbeiten
      2. Folgenden Text dort einfügen und Seite speichern (mit eigenem Item statt Platzhalter): My GraphIT item: [[Item:Q123]]. Achtung: das Item muss ein Link sein, d.h. entweder im grafischen Editor verlinken oder im Quellcode-Editor in eckigen Klammern schreiben.
  2. Vorkenntnisse und Interessen angeben
    1. Auf https://test.graphit.ur.de/app/src/pages/selectionTools/ einmal mit Benutzername und Passwort (aus Schritt 1) anmelden. Achtung: das Passwort wird momentan beim Eintippen angezeigt.
    2. Oben rechts die Lehrveranstaltung "ASE 24WS" auswählen.
    3. Im angezeigten Graph die damit verbundenen Themen anschauen.
    4. 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).
    5. Mindestens fünf Themen als Interessen markieren (auswählen und Taste '2' drücken bzw. den Button auf der rechten Seite).
    6. Änderungen speichern über den 'save'-Button unten rechts!
    7. Auf der eigenen Item-Seite überprüfen ob die Interessen und Vorkenntnisse korrekt dokumentiert wurden.

Als ein Beispiel kann Max Mustermann angesehen werden. Für eine detailiertere Übersicht kann die Seite ExampleStudent besucht werden.