Compare commits
1 commit
d7aa0164e3
...
88a4cc128e
Author | SHA1 | Date | |
---|---|---|---|
![]() |
88a4cc128e |
|
@ -2,50 +2,58 @@
|
||||||
#set text(lang: "de", size: 10.5pt)
|
#set text(lang: "de", size: 10.5pt)
|
||||||
#set par(justify: true, leading: .5em, spacing: 0.5em)
|
#set par(justify: true, leading: .5em, spacing: 0.5em)
|
||||||
#set block(spacing: 0pt)
|
#set block(spacing: 0pt)
|
||||||
#set table(inset: (top: 2pt, x: 8pt), stroke: .5pt)
|
#set table(inset: (top: 2pt, bottom: 4pt, x: 8pt), stroke: .5pt)
|
||||||
#set grid(inset: (y: 3pt, x: 6pt))
|
#set grid(inset: (y: 3pt, x: 6pt))
|
||||||
#set grid.vline(stroke: .5pt)
|
#set grid.vline(stroke: .5pt)
|
||||||
#let checkbox(b) = if (b) {$times.square$} else {$square$}
|
|
||||||
#set linebreak(justify: true)
|
#set linebreak(justify: true)
|
||||||
#show underline: it => box(it)
|
#let checkbox(checked: false) = if (checked) {$times.square$} else {$square$}
|
||||||
|
#let input(width: 1fr, name: "", body) = box(width: width, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: (dash: "dotted")),align(right, [#body #label(name)]))
|
||||||
|
#let textarea(name: "", body) = [#body #label(name)]
|
||||||
#show emoji.pencil: "✎"
|
#show emoji.pencil: "✎"
|
||||||
|
|
||||||
#let pruefungsrahmen = (
|
|
||||||
"Prüfungsdatum": [],
|
|
||||||
"PrüferIn (Prof.)": [],
|
|
||||||
"BeisitzerIn": [],
|
|
||||||
)
|
|
||||||
|
|
||||||
#let modul = ""
|
|
||||||
#let bestanden = none
|
|
||||||
#let pruefungsdauer_minuten = 0
|
|
||||||
|
|
||||||
#grid(columns: (2cm, 15cm), align: bottom,
|
#grid(columns: (2cm, 15cm), align: bottom,
|
||||||
box(inset: (x: 3pt), image(width: 1.3cm, "fsmi-logo.svg")),
|
box(inset: (x: 3pt), image(width: 1.3cm, "fsmi-logo.svg")),
|
||||||
[
|
[
|
||||||
#set text(size: 15pt)
|
#set text(size: 15pt)
|
||||||
#set par(spacing: 3pt)
|
#set par(spacing: 3pt)
|
||||||
Fragebogen der Fachschaft zu
|
Fragebogen der Fachschaft zu
|
||||||
|
|
||||||
*mündlichen Vordiplomsprüfungen* im Informatikstudium
|
*mündlichen Vordiplomsprüfungen* im Informatikstudium
|
||||||
])
|
]
|
||||||
#grid(columns: 2*(1fr,), grid.vline(x:1), [
|
)
|
||||||
Dieser Fragebogen gibt den KommilitonInnen, die nach
|
|
||||||
Dir die Prüfung ablegen wollen, einen Einblick in Ab-
|
|
||||||
lauf und Inhalt der Prüfung. Das erleichtert die Vorbe-
|
|
||||||
reitung.
|
|
||||||
|
|
||||||
Bitte verwende zum Ausfüllen einen schwarzen Stift.
|
#grid(columns: 2*(1fr,), grid.vline(x:1),
|
||||||
|
[
|
||||||
|
Dieser Fragebogen gibt den KommilitonInnen, die nach
|
||||||
|
Dir die Prüfung ablegen wollen, einen Einblick in Ab-
|
||||||
|
lauf und Inhalt der Prüfung. Das erleichtert die Vorbe-
|
||||||
|
reitung.
|
||||||
|
|
||||||
Das erleichtert das Einscannen.
|
Bitte verwende zum Ausfüllen einen schwarzen Stift.
|
||||||
|
|
||||||
#for (key,value) in pruefungsrahmen {box(inset: (top: 1.2em), [*#key:*#box(width: 1fr, repeat[.])#value])}
|
Das erleichtert das Einscannen.
|
||||||
|
|
||||||
],
|
#box(height: 2em, align(bottom)[
|
||||||
[
|
*Prüfungsdatum:*#input(name: "date")[
|
||||||
#block(width: 7cm, inset: .3cm, align(center, [
|
// Hier ist Platz für deinen Kommentar.
|
||||||
Barcode:
|
]
|
||||||
#grid(
|
])
|
||||||
|
#box(height: 2em, align(bottom)[
|
||||||
|
*PrüferIn (Prof.):*#input(name: "examiner")[
|
||||||
|
// Hier ist Platz für deinen Kommentar.
|
||||||
|
]
|
||||||
|
])
|
||||||
|
#box(height: 2em, align(bottom)[
|
||||||
|
*BeisitzerIn:*#input(name: "assistant")[
|
||||||
|
// Hier ist Platz für deinen Kommentar.
|
||||||
|
]
|
||||||
|
])
|
||||||
|
],
|
||||||
|
[
|
||||||
|
#block(width: 7cm, inset: (top: 1.5em, bottom: .3cm, rest: .2cm), align(center,
|
||||||
|
[
|
||||||
|
Barcode: #v(2pt)
|
||||||
|
#grid(
|
||||||
columns: (.1cm, 7.8cm, .1cm),
|
columns: (.1cm, 7.8cm, .1cm),
|
||||||
rows: (.1cm, 2.5cm, .1cm),
|
rows: (.1cm, 2.5cm, .1cm),
|
||||||
stroke: (x,y) => (:
|
stroke: (x,y) => (:
|
||||||
|
@ -53,72 +61,98 @@ Das erleichtert das Einscannen.
|
||||||
bottom: if (x != 1 and y == 2) {.5pt},
|
bottom: if (x != 1 and y == 2) {.5pt},
|
||||||
left: if (y != 1 and x == 0) {.5pt},
|
left: if (y != 1 and x == 0) {.5pt},
|
||||||
right: if (y != 1 and x == 2) {.5pt},
|
right: if (y != 1 and x == 2) {.5pt},
|
||||||
))
|
))
|
||||||
]))
|
]))
|
||||||
*Fach:* \
|
*Fach:* \
|
||||||
#let modules = (
|
#set box(height: .5em, inset: (left: 5pt))
|
||||||
"Algo I",
|
#textarea(name: "lecture", {
|
||||||
"Algo II",
|
// box[#checkbox(checked: true) Dein Fach]
|
||||||
"Betriebssysteme",
|
box[#checkbox() Algo I]
|
||||||
"GdI",
|
box[#checkbox() Algo II]
|
||||||
"HM",
|
box[#checkbox() Betriebssysteme]
|
||||||
"KomDat",
|
box[#checkbox() GdI]
|
||||||
"Programmierparadigmen",
|
box[#checkbox() HM]
|
||||||
"SWT I",
|
box[#checkbox() KomDat]
|
||||||
"Theoretische Grundlagen der Informatik",
|
box[#checkbox() Programmierparadigmen]
|
||||||
"TI",
|
box[#checkbox() SWT I]
|
||||||
)
|
box[#checkbox() Theoretische Grundlagen der Informatik]
|
||||||
#for (module) in modules {box(inset: (right: 5pt))[#checkbox(false) #module]}
|
box[#checkbox() TI]
|
||||||
])
|
})
|
||||||
#table(columns: (7.4cm,2.4cm,8.2cm),
|
]
|
||||||
table.header(
|
|
||||||
[Veranstaltung ],[Jahr],[regelmäßig besucht?]),
|
|
||||||
[*Vorlesung*#v(.2cm)],[ ],[ ],
|
|
||||||
[*Übung* #v(.2cm)],[ ],[ ],
|
|
||||||
[*Tutorium* #v(.2cm)],[ ],[ ],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
#grid(columns: 2*(1fr,), grid.vline(x:1), inset: (y: .5cm),
|
#table(columns: (7.4cm,2.4cm,8.2cm), table.header(
|
||||||
[*Bestanden? #checkbox(bestanden == true) Ja / #checkbox(bestanden == false) Nein*],
|
[Veranstaltung ],[Jahr],[regelmäßig besucht?]),
|
||||||
|
[Vorlesung ],[ ],[ ],
|
||||||
|
[Übung ],[ ],[ ],
|
||||||
|
[Tutorium ],[ ],[ ],
|
||||||
|
) <attendance>
|
||||||
|
|
||||||
|
#grid(columns: 2*(1fr,), inset: (y: .5cm), grid.vline(x:1),
|
||||||
|
textarea(name: "did_pass")[
|
||||||
|
*Bestanden?
|
||||||
|
#checkbox(checked: false) Ja /
|
||||||
|
#checkbox(checked: false) Nein*
|
||||||
|
],
|
||||||
box(width: 6cm)[
|
box(width: 6cm)[
|
||||||
*Prüfungsdauer: #box(width: 1fr, repeat[.])
|
*Prüfungsdauer: #input(name: "exam_duration")[
|
||||||
#if (pruefungsdauer_minuten > 0) {pruefungsdauer_minuten}
|
// Hier ist Platz für deinen Kommentar.
|
||||||
|
]
|
||||||
Minuten*
|
Minuten*
|
||||||
])
|
]
|
||||||
|
)
|
||||||
#grid(columns: 2*(1fr,), rows: (3.5cm,2.8cm,7.3cm), grid.vline(x:1),
|
#grid(columns: 2*(1fr,), rows: (3.5cm,2.8cm,7.3cm), grid.vline(x:1),
|
||||||
[
|
[
|
||||||
#emoji.pencil Wie lange und wie hast Du Dich
|
#emoji.pencil Wie lange und wie hast Du Dich \
|
||||||
#underline[alleine bzw. mit anderen vorbereitet]?
|
#underline[alleine bzw. mit anderen vorbereitet]?
|
||||||
],
|
#textarea(name: "preparation_time")[
|
||||||
grid.cell(rowspan: 2)[
|
// Hier ist Platz für deinen Kommentar.
|
||||||
|
]
|
||||||
|
],
|
||||||
|
grid.cell(rowspan: 2)[
|
||||||
#emoji.pencil Welche #underline[Tips zur Vorbereitung] kannst Du geben? \
|
#emoji.pencil Welche #underline[Tips zur Vorbereitung] kannst Du geben? \
|
||||||
#text(size: 8.5pt)[(Wichtige / Unwichtige Teile des Stoffes, gute Bücher / Skripten, Lernstil)]
|
#text(size: 8.5pt)[(Wichtige / Unwichtige Teile des Stoffes, gute Bücher / Skripten, Lernstil)]
|
||||||
],
|
#textarea(name: "preparations")[
|
||||||
[
|
// Hier ist Platz für deinen Kommentar.
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
#emoji.pencil Fanden vor der Prüfung #underline[Absprachen] zu Form oder
|
#emoji.pencil Fanden vor der Prüfung #underline[Absprachen] zu Form oder
|
||||||
Inhalt statt? Wurden sie #underline[eingehalten]?
|
Inhalt statt? Wurden sie #underline[eingehalten]?
|
||||||
],
|
#textarea(name: "agreements")[
|
||||||
[
|
// Hier ist Platz für deinen Kommentar.
|
||||||
#emoji.pencil Kannst Du Ratschläge für das #underline[Verhalten in der Prüfung] geben?
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
#emoji.pencil Kannst Du Ratschläge für das \ #underline[Verhalten in der Prüfung] geben?
|
||||||
|
#textarea(name: "examinee_behavior")[
|
||||||
|
// Hier ist Platz für deinen Kommentar.
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
#emoji.pencil Wie war der #underline[Prüfungsstil des Prüfers / der Prüferin?] \
|
#emoji.pencil Wie war der #underline[Prüfungsstil des Prüfers / der Prüferin?] \
|
||||||
#text(size: 8.5pt)[(Prüfungsathmosphäre, (un)klare Fragestellungen, Fragen nach \
|
#text(size: 8.5pt)[
|
||||||
Einzelheiten oder eher größeren Zusammenhängen, kamen häufiger Zwischenfragen
|
(Prüfungsathmosphäre, (un)klare Fragestellungen, Fragen nach \
|
||||||
oder ließ er/sie Dich erzählen, wurde Dir weitergeholfen, wurde in Wissenslücken
|
Einzelheiten oder eher größeren Zusammenhängen, kamen häufiger
|
||||||
gebohrt?)]
|
Zwischenfragen oder ließ er/sie Dich erzählen, wurde Dir weitergeholfen,
|
||||||
]
|
wurde in Wissenslücken gebohrt?)
|
||||||
|
]
|
||||||
|
#textarea(name: "examiner_behavior")[
|
||||||
|
// Hier ist Platz für deinen Kommentar.
|
||||||
|
]
|
||||||
|
]
|
||||||
)
|
)
|
||||||
#line(length: 100%, stroke: .5pt)
|
#line(length: 100%, stroke: .5pt)
|
||||||
#v(2pt)
|
#v(2pt)
|
||||||
#[
|
#text(size: 13pt)[*Inhalte der Prüfung:*] $-->$ Bitte auf die Rückseite und weitere Blätter!
|
||||||
#text(size: 13pt)[*Inhalte der Prüfung:*] $-->$ Bitte auf die Rückseite und weitere Blätter!
|
#v(1.2em)
|
||||||
#v(1.2em)
|
|
||||||
|
|
||||||
#set list(spacing: 1.2em, indent: 1.5em)
|
#set list(spacing: 1.2em, indent: 1.5em)
|
||||||
- Schreibe bitte möglichst viele Fragen und Antworten auf.
|
- Schreibe bitte möglichst viele Fragen und Antworten auf.
|
||||||
- Wo wurde nach Herleitungen oder Beweisen gefragt oder sonstwie nachgehakt?
|
- Wo wurde nach Herleitungen oder Beweisen gefragt oder sonstwie nachgehakt?
|
||||||
- Worauf wollte der Prüfer / die Prüferin hinaus?
|
- Worauf wollte der Prüfer / die Prüferin hinaus?
|
||||||
- Welche Fragen gehörten nicht zum eigentlichen Stoff?
|
- Welche Fragen gehörten nicht zum eigentlichen Stoff?
|
||||||
]
|
|
||||||
|
#colbreak()
|
||||||
|
// Hier ist Platz für deinen Kommentar.
|
||||||
|
|
||||||
|
|
|
@ -32,80 +32,7 @@
|
||||||
],
|
],
|
||||||
doc
|
doc
|
||||||
) = [
|
) = [
|
||||||
#set page("a4", margin: (top: 1cm, bottom: 0cm, rest: 1.55cm))
|
#let checkbox(checked: false) = if (checked) {$times.square$} else {$square$}
|
||||||
#set text(lang: "de", size: 10.5pt)
|
|
||||||
#page[
|
|
||||||
#set par(justify: true, leading: .5em, spacing: 0.5em)
|
|
||||||
#set block(spacing: 0pt)
|
|
||||||
#set table(inset: (top: 2pt, bottom: 4pt, x: 8pt), stroke: .5pt)
|
|
||||||
#set grid(inset: (y: 3pt, x: 6pt))
|
|
||||||
#set grid.vline(stroke: .5pt)
|
|
||||||
#set linebreak(justify: true)
|
|
||||||
#let checkbox(b) = if (b) {$times.square$} else {$square$}
|
|
||||||
#let input(width: 1fr, body) = box(width: width, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: (dash: "dotted")),align(right, body))
|
|
||||||
#show emoji.pencil: "✎"
|
|
||||||
|
|
||||||
#grid(columns: (2cm, 15cm), align: bottom,
|
|
||||||
box(inset: (x: 3pt), image(width: 1.3cm, "fsmi-logo.svg")),
|
|
||||||
[
|
|
||||||
#set text(size: 15pt)
|
|
||||||
#set par(spacing: 3pt)
|
|
||||||
Fragebogen der Fachschaft zu
|
|
||||||
|
|
||||||
*mündlichen Vordiplomsprüfungen* im Informatikstudium
|
|
||||||
])
|
|
||||||
#grid(columns: 2*(1fr,), grid.vline(x:1), [
|
|
||||||
Dieser Fragebogen gibt den KommilitonInnen, die nach
|
|
||||||
Dir die Prüfung ablegen wollen, einen Einblick in Ab-
|
|
||||||
lauf und Inhalt der Prüfung. Das erleichtert die Vorbe-
|
|
||||||
reitung.
|
|
||||||
|
|
||||||
Bitte verwende zum Ausfüllen einen schwarzen Stift.
|
|
||||||
|
|
||||||
Das erleichtert das Einscannen.
|
|
||||||
|
|
||||||
#let pruefungsrahmen = (
|
|
||||||
"Prüfungsdatum": if date.year() > 0 {date.display("[day].[month].[year]")},
|
|
||||||
"PrüferIn (Prof.)": examiner,
|
|
||||||
"BeisitzerIn": assistant,
|
|
||||||
)
|
|
||||||
#for (key,value) in pruefungsrahmen {
|
|
||||||
box(height: 2em, align(bottom)[*#key:*#input(value)])
|
|
||||||
}
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
#block(width: 7cm, inset: (top: 1.5em, bottom: .3cm, rest: .2cm), align(center,
|
|
||||||
[
|
|
||||||
Barcode: #v(2pt)
|
|
||||||
#grid(
|
|
||||||
columns: (.1cm, 7.8cm, .1cm),
|
|
||||||
rows: (.1cm, 2.5cm, .1cm),
|
|
||||||
stroke: (x,y) => (:
|
|
||||||
top: if (x != 1 and y == 0) {.5pt},
|
|
||||||
bottom: if (x != 1 and y == 2) {.5pt},
|
|
||||||
left: if (y != 1 and x == 0) {.5pt},
|
|
||||||
right: if (y != 1 and x == 2) {.5pt},
|
|
||||||
))
|
|
||||||
]))
|
|
||||||
*Fach:* \
|
|
||||||
#v(-2pt)
|
|
||||||
#let modules = if lecture.len() > 0 {(lecture,)} else {(
|
|
||||||
"Algo I",
|
|
||||||
"Algo II",
|
|
||||||
"Betriebssysteme",
|
|
||||||
"GdI",
|
|
||||||
"HM",
|
|
||||||
"KomDat",
|
|
||||||
"Programmierparadigmen",
|
|
||||||
"SWT I",
|
|
||||||
"Theoretische Grundlagen der Informatik",
|
|
||||||
"TI",
|
|
||||||
)}
|
|
||||||
#for module in modules.flatten() {
|
|
||||||
box(height: .5em, inset: (left: 5pt))[#checkbox(lecture.len() > 0) #module]
|
|
||||||
}
|
|
||||||
])
|
|
||||||
|
|
||||||
#let events = (
|
#let events = (
|
||||||
"Vorlesung": (year: "", did_attend: ""),
|
"Vorlesung": (year: "", did_attend: ""),
|
||||||
|
@ -113,61 +40,37 @@
|
||||||
"Tutorium": (year: "", did_attend: ""),
|
"Tutorium": (year: "", did_attend: ""),
|
||||||
..attendance
|
..attendance
|
||||||
)
|
)
|
||||||
#table(columns: (7.4cm,2.4cm,8.2cm),
|
|
||||||
table.header(
|
#show <date>: if date.year() > 0 {date.display("[day].[month].[year]")}
|
||||||
[Veranstaltung ],[Jahr],[regelmäßig besucht?]),
|
#show <examiner>: examiner
|
||||||
|
#show <assistant>: assistant
|
||||||
|
#show <exam_duration>: if exam_duration.minutes() > 0 [#exam_duration.minutes()]
|
||||||
|
#show <preparation_time>: preparation_time
|
||||||
|
#show <agreements>: agreements
|
||||||
|
#show <preparations>: preparations
|
||||||
|
#show <examinee_behavior>: examinee_behavior
|
||||||
|
#show <examiner_behavior>: examiner_behavior
|
||||||
|
#show <did_pass>: [
|
||||||
|
*Bestanden?
|
||||||
|
#checkbox(checked: did_pass == true) Ja /
|
||||||
|
#checkbox(checked: did_pass == false) Nein*
|
||||||
|
]
|
||||||
|
#show <lecture>: it => if lecture.len() > 0 {
|
||||||
|
box[#checkbox(checked: true) #lecture]
|
||||||
|
} else {it}
|
||||||
|
#show <attendance>: it => {
|
||||||
|
let g = it.fields()
|
||||||
|
let _ = g.remove("children")
|
||||||
|
let _ = g.remove("label")
|
||||||
|
table(..g,
|
||||||
|
..it.fields().children.at(0).children,
|
||||||
..events.pairs().map(((location, (year, did_attend))) =>
|
..events.pairs().map(((location, (year, did_attend))) =>
|
||||||
(box(height: 1.2em)[*#location*], [#year], [#did_attend])
|
(box(height: 1.2em)[*#location*], [#year], [#did_attend])).flatten()
|
||||||
).flatten()
|
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
#grid(columns: 2*(1fr,), grid.vline(x:1), inset: (y: .5cm),
|
#include "bachelor.typ"
|
||||||
[*Bestanden? #checkbox(did_pass == true) Ja / #checkbox(did_pass == false) Nein*],
|
|
||||||
box(width: 6cm)[
|
|
||||||
*Prüfungsdauer: #input[
|
|
||||||
#if (exam_duration.minutes() > 0) {exam_duration.minutes()}
|
|
||||||
]
|
|
||||||
Minuten*
|
|
||||||
])
|
|
||||||
#grid(columns: 2*(1fr,), rows: (3.5cm,2.8cm,7.3cm), grid.vline(x:1),
|
|
||||||
[
|
|
||||||
#emoji.pencil Wie lange und wie hast Du Dich \
|
|
||||||
#underline[alleine bzw. mit anderen vorbereitet]?
|
|
||||||
#preparation_time
|
|
||||||
],
|
|
||||||
grid.cell(rowspan: 2)[
|
|
||||||
#emoji.pencil Welche #underline[Tips zur Vorbereitung] kannst Du geben? \
|
|
||||||
#text(size: 8.5pt)[(Wichtige / Unwichtige Teile des Stoffes, gute Bücher / Skripten, Lernstil)]
|
|
||||||
#preparations
|
|
||||||
],
|
|
||||||
[
|
|
||||||
#emoji.pencil Fanden vor der Prüfung #underline[Absprachen] zu Form oder
|
|
||||||
Inhalt statt? Wurden sie #underline[eingehalten]?
|
|
||||||
#agreements
|
|
||||||
],
|
|
||||||
[
|
|
||||||
#emoji.pencil Kannst Du Ratschläge für das \ #underline[Verhalten in der Prüfung] geben?
|
|
||||||
#examinee_behavior
|
|
||||||
],
|
|
||||||
[
|
|
||||||
#emoji.pencil Wie war der #underline[Prüfungsstil des Prüfers / der Prüferin?] \
|
|
||||||
#text(size: 8.5pt)[(Prüfungsathmosphäre, (un)klare Fragestellungen, Fragen nach \
|
|
||||||
Einzelheiten oder eher größeren Zusammenhängen, kamen häufiger Zwischenfragen
|
|
||||||
oder ließ er/sie Dich erzählen, wurde Dir weitergeholfen, wurde in Wissenslücken
|
|
||||||
gebohrt?)]
|
|
||||||
#examiner_behavior
|
|
||||||
])
|
|
||||||
#line(length: 100%, stroke: .5pt)
|
|
||||||
#v(2pt)
|
|
||||||
#text(size: 13pt)[*Inhalte der Prüfung:*] $-->$ Bitte auf die Rückseite und weitere Blätter!
|
|
||||||
#v(1.2em)
|
|
||||||
|
|
||||||
#set list(spacing: 1.2em, indent: 1.5em)
|
|
||||||
- Schreibe bitte möglichst viele Fragen und Antworten auf.
|
|
||||||
- Wo wurde nach Herleitungen oder Beweisen gefragt oder sonstwie nachgehakt?
|
|
||||||
- Worauf wollte der Prüfer / die Prüferin hinaus?
|
|
||||||
- Welche Fragen gehörten nicht zum eigentlichen Stoff?
|
|
||||||
]
|
|
||||||
#doc
|
#doc
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue