<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>KI</title>
	<atom:link href="https://gymnasium-oberpfalz.de/category/ki/feed/" rel="self" type="application/rss+xml" />
	<link>https://gymnasium-oberpfalz.de</link>
	<description></description>
	<lastBuildDate>Mon, 27 Apr 2026 16:32:13 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://gymnasium-oberpfalz.de/wp-content/uploads/2024/02/cropped-BDB-Logo-1-32x32.jpg</url>
	<title>KI</title>
	<link>https://gymnasium-oberpfalz.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>rechtzeitig zum Abitur &#8211; Das KM schärft die Informationen zum Unterschleif mit KI nach</title>
		<link>https://gymnasium-oberpfalz.de/2026/04/27/rechtzeitig-zum-abitur-das-km-schaerft-die-informationen-zum-unterschleif-mit-ki-nach/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/04/27/rechtzeitig-zum-abitur-das-km-schaerft-die-informationen-zum-unterschleif-mit-ki-nach/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 16:21:02 +0000</pubDate>
				<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[IT-Sicherheit]]></category>
		<category><![CDATA[KI]]></category>
		<category><![CDATA[Unterricht]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=54841</guid>

					<description><![CDATA[Am 08. April 2026 schärfte das Kultusministerium seine Informationsseite zum Unterschleif mit KI nach. Es gibt nun neue Informationen und Hilfestellungen zur Verhinderung von Unterschleif in Prüfungen mit KI. Das KM nennt hier nun die Methoden mit kaum sichtbaren In-Ear-Kopfhörern,...]]></description>
										<content:encoded><![CDATA[
<p>Am 08. April 2026 schärfte das Kultusministerium seine<a href="https://www.km.bayern.de/gestalten/digitalisierung/kuenstliche-intelligenz/unterschleif" target="_blank" rel="noreferrer noopener"> Informationsseite zum Unterschleif mit KI</a> nach. Es gibt nun neue Informationen und Hilfestellungen zur Verhinderung von Unterschleif in Prüfungen mit KI. Das KM nennt hier nun die Methoden mit kaum sichtbaren In-Ear-Kopfhörern, Kameras, und  KI-Stiften. Unterschleifmethoden, die die Beratung digitale Bildung im <a href="https://gymnasium-oberpfalz.de/newsletter/?email_id=374" target="_blank" rel="noreferrer noopener">Newsletter vom 22.03.2026</a> bereits vorgestellt hatte.<br>Neu hinzugekommen sind Informationen zur Internetfähigkeit von modernen wissenschaftlichen Taschenrechnern und zu KI-Ringen.  </p>



<p></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/04/27/rechtzeitig-zum-abitur-das-km-schaerft-die-informationen-zum-unterschleif-mit-ki-nach/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Vibe-Coding: digitale Slinky-Erkundung</title>
		<link>https://gymnasium-oberpfalz.de/2026/04/22/vibe-coding-digitale-slinky-erkundung/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/04/22/vibe-coding-digitale-slinky-erkundung/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Wed, 22 Apr 2026 09:52:50 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[Methodenkniff mit Piff]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Vibe-Coding]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=54750</guid>

					<description><![CDATA[Ein weiteres sehr gelungenes Beispiel für ein interaktives Vibe-Coding Ergebnis. Dankenswerterweise bereitgestellt von B. Dietrich (Stiftland-Gymnasium Tirschenreuth). Kontakt für eine SchiLF oder RLFB kann über die Beratung digitale Bildung hergestellt werden. Hier das lauffähige html-Programm. Viel Spaß beim Ausprobieren! Digitale...]]></description>
										<content:encoded><![CDATA[
<p>Ein weiteres sehr gelungenes Beispiel für ein interaktives Vibe-Coding Ergebnis.</p>



<p>Dankenswerterweise bereitgestellt von B. Dietrich (Stiftland-Gymnasium Tirschenreuth). </p>



<p>Kontakt für eine SchiLF oder RLFB kann über die Beratung digitale Bildung hergestellt werden.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1851" height="866" src="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Screenshot-2026-04-22-120716.jpg" alt="" class="wp-image-54755" style="aspect-ratio:16/9;object-fit:cover" srcset="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Screenshot-2026-04-22-120716.jpg 1851w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Screenshot-2026-04-22-120716-300x140.jpg 300w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Screenshot-2026-04-22-120716-1024x479.jpg 1024w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Screenshot-2026-04-22-120716-768x359.jpg 768w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Screenshot-2026-04-22-120716-1536x719.jpg 1536w" sizes="(max-width: 1851px) 100vw, 1851px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Hier das lauffähige html-Programm.</p>



<p>Viel Spaß beim Ausprobieren!</p>



<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Digitale Slinky-Erkundung</title>
  <style>
    :root {
      --bg: #f3f7fb;
      --card: #ffffff;
      --line: #d9e3f0;
      --text: #17324d;
      --muted: #5b7187;
      --accent: #2f80ed;
      --accent-2: #27ae60;
      --shadow: 0 10px 30px rgba(25, 61, 100, 0.12);
    }

    * { box-sizing: border-box; }

    body {
      margin: 0;
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
      background: linear-gradient(180deg, #eef5ff 0%, var(--bg) 100%);
      color: var(--text);
    }

    .app {
      max-width: 1200px;
      margin: 0 auto;
      padding: 18px;
    }

    .hero {
      background: var(--card);
      border-radius: 24px;
      box-shadow: var(--shadow);
      padding: 24px;
      margin-bottom: 18px;
      border: 1px solid #e8eef6;
    }

    .hero h1 {
      margin: 0 0 10px;
      font-size: clamp(1.8rem, 3vw, 2.6rem);
      line-height: 1.1;
    }

    .hero p {
      margin: 0;
      color: var(--muted);
      font-size: 1.02rem;
      line-height: 1.5;
      max-width: 850px;
    }

    .layout {
      display: grid;
      grid-template-columns: 360px 1fr;
      gap: 18px;
    }

    .panel, .stage-card {
      background: var(--card);
      border-radius: 24px;
      box-shadow: var(--shadow);
      border: 1px solid #e8eef6;
    }

    .panel {
      padding: 18px;
      display: flex;
      flex-direction: column;
      gap: 18px;
    }

    .section h2 {
      margin: 0 0 10px;
      font-size: 1.05rem;
    }

    .section p {
      margin: 0;
      color: var(--muted);
      line-height: 1.45;
      font-size: 0.97rem;
    }

    .button-row, .toggle-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    button {
      border: none;
      border-radius: 18px;
      padding: 14px 16px;
      font-size: 1rem;
      font-weight: 700;
      cursor: pointer;
      color: white;
      background: var(--accent);
      box-shadow: 0 8px 18px rgba(47, 128, 237, 0.22);
      transition: transform 0.15s ease, opacity 0.15s ease, box-shadow 0.15s ease;
      touch-action: manipulation;
    }

    button:hover { transform: translateY(-1px); }
    button:active { transform: translateY(1px); }

    button.secondary {
      background: #6c7f92;
      box-shadow: 0 8px 18px rgba(87, 106, 125, 0.2);
    }

    button.success {
      background: var(--accent-2);
      box-shadow: 0 8px 18px rgba(39, 174, 96, 0.2);
    }

    button.mode {
      color: var(--text);
      background: #edf4ff;
      box-shadow: none;
      border: 2px solid transparent;
    }

    button.mode.active {
      background: #dcecff;
      border-color: var(--accent);
      color: #0d4ea6;
    }

    .control {
      background: #f8fbff;
      border: 1px solid var(--line);
      border-radius: 18px;
      padding: 14px;
      margin-bottom: 10px;
    }

    .control:last-child { margin-bottom: 0; }

    .label-row {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      align-items: center;
      margin-bottom: 10px;
      font-weight: 650;
    }

    .value {
      color: var(--accent);
      font-variant-numeric: tabular-nums;
    }

    input[type="range"] {
      width: 100%;
      accent-color: var(--accent);
      height: 34px;
    }

    .checkbox {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 12px 14px;
      border-radius: 16px;
      background: #f8fbff;
      border: 1px solid var(--line);
      font-weight: 600;
    }

    .checkbox input {
      width: 20px;
      height: 20px;
    }

    .hint-box {
      background: linear-gradient(180deg, #f6fbff 0%, #eef7ff 100%);
      border: 1px solid #d5e9ff;
      border-radius: 18px;
      padding: 14px;
    }

    .hint-box ul {
      margin: 8px 0 0 18px;
      padding: 0;
      color: var(--muted);
      line-height: 1.45;
    }

    .stage-card {
      padding: 14px;
    }

    .status-bar {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      align-items: center;
      justify-content: space-between;
      padding: 8px 6px 14px;
    }

    .badge-row {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }

    .badge {
      background: #f3f8ff;
      border: 1px solid #dce8f8;
      color: #2b5a8b;
      border-radius: 999px;
      padding: 8px 12px;
      font-size: 0.92rem;
      font-weight: 650;
    }

    svg {
      width: 100%;
      height: auto;
      display: block;
      border-radius: 18px;
      background: linear-gradient(180deg, #fcfeff 0%, #f4f9ff 100%);
      border: 1px solid #dfe9f6;
    }

    .caption {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-top: 12px;
    }

    .caption-card {
      background: #f8fbff;
      border: 1px solid var(--line);
      border-radius: 18px;
      padding: 12px 14px;
    }

    .caption-card h3 {
      margin: 0 0 6px;
      font-size: 0.98rem;
    }

    .caption-card p {
      margin: 0;
      color: var(--muted);
      line-height: 1.4;
      font-size: 0.95rem;
    }

    @media (max-width: 980px) {
      .layout { grid-template-columns: 1fr; }
    }

    @media (max-width: 640px) {
      .button-row, .toggle-row, .caption { grid-template-columns: 1fr; }
      .hero, .panel, .stage-card { border-radius: 20px; }
    }
  </style>
</head>
<body>
  <div class="app">
    <section class="hero">
      <h1>Digitale Slinky-Erkundung</h1>
      <p>
        Erkunde eine Feder mit zwei verschiedenen Bewegungsarten. Probiere frei aus, wie sich eine Störung ausbreitet,
        wie sich einzelne Stellen bewegen und was sich ändert, wenn du Stärke und Tempo veränderst.
      </p>
    </section>

    <div class="layout">
      <aside class="panel">
        <section class="section">
          <h2>Bewegungsart wählen</h2>
          <div class="toggle-row">
            <button id="modeAButton" class="mode active">Bewegung A</button>
            <button id="modeBButton" class="mode">Bewegung B</button>
          </div>
        </section>

        <section class="section">
          <h2>Steuerung</h2>
          <div class="button-row">
            <button id="playPauseButton" class="success">Start</button>
            <button id="pulseButton">Einzelner Impuls</button>
          </div>
          <div class="button-row" style="margin-top:10px;">
            <button id="resetButton" class="secondary">Zurücksetzen</button>
          </div>
        </section>

        <section class="section">
          <h2>Einstellungen</h2>

          <div class="control">
            <div class="label-row">
              <span>Stärke der Bewegung</span>
              <span class="value" id="amplitudeValue">40</span>
            </div>
            <input id="amplitude" type="range" min="10" max="90" value="40" />
          </div>

          <div class="control">
            <div class="label-row">
              <span>Tempo der Anregung</span>
              <span class="value" id="frequencyValue">1.2</span>
            </div>
            <input id="frequency" type="range" min="0.3" max="2.5" step="0.1" value="1.2" />
          </div>

          <div class="control">
            <div class="label-row">
              <span>Ausbreitungsgeschwindigkeit</span>
              <span class="value" id="speedValue">1.2</span>
            </div>
            <input id="speed" type="range" min="0.5" max="2.2" step="0.1" value="1.2" />
          </div>
        </section>

        <label class="checkbox">
          <input id="slowMotion" type="checkbox" />
          <span>Zeitlupe</span>
        </label>

        <label class="checkbox">
          <input id="showTrail" type="checkbox" checked />
          <span>Markierten Punkt verfolgen</span>
        </label>

        <section class="hint-box">
          <strong>Ideen zum freien Erkunden</strong>
          <ul>
            <li>Wie bewegen sich einzelne Stellen der Feder?</li>
            <li>Was wandert von links nach rechts?</li>
            <li>Unterscheide Bewegung A und Bewegung B möglichst genau.</li>
          </ul>
        </section>
      </aside>

      <main class="stage-card">
        <div class="status-bar">
          <div class="badge-row">
            <div class="badge" id="modeBadge">Aktiv: Bewegung A</div>
            <div class="badge" id="stateBadge">Status: pausiert</div>
            <div class="badge">Orange markiert: beobachteter Punkt</div>
          </div>
        </div>

        <svg id="scene" viewBox="0 0 980 560" aria-label="Interaktive Slinky-Darstellung">
          <defs>
            <filter id="softShadow" x="-20%" y="-20%" width="140%" height="140%">
              <feDropShadow dx="0" dy="3" stdDeviation="4" flood-color="#7ea8d6" flood-opacity="0.2"/>
            </filter>
          </defs>

          <text x="40" y="46" font-size="24" font-weight="700" fill="#355778">Digitale Feder</text>
          <text id="subTitle" x="40" y="76" font-size="18" fill="#6b8197">Beobachte genau, wie sich die einzelnen Stellen bewegen.</text>

          <line id="axisLine" x1="90" y1="300" x2="890" y2="300" stroke="#d4e2f1" stroke-width="2" stroke-dasharray="7 7" />

          <text id="hand" x="70" y="300" font-size="52" text-anchor="middle" dominant-baseline="middle"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/270b.png" alt="✋" class="wp-smiley" style="height: 1em; max-height: 1em;" /></text>

          <polyline id="springLine" fill="none" stroke="#2f80ed" stroke-width="7" stroke-linecap="round" stroke-linejoin="round" filter="url(#softShadow)" />
          <polyline id="trailLine" fill="none" stroke="#ff9f43" stroke-width="3" stroke-dasharray="5 6" opacity="0.85" />
          <circle id="trackedPoint" r="10" fill="#ff9f43" stroke="#ffffff" stroke-width="4" />
          <g id="compressionGroup"></g>

          <text id="bottomHint" x="490" y="530" text-anchor="middle" font-size="20" fill="#4e6680">
            Tipp: Starte die Bewegung und beobachte den orange markierten Punkt.
          </text>
        </svg>

        <div class="caption">
          <div class="caption-card">
            <h3>Was du sehen kannst</h3>
            <p>
              Die blaue Linie zeigt die Feder. Der orange Punkt markiert immer dieselbe Stelle der Feder.
              So kannst du prüfen, ob Stellen mitwandern oder nur hin und her schwingen.
            </p>
          </div>
          <div class="caption-card">
            <h3>Experimentier-Idee</h3>
            <p>
              Nutze zuerst denselben Reglerwert für Bewegung A und B. Vergleiche dann ganz gezielt die Bewegungsrichtung
              des orange markierten Punkts mit der Richtung, in der sich die Störung ausbreitet.
            </p>
          </div>
        </div>
      </main>
    </div>
  </div>

  <script>
    const springLine = document.getElementById('springLine');
    const trackedPoint = document.getElementById('trackedPoint');
    const trailLine = document.getElementById('trailLine');
    const compressionGroup = document.getElementById('compressionGroup');
    const hand = document.getElementById('hand');

    const modeAButton = document.getElementById('modeAButton');
    const modeBButton = document.getElementById('modeBButton');
    const playPauseButton = document.getElementById('playPauseButton');
    const pulseButton = document.getElementById('pulseButton');
    const resetButton = document.getElementById('resetButton');

    const amplitudeInput = document.getElementById('amplitude');
    const frequencyInput = document.getElementById('frequency');
    const speedInput = document.getElementById('speed');
    const slowMotionInput = document.getElementById('slowMotion');
    const showTrailInput = document.getElementById('showTrail');

    const amplitudeValue = document.getElementById('amplitudeValue');
    const frequencyValue = document.getElementById('frequencyValue');
    const speedValue = document.getElementById('speedValue');

    const modeBadge = document.getElementById('modeBadge');
    const stateBadge = document.getElementById('stateBadge');
    const subTitle = document.getElementById('subTitle');
    const bottomHint = document.getElementById('bottomHint');

    const state = {
      mode: 'A',
      running: false,
      time: 0,
      points: 84,
      leftX: 90,
      rightX: 890,
      baseY: 300,
      amplitude: 40,
      frequency: 1.2,
      speed: 1.2,
      phase: 0,
      pulseStrength: 0,
      pulseTime: 999,
      trail: [],
      trackedIndex: 46,
      coilSamples: 950,
      coilTurns: 46,
      coilRadius: 27
    };

    function updateLabels() {
      amplitudeValue.textContent = state.amplitude.toFixed(0);
      frequencyValue.textContent = state.frequency.toFixed(1);
      speedValue.textContent = state.speed.toFixed(1);
      modeBadge.textContent = `Aktiv: Bewegung ${state.mode}`;
      stateBadge.textContent = `Status: ${state.running ? 'läuft' : 'pausiert'}`;

      if (state.mode === 'A') {
        subTitle.textContent = 'Beobachte genau, wie sich die einzelnen Stellen bewegen.';
        bottomHint.textContent = 'Tipp: Bei Bewegung A hilft der Vergleich von Ausbreitungsrichtung und Punktbewegung.';
      } else {
        subTitle.textContent = 'Achte darauf, welche Stellen dichter zusammenrücken oder weiter auseinandergehen.';
        bottomHint.textContent = 'Tipp: Bei Bewegung B ist besonders interessant, wo Verdichtungen und Lockerungen entstehen.';
      }
    }

    function setMode(mode) {
      state.mode = mode;
      modeAButton.classList.toggle('active', mode === 'A');
      modeBButton.classList.toggle('active', mode === 'B');
      state.trail = [];
      updateLabels();
      draw();
    }

    function triggerPulse(boost = 1) {
      state.pulseStrength = boost;
      state.pulseTime = 0;
    }

    function resetSimulation() {
      state.running = false;
      state.time = 0;
      state.phase = 0;
      state.pulseStrength = 0;
      state.pulseTime = 999;
      state.trail = [];
      playPauseButton.textContent = 'Start';
      updateLabels();
      draw();
    }

    function waveAt(u, t) {
      const travelTime = t - (u / state.speed);
      let base = 0;

      if (state.running && travelTime >= 0) {
        base = Math.sin(2 * Math.PI * (state.frequency * travelTime) + state.phase);
      }

      let pulse = 0;
      if (state.pulseStrength > 0) {
        const center = state.speed * state.pulseTime * 0.18;
        const width = 0.06;
        pulse = state.pulseStrength * Math.exp(-((u - center) ** 2) / (2 * width * width));
        if (state.mode === 'A') {
          pulse *= Math.sin(8 * (u - center));
        }
      }

      return 0.78 * base + 0.95 * pulse;
    }

    function getCenterPoint(u) {
      const width = state.rightX - state.leftX;
      const signal = waveAt(u, state.time);
      let x = state.leftX + u * width;
      let y = state.baseY;

      if (state.mode === 'A') {
        y += state.amplitude * signal;
      } else {
        x += state.amplitude * 0.78 * signal;
      }

      return { x, y };
    }

    function draw() {
      const leftPoint = getCenterPoint(0);
      if (state.mode === 'A') {
        hand.setAttribute('transform', `translate(0, ${leftPoint.y - state.baseY})`);
      } else {
        hand.setAttribute('transform', `translate(${leftPoint.x - state.leftX}, 0)`);
      }

      const coilPoints = [];
      const sampleCount = state.coilSamples;
      const twoPi = Math.PI * 2;
      const tracked = getCenterPoint(state.trackedIndex / (state.points - 1));

      for (let j = 0; j < sampleCount; j++) {
        const u = j / (sampleCount - 1);
        const p = getCenterPoint(u);
        const pNext = getCenterPoint(Math.min(1, u + 0.0025));
        const dx = pNext.x - p.x;
        const dy = pNext.y - p.y;
        const len = Math.hypot(dx, dy) || 1;

        const nx = -dy / len;
        const ny = dx / len;
        const theta = twoPi * state.coilTurns * u;
        const offset = state.coilRadius * Math.sin(theta);

        const cx = p.x + nx * offset;
        const cy = p.y + ny * offset;
        coilPoints.push(`${cx.toFixed(2)},${cy.toFixed(2)}`);
      }

      springLine.setAttribute('points', coilPoints.join(' '));
      trackedPoint.setAttribute('cx', tracked.x);
      trackedPoint.setAttribute('cy', tracked.y);

      if (showTrailInput.checked) {
        state.trail.push(`${tracked.x.toFixed(2)},${tracked.y.toFixed(2)}`);
        if (state.trail.length > 120) state.trail.shift();
        trailLine.setAttribute('points', state.trail.join(' '));
        trailLine.style.display = 'block';
      } else {
        state.trail = [];
        trailLine.setAttribute('points', '');
        trailLine.style.display = 'none';
      }

      compressionGroup.innerHTML = '';
      if (state.mode === 'B') {
        const bars = 42;
        for (let i = 0; i < bars; i++) {
          const u = i / (bars - 1);
          const p1 = getCenterPoint(Math.max(0, u - 0.012));
          const p2 = getCenterPoint(Math.min(1, u + 0.012));
          const localDx = p2.x - p1.x;
          const expectedDx = (state.rightX - state.leftX) * 0.024;
          const compression = Math.max(0, (expectedDx - localDx) / expectedDx);
          const opacity = Math.min(0.42, compression * 0.55);

          if (opacity > 0.04) {
            const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
            rect.setAttribute('x', p1.x - 6);
            rect.setAttribute('y', state.baseY - 48);
            rect.setAttribute('width', Math.max(12, localDx + 12));
            rect.setAttribute('height', 96);
            rect.setAttribute('rx', 10);
            rect.setAttribute('fill', `rgba(39, 174, 96, ${opacity.toFixed(2)})`);
            compressionGroup.appendChild(rect);
          }
        }
      }
    }

    function animate() {
      const factor = slowMotionInput.checked ? 0.35 : 1;

      if (state.running) {
        state.time += 0.016 * factor;
        state.phase += 0.028 * factor;
      }

      if (state.pulseTime < 10) {
        state.time += 0.016 * factor;
        state.pulseTime += 0.016 * factor;
        if (state.pulseTime > 4.5) {
          state.pulseStrength = 0;
          state.pulseTime = 999;
        }
      }

      draw();
      requestAnimationFrame(animate);
    }

    amplitudeInput.addEventListener('input', () => {
      state.amplitude = Number(amplitudeInput.value);
      updateLabels();
      draw();
    });

    frequencyInput.addEventListener('input', () => {
      state.frequency = Number(frequencyInput.value);
      updateLabels();
      draw();
    });

    speedInput.addEventListener('input', () => {
      state.speed = Number(speedInput.value);
      updateLabels();
      draw();
    });

    modeAButton.addEventListener('click', () => setMode('A'));
    modeBButton.addEventListener('click', () => setMode('B'));

    playPauseButton.addEventListener('click', () => {
      state.running = !state.running;
      playPauseButton.textContent = state.running ? 'Pause' : 'Start';
      updateLabels();
    });

    pulseButton.addEventListener('click', () => {
      state.running = false;
      playPauseButton.textContent = 'Start';
      state.trail = [];
      triggerPulse(1);
      updateLabels();
    });

    resetButton.addEventListener('click', resetSimulation);
    showTrailInput.addEventListener('change', draw);
    slowMotionInput.addEventListener('change', draw);

    updateLabels();
    draw();
    animate();
  </script>
</body>
</html>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/04/22/vibe-coding-digitale-slinky-erkundung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Der Brave-Browser mit sicherer und kostenloser KI-Funktion</title>
		<link>https://gymnasium-oberpfalz.de/2026/04/17/der-brave-browser-mit-sicherer-und-kostenloser-ki-funktion/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/04/17/der-brave-browser-mit-sicherer-und-kostenloser-ki-funktion/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 09:11:28 +0000</pubDate>
				<category><![CDATA[1:1-Ausstattung]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[IT-Sicherheit]]></category>
		<category><![CDATA[KI]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Unterricht]]></category>
		<category><![CDATA[Brave-Browser]]></category>
		<category><![CDATA[Browser]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=54717</guid>

					<description><![CDATA[Eine spannende Alternative zu Browsern wie Edge oder Safari ist der Brave‑Browser mit seinem integrierten KI‑Assistenten Brave Leo. Brave basiert – wie auch Microsoft Edge – auf der Chromium‑Engine, deaktiviert jedoch standardmäßig zahlreiche Tracking‑ und Telemetrie‑Funktionen. Dadurch ist der Browser...]]></description>
										<content:encoded><![CDATA[
<p></p>



<p>Eine spannende Alternative zu Browsern wie Edge oder Safari ist der <strong>Brave‑Browser mit seinem integrierten KI‑Assistenten Brave Leo</strong>. Brave basiert – wie auch Microsoft Edge – auf der Chromium‑Engine, deaktiviert jedoch standardmäßig zahlreiche Tracking‑ und Telemetrie‑Funktionen. Dadurch ist der Browser aus datenschutzrechtlicher Sicht besonders attraktiv.</p>



<figure class="wp-block-image size-medium"><img decoding="async" width="300" height="200" src="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_115521-300x200.png" alt="" class="wp-image-54736" style="aspect-ratio:1;object-fit:cover" srcset="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_115521-300x200.png 300w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_115521-1024x683.png 1024w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_115521-768x512.png 768w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_115521-450x300.png 450w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_115521.png 1536w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<p>(Quelle: KI-generiert)</p>



<p>Ein zentrales Highlight ist die <strong>ohne Registrierung oder Anmeldung nutzbare KI‑Funktion</strong>. KI‑Anfragen werden nicht an kommerzielle Anbieter wie Google oder Microsoft weitergeleitet und nicht zum Training der Modelle verwendet. Der Chatverlauf wird serverseitig <strong>nicht dauerhaft gespeichert</strong>; auf Wunsch kann er lokal im Browser abgelegt werden. Brave betreibt die KI‑Modelle (u. a. Qwen, Llama, Claude Haiku und Claude Sonnet)<strong> </strong>auf eigener Infrastruktur, sodass <strong>keine Daten an die jeweiligen Modellanbieter</strong> weitergegeben werden.</p>



<p>Die KI deckt das gesamte Spektrum moderner Sprachmodelle ab: Webseiten zusammenfassen, Texte generieren, übersetzen, erklären, Code analysieren oder erstellen und vieles mehr. Neben der kostenlosen Grundversion bietet Brave auch ein leistungsstärkeres Premium‑Modell an – für Schulen dürfte jedoch bereits die frei verfügbare Variante vollkommen ausreichen.</p>



<p>Im Vergleich zu ChatGPT und anderen kommerziellen KI‑Diensten stellt Brave Leo damit eine <strong>starke, datenschutzfreundliche Alternative</strong> dar, die sich besonders für sensible Einsatzbereiche wie Schulen eignet.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/04/17/der-brave-browser-mit-sicherer-und-kostenloser-ki-funktion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Die 30%-KI-Regel</title>
		<link>https://gymnasium-oberpfalz.de/2026/04/17/die-30-ki-regel/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/04/17/die-30-ki-regel/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 07:55:13 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[30%-KI-Regel]]></category>
		<category><![CDATA[Texte]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=54689</guid>

					<description><![CDATA[Künstliche Intelligenz schreibt schneller – aber sicher nicht automatisch besser.Die 30%-KI‑Regel zeigt, warum menschliche Qualität unverzichtbar bleibt. Die 30%-KI‑Regel beschreibt ein zunehmend relevantes Prinzip im Umgang mit KI‑gestützten Texten: Mindestens ein Drittel eines Textes sollte bewusst von Menschen überarbeitet oder...]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Künstliche Intelligenz schreibt schneller – aber sicher nicht automatisch besser.<br>Die 30%-KI‑Regel zeigt, warum menschliche Qualität unverzichtbar bleibt.</h3>



<p>Die 30%-KI‑Regel beschreibt ein zunehmend relevantes Prinzip im Umgang mit KI‑gestützten Texten: Mindestens ein Drittel eines Textes sollte bewusst von Menschen überarbeitet oder ergänzt werden. Die zugrunde liegende Idee ist, dass KI zwar effizient bei Recherche, Strukturierung und dem Erstellen erster Entwürfe unterstützt, aber ohne menschliche Kontrolle schnell generische, unpräzise oder fehlerhafte Inhalte entstehen. Nur durch menschliches Eingreifen, kann der individuell-menschliche Klang, die fachliche Genauigkeit und die narrative Qualität eines Textes gesichert werden können. KI‑Modelle neigen dazu, veraltete Informationen zu reproduzieren oder Details zu erfinden, weshalb eine menschliche Prüfung unverzichtbar bleibt. Es ist gut belegt, dass reine KI‑Texte oft austauschbar wirken und Leserinnen und Leser weniger binden &#8211; oftmals sogar befremden. Erst durch menschliche Ergänzungen – etwa bei Einleitungen, Beispielen, Übergängen oder Schlussfolgerungen – entsteht ein Text, der originell, glaubwürdig und zielgruppenorientiert ist. Die 30%-Regel dient damit als Qualitätsstandard, der sicherstellt, dass KI‑gestützte Inhalte nicht an Tiefe verlieren und weiterhin Bindung zum Leser schaffen.</p>



<p>Mehrere unabhängige Quellen bestätigen diese Einschätzung:<br>– <a href="https://artificialintelligenceact.eu/article/14" target="_blank" rel="noreferrer noopener">Die EU‑KI‑Verordnung</a> betont die Notwendigkeit menschlicher Aufsicht bei KI‑gestützten Prozessen, insbesondere im Bildungs‑ und Informationsbereich.<br>– Auch Google weist in seinen <a href="https://developers.google.com/search/docs/fundamentals/creating-helpful-content" target="_blank" rel="noreferrer noopener">Search‑Quality‑Guidelines</a> darauf hin, dass Inhalte mit klarer menschlicher Expertise, Originalität und überprüfbaren Fakten bevorzugt werden .</p>



<figure class="wp-block-image size-large is-resized is-style-default"><img decoding="async" width="683" height="1024" src="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_114158-683x1024.png" alt="" class="wp-image-54724" style="aspect-ratio:1;object-fit:cover;width:300px" srcset="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_114158-683x1024.png 683w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_114158-200x300.png 200w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_114158-768x1152.png 768w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Copilot_20260417_114158.png 1024w" sizes="(max-width: 683px) 100vw, 683px" /></figure>



<p>(Quelle: KI-generiert)</p>



<h3 class="wp-block-heading">Bedeutung für Schulen</h3>



<p>Für Schulen bietet die 30%-Regel eine klare Orientierung im pädagogischen Umgang mit KI‑Texten. Sie macht deutlich, dass KI ein hilfreiches Werkzeug sein kann, aber nicht die eigene Denkleistung ersetzt. Schülerinnen und Schüler lernen, KI‑Entwürfe kritisch zu prüfen, zu überarbeiten und mit eigenen Gedanken anzureichern – eine Kernkompetenz moderner Medienbildung. Lehrkräfte wiederum können KI zur Entlastung nutzen, ohne die fachliche Qualität oder pädagogische Linie zu verlieren. Die Regel eignet sich zudem als Bestandteil schulinterner Richtlinien, um Transparenz, Fairness bei der Benotung und verantwortungsvollen KI‑Einsatz im Unterricht zu fördern. Damit unterstützt sie Schulen dabei, KI sinnvoll, reflektiert und lernförderlich einzusetzen, ohne die menschliche Kompetenz aus dem Blick zu verlieren.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/04/17/die-30-ki-regel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Hausaufgaben in Zeiten von KI &#8211; der Lehrerverband nimmt Stellung</title>
		<link>https://gymnasium-oberpfalz.de/2026/04/13/hausaufgaben-in-den-zeiten-von-ki-der-lehrerverband-nimmt-stellung/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/04/13/hausaufgaben-in-den-zeiten-von-ki-der-lehrerverband-nimmt-stellung/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Mon, 13 Apr 2026 07:40:02 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[Hausaufgaben]]></category>
		<category><![CDATA[Lehrerverband]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=54685</guid>

					<description><![CDATA[In einem Heise-Online-Artikel vom 08.04.2026 äußert sich der Lehrerverband zum Thema Hausaufgaben in Zeiten von KI. Der Präsident des Verbands warnt darin, dass „die Gefahr besteht, dass wir Hausaufgaben so nicht mehr machen lassen können“. Seine Lösungsvorschläge konzentrieren sich vor...]]></description>
										<content:encoded><![CDATA[
<p>In einem <strong><a href="https://www.heise.de/news/Lehrerverband-sieht-Hausaufgaben-durch-KI-bedroht-11248506.html" target="_blank" rel="noreferrer noopener">Heise-Online-Artikel vom 08.04.2026</a></strong> äußert sich der Lehrerverband zum Thema Hausaufgaben in Zeiten von KI. Der Präsident des Verbands warnt darin, dass „<strong>die Gefahr besteht, dass wir Hausaufgaben so nicht mehr machen lassen können</strong>“. Seine Lösungsvorschläge konzentrieren sich vor allem darauf, den Entstehungsprozess stärker in den Mittelpunkt zu rücken und nachvollziehbar zu dokumentieren, wie eine Schülerin oder ein Schüler zu einem Ergebnis gelangt ist. Zudem spricht er sich dafür aus, Hausaufgaben ausschließlich handschriftlich einzufordern.</p>



<p>Gleichzeitig stellt das <strong>Deutsche Schulportal</strong> <a href="https://deutsches-schulportal.de/bildungswesen/forschung-sind-hausaufgaben-noch-notwendig-oder-laengst-ueberholt/" target="_blank" rel="noreferrer noopener">wissenschaftliche Erkenntnisse vor</a>, denen zufolge <strong>Hausaufgaben keinen signifikanten Einfluss auf den Lernerfolg</strong> haben.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Designer-1-1024x683.png" alt="" class="wp-image-54686" srcset="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Designer-1-1024x683.png 1024w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Designer-1-300x200.png 300w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Designer-1-768x512.png 768w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Designer-1-450x300.png 450w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/04/Designer-1.png 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>(Quelle: KI-generiert)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/04/13/hausaufgaben-in-den-zeiten-von-ki-der-lehrerverband-nimmt-stellung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Leo AI attestiert einer NotebookLM W-Seminararbeit &#8220;Null Punkte&#8221;!</title>
		<link>https://gymnasium-oberpfalz.de/2026/03/30/leo-ai-attestiert-einer-notebooklm-w-seminararbeit-null-punkte/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/03/30/leo-ai-attestiert-einer-notebooklm-w-seminararbeit-null-punkte/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Mon, 30 Mar 2026 10:38:48 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[KI NotebookLM W-Seminararbeit]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=54656</guid>

					<description><![CDATA[Schafft man es, mit KI innerhalb weniger Stunden eine komplette W‑Seminararbeit druckfertig zu erstellen? Und würde eine solche Arbeit einer Korrektur durch eine Lehrkraft standhalten und als eigenständige Schülerleistung anerkannt werden? Diesen Fragen wurde in einem auf drei Stunden begrenzten...]]></description>
										<content:encoded><![CDATA[
<p><em>Schafft man es, mit KI innerhalb weniger Stunden eine komplette W‑Seminararbeit druckfertig zu erstellen? Und würde eine solche Arbeit einer Korrektur durch eine Lehrkraft standhalten und als eigenständige Schülerleistung anerkannt werden?</em></p>



<p>Diesen Fragen wurde in einem auf drei Stunden begrenzten Praxistest nachgegangen. Zum Einsatz kam dabei Googles KI‑System NotebookLM. Das Versuchssetting war bewusst minimal gehalten: Das Rahmenthema sollte im Bereich der Kommunikationswissenschaft liegen, und untersucht werden sollten Loriots Sketche unter sprachwissenschaftlichen Gesichtspunkten. Ziel war es, in kürzester Zeit eine Arbeit zu erstellen, die die Anforderungen zum Bestehen erfüllt – also nicht mit 0 Punkten bewertet würde. Weitere Vorgaben gab es nicht.</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="200" height="300" src="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/Designer-7-200x300.png" alt="" class="wp-image-54659" style="aspect-ratio:1;object-fit:cover" srcset="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/Designer-7-200x300.png 200w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/Designer-7-683x1024.png 683w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/Designer-7-768x1152.png 768w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/Designer-7.png 1024w" sizes="auto, (max-width: 200px) 100vw, 200px" /></figure>



<p>Nach mehreren Prompts und Arbeitsschritten – und tatsächlich in deutlich weniger als drei Stunden inklusive Rechenzeit – wurde eine 16‑seitige W‑Seminararbeit generiert, die auf den ersten Blick durchaus als authentische Schülerarbeit durchgehen könnte. So sieht das Ergebnis aus:<br></p>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/Loriot-W-Seminararbeit.pdf" type="application/pdf" style="width:100%;height:443px" aria-label="Einbettung von Loriot W-Seminararbeit."></object><a id="wp-block-file--media-39ca8062-31cb-4aae-8e99-0205618a79ba" href="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/Loriot-W-Seminararbeit.pdf">Loriot W-Seminararbeit</a></div>



<p>Hier die Kritik die Leo AI mit diesen Bewertungskriterien erstellt hat:</p>



<ul class="wp-block-list">
<li>Rechtschreibung, Satzbau und Stil</li>



<li>Gliederung und Aufbau</li>



<li>Zitiertechnik und Fußnoten</li>



<li>Fachwissenschaftlichkeit und Bibliographie</li>



<li>Layout und Formalia</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1. Rechtschreibung &amp; Grammatik</h2>



<ul class="wp-block-list">
<li><strong>Durchgehend fehlerhafte Silbentrennung im Fließtext</strong>, die offensichtlich durch automatischen Zeilenumbruch entstanden ist, aber nie korrigiert wurde: „Kommu- nikationsquadrat&#8221;, „Kommuni- kation&#8221;, „Sati- re&#8221; – das ist in einer abgegebenen Arbeit <strong>absolut inakzeptabel</strong>.</li>



<li>Fußnote 35 fehlt vollständig im Text (Sprung von 34 zu 36 in Kapitel 3.1).</li>



<li>Fußnote 42 fehlt ebenfalls im Fließtext.</li>



<li>Fußnote 45 fehlt (Sprung von 44 zu 46).</li>



<li>Fußnote 78–81 tauchen im Fazit ohne Hochzahl im Fließtext auf – sie „hängen&#8221; am Ende des Absatzes und sind <strong>keiner konkreten Aussage zugeordnet</strong>.</li>



<li>„Fußnote 85¹&#8221; – die hochgestellte „1&#8243; am Ende von Kapitel 6.2 ist ein offensichtlicher <strong>Formatierungsrest</strong>, der nie entfernt wurde.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2. Satzbau und Stil</h2>



<ul class="wp-block-list">
<li>Der Stil schwankt <strong>unkontrolliert</strong> zwischen wissenschaftlichem Duktus und journalistisch-feuilletonistischer Sprache. Formulierungen wie <em>„Einstiegsdroge zur Reflexion&#8221;</em>, <em>„brodelt es&#8221;</em>, <em>„klinische Studien des Alltags&#8221;</em> oder <em>„Heilmittel&#8221;</em> sind für eine wissenschaftliche Seminararbeit <strong>stilistisch unangemessen</strong>.</li>



<li>Metaphern werden <strong>überstrapaziert und inkonsistent</strong> verwendet: „Spitze des Eisbergs&#8221;, „direkt ins Herz&#8221;, „zerbröseln&#8221;, „Schlachtfeld&#8221; – das wirkt wie ein Stilmix ohne klare Linie.</li>



<li>Zahlreiche Sätze sind <strong>zu kurz und apodiktisch</strong> für wissenschaftliches Schreiben: <em>„Loriot ist einzigartig. Loriot ist unsterblich. Loriot ist überall.&#8221;</em> – Das ist Pathos, keine Analyse.</li>



<li>Passivkonstruktionen und unpersönliche Formulierungen werden <strong>nicht konsequent</strong> eingesetzt; der Text wechselt willkürlich zwischen „man&#8221;, „wir&#8221; und implizitem Ich.</li>



<li>Die <strong>93%/7%-Regel</strong> (Mehrabian-Mythos) wird unreflektiert und falsch angewendet. Diese Statistik gilt ausschließlich für sehr spezifische Versuchsbedingungen und <strong>nicht pauschal für alle Kommunikation</strong> – ihre unkritische Übernahme ist ein fachwissenschaftlicher Fehler.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3. Gliederung und Aufbau</h2>



<ul class="wp-block-list">
<li>Das <strong>Inhaltsverzeichnis weist Seitenzahlen auf, die nicht mit dem Dokument übereinstimmen</strong>: Das Inhaltsverzeichnis steht auf Seite 2, listet sich selbst aber auf Seite 3. Kapitel 1 beginnt laut Verzeichnis auf Seite 1, obwohl das Deckblatt Seite 1 ist – <strong>die Paginierung ist inkonsistent und unprofessionell</strong>.</li>



<li>Kapitel 3 analysiert drei Sketche, aber <strong>Kapitel 4 wiederholt</strong> inhaltlich weite Teile davon (z. B. das Frühstücksei in 4.1, Feierabend in 4.2). Die Trennung zwischen Analyse und Mechanismen ist <strong>nicht trennscharf</strong> – es entsteht erhebliche Redundanz.</li>



<li>Kapitel 5 wirkt wie ein <strong>Anhängsel</strong>: Die soziokulturelle Dimension wird zwar angekündigt, aber kaum mit den vorangegangenen Analysen verknüpft. Kapitel 5.2 verliert sich in einer <strong>themenfremden Exkursion</strong> zur Ludwig Galerie Saarlouis, die keinerlei analytischen Mehrwert hat.</li>



<li>Die <strong>Einleitung nennt drei Fallstudien</strong>, Kapitel 5 führt aber plötzlich einen vierten Sketch ein (<em>„Bettenkauf&#8221;</em>), der weder in der Zielsetzung noch im Inhaltsverzeichnis angekündigt wurde – ein klarer <strong>struktureller Fehler</strong>.</li>



<li>Ein <strong>Forschungsstand</strong> fehlt vollständig. Für eine wissenschaftliche Arbeit ist die Einbettung in den bestehenden Diskurs obligatorisch.</li>



<li>Die Schlussfolgerungen im <strong>Fazit sind zu allgemein</strong> und kaum an die konkreten Analyseergebnisse rückgebunden. Die „Übertragbarkeit auf moderne Kommunikation&#8221; (6.2) bleibt eine bloße <strong>Behauptung ohne Belege oder Beispiele</strong>.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4. Zitiertechnik und Fußnoten</h2>



<ul class="wp-block-list">
<li><strong>Selbstzitat in Fußnote 1</strong>: Die Arbeit zitiert sich selbst als Quelle (<em>„Zerbröselte Kommunikation&#8221; (o. J.), S. 1</em>) – das ist <strong>methodisch absurd</strong> und deutet darauf hin, dass eine andere, nicht ausgewiesene Quelle vorliegt, die verschleiert wird. Das ist ein <strong>schwerwiegender Integritätsmangel</strong>.</li>



<li>Die Quelle <em>„Zerbröselte Kommunikation&#8221; (o. J.)</em> taucht <strong>dutzendfach</strong> als Beleg auf, ohne dass im Literaturverzeichnis erklärt wird, was das ist. Sie fehlt dort <strong>vollständig</strong> – ein gravierender Fehler.</li>



<li><strong>YouTube-Transkripte</strong> (Smörgåsbord 2026) sind als wissenschaftliche Quellen <strong>nicht zitierfähig</strong>, insbesondere ohne Angabe von Kanal, URL, Abrufdatum oder Verifizierung der Transkriptgenauigkeit.</li>



<li><strong>„Knowunity&#8221;</strong> ist eine Lernzettel-Plattform von Schülern für Schüler und <strong>keine wissenschaftlich zitierfähige Quelle</strong>. Ihre Verwendung als Beleg für Watzlawicks Axiome ist methodisch nicht vertretbar.</li>



<li><strong>„AOC (2026)&#8221;</strong> wird als Hintergrundmaterial bezeichnet – ohne Autorenname, Verlag, Seitenzahl oder Herkunft. Diese Quelle ist <strong>bibliographisch nicht nachvollziehbar</strong> und damit nicht zitierfähig.</li>



<li>Das <strong>Schulz von Thun Institut (2026)</strong> wird als „Online-Ressource&#8221; geführt – ohne URL, ohne Abrufdatum. Das entspricht nicht den Mindestanforderungen an Internetquellen.</li>



<li><strong>Wikipedia</strong> wird mehrfach als Beleg verwendet. Wikipedia ist in wissenschaftlichen Arbeiten grundsätzlich <strong>nicht als Primär- oder Sekundärquelle akzeptabel</strong>.</li>



<li>Die Fußnoten sind <strong>nicht einheitlich formatiert</strong>: Mal steht „Vgl.&#8221;, mal fehlt es; mal werden Seitenzahlen angegeben, mal nicht.</li>



<li>Loriot-Zitate werden aus <em>„Loriots dramatische Werke&#8221;</em> (1981) zitiert, obwohl die Sketche <strong>Fernsehauftritte</strong> sind – die Buchquelle ist für Dialoganalysen fragwürdig, ohne Erklärung der Textgrundlage.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5. Fachwissenschaftlichkeit der Bibliographie</h2>



<ul class="wp-block-list">
<li>Die Bibliographie enthält <strong>keine einzige genuin literaturwissenschaftliche Quelle</strong> zu Loriot, obwohl z. B. Neumanns <em>„Loriot und die Hochkomik&#8221;</em> (2011) gelistet ist – dieser Titel wird im Text jedoch <strong>nie zitiert</strong>. Er scheint nur zur Aufwertung der Literaturliste zu dienen.</li>



<li><strong>Lieser (2019)</strong>: Ein <em>„Blog für Vogelkundler&#8221;</em> als Quelle für eine Loriot-Interpretation – das ist <strong>nicht kommentierungswürdig</strong>, sondern schlicht unzulässig.</li>



<li>Die Arbeit stützt sich theoretisch fast ausschließlich auf <strong>Schulz von Thun (1981)</strong> und <strong>Watzlawick (1969)</strong>, zitiert diese aber überwiegend <strong>nicht direkt</strong>, sondern über Sekundär- und Tertiärquellen (AOC, Knowunity, Berner Gesundheit). Das Primärwerk wird damit faktisch <strong>nicht selbst gelesen und ausgewertet</strong>.</li>



<li><strong>Gäbler (2016)</strong> behandelt <em>heute show</em> und politische Satire – die Übertragung auf Loriot ist <strong>nicht begründet</strong> und methodisch angreifbar.</li>



<li>Die Bibliographie unterscheidet zwar zwischen Primär-, Theorie- und Sekundärquellen, aber die <strong>Zuordnung ist fehlerhaft</strong>: Schulz von Thun (1981) ist Primärliteratur der Theorie, nicht nur „Theoretische Grundlage&#8221;; Loriot (1981) ist Primärquelle, aber kein Dreh- und Angelpunkt der Analyse.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6. Layout und Formalia</h2>



<ul class="wp-block-list">
<li>Das <strong>Deckblatt</strong> enthält Platzhalter (<em>„Dein Name&#8221;</em>, <em>„Deine Schule&#8221;</em>, <em>„Name des Lehrers&#8221;</em>) – die Arbeit wurde offensichtlich <strong>nie fertiggestellt</strong> bzw. personalisiert.</li>



<li>Die <strong>Tabellen</strong> (1 und 2) sind layouttechnisch <strong>unvollständig und fehlerhaft</strong> dargestellt: Tabelle 1 bricht mitten im Satz ab (<em>„Suche nach Beziehung: „Du bist unInfo fähig&#8221;</em>), Zellen sind nicht korrekt befüllt, Spaltenbezeichnungen fehlen teilweise. Die Tabellen sind in dieser Form <strong>nicht lesbar</strong>.</li>



<li>Die <strong>Seitennummerierung</strong> ist inkonsistent: Das Deckblatt zählt als Seite 1, das Inhaltsverzeichnis als Seite 2, aber Kapitel 1 beginnt erneut mit Seite 1 – <strong>doppelte Paginierung</strong>.</li>



<li><strong>Zeilenumbrüche mitten in Wörtern</strong> (s. o.) ohne Trennstrich oder mit falschem Trennstrich ziehen sich durch das gesamte Dokument.</li>



<li>Die <strong>Selbstständigkeitserklärung</strong> ist inhaltlich korrekt vorhanden, aber angesichts der massiven Nutzung nicht zitierfähiger Quellen und des möglichen Fremdmaterials (<em>„Zerbröselte Kommunikation&#8221; o. J.</em>) <strong>inhaltlich fragwürdig</strong>.</li>



<li>Es fehlen: <strong>Abbildungsverzeichnis</strong> (für die Tabellen), einheitliche <strong>Schriftgröße in Fußnoten</strong>, konsistente <strong>Randbreiten</strong>, und ein erkennbares <strong>einheitliches Formatierungsschema</strong>.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Gesamturteil</h2>



<p>Diese Arbeit weist auf <strong>allen Ebenen erhebliche Mängel</strong> auf. Besonders schwerwiegend sind:</p>



<ol class="wp-block-list">
<li>Die Verwendung <strong>nicht zitierfähiger Quellen</strong> (Wikipedia, Knowunity, Blog, YouTube-Transkript) als wissenschaftliche Belege</li>



<li>Die <strong>mysteriöse Eigenquelle</strong> <em>„Zerbröselte Kommunikation&#8221; (o. J.)</em>, die weder im Literaturverzeichnis auftaucht noch erklärt wird – dies wirft ernsthafte Fragen zur <strong>Eigenständigkeit</strong> der Arbeit auf</li>



<li><strong>Strukturelle Redundanzen</strong> und ein nicht eingehaltenes Analysekonzept</li>



<li>Ein <strong>unfertiges Deckblatt</strong> mit Platzhaltern</li>
</ol>



<p><strong>In der vorliegenden Form wäre diese Arbeit an einem bayerischen Gymnasium nicht bestehensrelevant und müsste mit 0 Punkten bewertet werden. </strong></p>



<p></p>



<p>Erstaunlich an diesem Praxistest sind zwei Punkte: <strong>Erstens die enorme Geschwindigkeit</strong>, mit der schriftliche Arbeiten mithilfe von KI erstellt werden können, und zweitens die <strong>Qualität, mit der eine andere KI dieselbe Arbeit anschließend kritisch analysiert.</strong> Eine Lehrkraft hätte vermutlich ebenfalls keine großen Schwierigkeiten, die inhaltlichen und strukturellen Schwächen der Arbeit zu identifizieren – <strong>bemerkenswert ist jedoch, wie präzise dies bereits eine KI leisten kann.</strong></p>



<p>In einem weiteren Test soll nun mit höherem Arbeitseinsatz, strengeren Vorgaben und wissenschaftlicheren Quellen erneut eine W‑Seminararbeit mithilfe von KI erstellt werden. Ziel soll es sein, die überprüfende KI dahingehend zu manipulieren, die Arbeit als von einem Menschen geschaffen und als bepunktungswürdig einzuschätzen.<br><br><br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/03/30/leo-ai-attestiert-einer-notebooklm-w-seminararbeit-null-punkte/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Spielzug 37 &#8211; ein Meilenstein der Technologie</title>
		<link>https://gymnasium-oberpfalz.de/2026/03/15/spielzug-37-ein-meilenstein-der-technologie/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/03/15/spielzug-37-ein-meilenstein-der-technologie/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Sun, 15 Mar 2026 07:22:44 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AlphaGo]]></category>
		<category><![CDATA[Zukunft]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=54074</guid>

					<description><![CDATA[Markus Piller, Referent im Expertennetzwerk Digitale Bildung für die Gymnasien in der Oberpfalz, schildert den Augenblick, der sich anfühlte wie das Öffnen eines Vorhangs zu einer neuen Ära. Spielzug 37 &#8211; ein Moment in dem sichtbar wurde, dass künstliche Intelligenz...]]></description>
										<content:encoded><![CDATA[
<p>Markus Piller, Referent im Expertennetzwerk Digitale Bildung für die Gymnasien in der Oberpfalz, schildert den Augenblick, der sich anfühlte wie das Öffnen eines Vorhangs zu einer neuen Ära. Spielzug 37 &#8211; ein Moment in dem sichtbar wurde, dass künstliche Intelligenz nicht bloß eine Ansammlung von Algorithmen ist, sondern ein aufwachendes System, das beginnt, seine eigenen Möglichkeiten zu erkennen.<br><br></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="06 Spielzug 37, ein Meilenstein der Technologie" width="819" height="461" src="https://www.youtube.com/embed/oHqb952QI1E?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Durch Anklicken des Videos werden Daten an YouTube übermittelt und es können personenbezogene Daten (z. B. Ihre IP‑Adresse) übermittelt werden. Wenn Sie fortfahren, stimmen Sie dieser Übertragung zu.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/03/15/spielzug-37-ein-meilenstein-der-technologie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Das K+5 Modell</title>
		<link>https://gymnasium-oberpfalz.de/2026/03/14/das-k5-modell/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/03/14/das-k5-modell/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 10:05:39 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[guter digitaler Unterricht]]></category>
		<category><![CDATA[K+5]]></category>
		<category><![CDATA[Leitfaden]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=53996</guid>

					<description><![CDATA[Was ist guter digitaler Unterricht? Mit dieser Frage beschäftig(t)en sich nicht nur zahlreiche Lehrkräfte in den verschiedensten Schularten oder unsere Newsletter in der letzten Zeit, sondern auch das ISB (Staatsinstitut für Schulqualität und Bildungsforschung), die ALP Dillingen und das Staatsministerium...]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>Was ist guter digitaler Unterricht? <br>Mit dieser Frage beschäftig(t)en sich nicht nur zahlreiche Lehrkräfte in den verschiedensten Schularten oder unsere Newsletter in der letzten Zeit, sondern auch das ISB (Staatsinstitut für Schulqualität und Bildungsforschung), die ALP Dillingen und das Staatsministerium für Unterricht und Kultus. Das Ergebnis dieser Bestrebungen findet sich nun im so genannten <strong>K+5-Modell für &#8220;guten Unterricht in einer digitalen Welt&#8221;</strong> wieder. Dieses Modell ist zukünftig der Leitfaden dafür, wie der Einsatz digitaler Medien Unterricht lernwirksam unterstützen kann.<img loading="lazy" decoding="async" width="1270" height="798" src="https://gymnasium-oberpfalz.de/wp-content/uploads/2025/07/bildschirmfoto-2025-05-02-um-08-01-02.webp" alt="">[Quelle: <a href="https://mebis.bycs.de/guter-unterricht-in-einer-digitalen-welt" target="_blank" rel="noreferrer noopener">mebis Magazin &#8211; Guter Unterricht in einer digitalen Welt</a>]<br>Interessanterweise zeigt auch das K+5-Modell, dass guter, lernwirksamer Unterricht mit digitalen Medien keine Zauberei ist, sondern die meisten Lehrkräfte bereits vieles intuitiv richtig machen. Zentraler Dreh- und Angelpunkt im K+5-Modell ist die <strong>&#8220;effiziente Klassenführung&#8221;</strong>, neudeutsch Classroom Management. Zentrale Elemente hierbei sind eine <strong>sorgfältige Unterrichtsplanung</strong>, ein <strong>konsequentes Einfordern der gemeinsamen Regeln</strong> und die <strong>Etablierung von Routinen im Umgang mit digitalen Medien</strong>. So werden Unterrichtsstörungen minimiert, ein positives Lernklima erzeugt und die Lernzeit im Unterricht effizient genutzt. Oftmals sind es kleine Stellschrauben, die einen großen Unterschied machen. Beispielsweise hat es sich bewährt, digitale Endgeräte (wie andere Werkzeuge auch) am Anfang der Stunde bereit zu legen, aber nicht schon offen zu haben. Erst nach der Aufforderung der Lehrkraft wird das digitale Endgerät geöffnet und zur Anwendung gebracht und nach dem Abschluss der Arbeit wieder beiseitegelegt. Ergänzt wird das zentrale Element der effizienten Klassenführung durch <strong>fünf Aspekte der Unterrichtsgestaltung</strong>: die <strong>Veranschaulichung</strong>, den <strong>Lebensweltbezug</strong>, die <strong>Methodenvielfalt</strong>, das <strong>individualisierte Lernen</strong> sowie <strong>kompetenzorientierte Aufgaben und intelligentes Üben</strong>. In jedem dieser Bereiche können digitale Medien dazu beitragen, dass Unterricht lernwirksamer werden kann. </td></tr></tbody></table></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/03/14/das-k5-modell/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>NotebookLM von Google &#8211; das entgültige Aus für die W-Seminararbeit?</title>
		<link>https://gymnasium-oberpfalz.de/2026/03/02/notebooklm-von-google-das-entgueltige-aus-fuer-die-w-seminararbeit/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/03/02/notebooklm-von-google-das-entgueltige-aus-fuer-die-w-seminararbeit/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Mon, 02 Mar 2026 12:23:00 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[Methodenkniff mit Piff]]></category>
		<category><![CDATA[Unterricht]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[NotebookLM]]></category>
		<category><![CDATA[W-Seminar]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=54209</guid>

					<description><![CDATA[NotebookLM ist ein KI-gestütztes Notiz- und Recherchetool von Google, das als persönlicher Forschungsassistent arbeitet. Man lädt eigene Quellen wie PDFs, Webseiten oder Dokumente hoch, und die KI hilft dabei, Inhalte zu verstehen, zusammenzufassen, zu strukturieren und gezielt Fragen dazu zu...]]></description>
										<content:encoded><![CDATA[
<p>NotebookLM ist ein KI-gestütztes Notiz- und Recherchetool von Google, das als persönlicher Forschungsassistent arbeitet. Man lädt eigene Quellen wie PDFs, Webseiten oder Dokumente hoch, und die KI hilft dabei, Inhalte zu verstehen, zusammenzufassen, zu strukturieren und gezielt Fragen dazu zu beantworten – inklusive Verweisen auf die jeweiligen Originalstellen.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="544" src="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/NotebookLM-1024x544.jpg" alt="" class="wp-image-54595" srcset="https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/NotebookLM-1024x544.jpg 1024w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/NotebookLM-300x159.jpg 300w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/NotebookLM-768x408.jpg 768w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/NotebookLM-1536x815.jpg 1536w, https://gymnasium-oberpfalz.de/wp-content/uploads/2026/03/NotebookLM.jpg 1912w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>NotebookLM bietet für wissenschaftliches Arbeiten eine Reihe klarer Vorteile:</p>



<ul class="wp-block-list">
<li><strong>Keine Halluzinationen:</strong> Die KI greift ausschließlich auf die Quellen zurück, die man selbst bereitstellt, und erfindet keine externen Inhalte.</li>



<li><strong>Quellengestützte Antworten:</strong> Aussagen werden mit Verweisen auf konkrete Textstellen belegt.</li>



<li><strong>Schnelle Zusammenfassungen:</strong> Lange Texte lassen sich effizient auf Kernaussagen verdichten.</li>



<li><strong>Gezielte Fragestellungen möglich:</strong> Komplexe Inhalte können präzise abgefragt und vertieft werden.</li>



<li><strong>Strukturierungshilfe:</strong> Unterstützung beim Ordnen von Themen, Argumenten und Kapiteln.</li>



<li><strong>Zeitersparnis:</strong> Recherche- und Sichtungsprozesse werden deutlich beschleunigt.</li>



<li><strong>Fördert Verständnis:</strong> Hilft, schwierige Passagen verständlich zu erklären.</li>



<li><strong>Ideal für große Materialmengen:</strong> Auch umfangreiche Dokumentensammlungen bleiben handhabbar.</li>
</ul>



<p>In Summe wirkt das Tool wie ein persönlicher, quellentreuer Forschungsassistent – und genau darin liegt seine besondere Stärke.</p>



<p>Die Expertinnen und Experten des Referentennetzwerks testen das Tool derzeit intensiv und informieren Sie demnächst über das Potenzial von NotebookLM sowie darüber, ob es tatsächlich das endgültige Aus für die W-Seminararbeit bedeuten könnte.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/03/02/notebooklm-von-google-das-entgueltige-aus-fuer-die-w-seminararbeit/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Schallinterferenz mit Vibe-Coding</title>
		<link>https://gymnasium-oberpfalz.de/2026/03/01/schallinterferenz-mit-vibe-coding/</link>
					<comments>https://gymnasium-oberpfalz.de/2026/03/01/schallinterferenz-mit-vibe-coding/#respond</comments>
		
		<dc:creator><![CDATA[wpadmin]]></dc:creator>
		<pubDate>Sun, 01 Mar 2026 08:58:00 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[Methodenkniff mit Piff]]></category>
		<category><![CDATA[Unterricht]]></category>
		<guid isPermaLink="false">https://gymnasium-oberpfalz.de/?p=54094</guid>

					<description><![CDATA[Dieses Programm wurde von ChatGPT in 2 Minuten erstellt. Kurzbeschreibung Diese interaktive Simulation macht Schall sichtbar und hörbar.Mit wenigen Reglern erleben Schülerinnen und Schüler, wie sich Töne verstärken oder gegenseitig auslöschen – ein Aha-Moment, wenn aus Lärm plötzlich Stille wird.Ideal...]]></description>
										<content:encoded><![CDATA[
<p>Dieses Programm wurde von ChatGPT in 2 Minuten erstellt. <br></p>



<p><strong>Kurzbeschreibung</strong></p>



<p>Diese interaktive Simulation macht <strong>Schall sichtbar und hörbar</strong>.<br>Mit wenigen Reglern erleben Schülerinnen und Schüler, wie sich Töne <strong>verstärken oder gegenseitig auslöschen</strong> – ein Aha-Moment, wenn aus Lärm plötzlich <strong>Stille</strong> wird.<br>Ideal für eine kurze, eindrucksvolle Einführung in das Thema <strong>Interferenz</strong> im Physikunterricht.</p>



<!doctype html>
<html lang="de">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1" />
  <title>Interferenz-Simulation (Physik 7) – Schall &#038; Wellen</title>
  <style>
    :root{
      --bg:#0b0f14; --card:#121a24; --text:#e9eef6; --muted:#a6b7cb;
      --line:#223145; --accent:#6ee7ff; --ok:#7cffb2; --warn:#ffcf6e;
    }
    *{box-sizing:border-box}
    body{
      margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
      background: radial-gradient(1200px 800px at 15% 10%, #132034 0%, var(--bg) 55%, #06080b 100%);
      color:var(--text); min-height:100vh;
      display:flex; flex-direction:column;
    }
    header{padding:16px 16px 10px; max-width:1100px; width:100%; margin:0 auto;}
    h1{margin:0; font-size:18px; font-weight:750; letter-spacing:.2px}
    p{margin:6px 0 0; color:var(--muted); font-size:13px; line-height:1.35}
    .wrap{
      max-width:1100px; width:100%; margin:0 auto; padding:12px 16px 18px;
      display:grid; grid-template-columns: 360px 1fr; gap:14px; flex:1;
    }
    @media (max-width: 980px){ .wrap{grid-template-columns:1fr;} }
    .card{
      background: linear-gradient(180deg, rgba(18,26,36,.92), rgba(12,16,24,.92));
      border:1px solid rgba(110,231,255,.14);
      border-radius:16px; box-shadow:0 18px 50px rgba(0,0,0,.35);
      padding:14px;
    }
    .card h2{margin:0 0 10px; font-size:14px; letter-spacing:.2px}
    .row{
      border:1px solid rgba(255,255,255,.06);
      background: rgba(255,255,255,.02);
      border-radius:12px;
      padding:10px 10px;
      margin-bottom:10px;
    }
    .rowTop{display:flex; justify-content:space-between; gap:10px; align-items:baseline;}
    .row label{font-size:13px}
    .val{font-variant-numeric:tabular-nums; font-size:12px; color:var(--muted);
         padding:6px 8px; border:1px solid rgba(255,255,255,.08);
         border-radius:10px; background:rgba(0,0,0,.22); min-width:78px; text-align:right;}
    input[type="range"]{width:100%; accent-color: var(--accent); margin-top:8px;}
    .tog{display:flex; gap:10px; align-items:center; padding:10px 10px; margin-bottom:10px;
         border:1px solid rgba(255,255,255,.06); background:rgba(255,255,255,.02); border-radius:12px;}
    .tog input{width:18px; height:18px; accent-color:var(--accent);}
    .btns{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px;}
    button{
      border:none; border-radius:14px; padding:10px 12px; cursor:pointer;
      background: rgba(110,231,255,.14); color:var(--text); font-weight:700;
      border:1px solid rgba(110,231,255,.22); transition: transform .05s ease, background .2s ease;
      user-select:none;
    }
    button:hover{background:rgba(110,231,255,.20)}
    button:active{transform:translateY(1px)}
    button.secondary{
      background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.10);
    }
    button.secondary:hover{background: rgba(255,255,255,.10)}
    .hint{
      margin-top:10px; padding:10px; border-radius:12px;
      border:1px dashed rgba(255,255,255,.14);
      background: rgba(0,0,0,.18);
      color:var(--muted); font-size:12px; line-height:1.35;
    }
    .stage{padding:0; overflow:hidden; position:relative; min-height:540px;}
    canvas{display:block; width:100%; height:100%;}
    .overlay{
      position:absolute; left:12px; top:12px; display:flex; flex-wrap:wrap; gap:8px;
      padding:8px 10px; background:rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.10);
      border-radius:14px; backdrop-filter: blur(6px);
    }
    .pill{font-size:12px; padding:6px 8px; border-radius:999px;
      background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10);
      color:var(--text);}
    .pill strong{font-variant-numeric:tabular-nums}
    .status{position:absolute; right:12px; top:12px; max-width:420px;}
    .statusBox{
      padding:10px 12px; border-radius:14px; backdrop-filter: blur(6px);
      border:1px solid rgba(255,255,255,.10);
      background: rgba(0,0,0,.28);
      color:var(--muted); font-size:12px; line-height:1.35;
    }
    .badge{display:inline-block; padding:2px 8px; border-radius:999px; margin-right:6px;
      border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06); color:var(--text);}
    .ok{border-color: rgba(124,255,178,.35); background: rgba(124,255,178,.10)}
    .warn{border-color: rgba(255,207,110,.35); background: rgba(255,207,110,.10)}
  </style>
</head>
<body>
<header>
  <h1>Interferenz (Schall): Zwei Wellen überlagern sich</h1>
  <p>Stelle <b>Frequenz</b>, <b>Amplitude</b> und <b>Phasenverschiebung</b> ein. Du siehst die zwei Einzelwellen und ihre <b>Summe</b> – und kannst den Ton hören.</p>
</header>

<div class="wrap">
  <section class="card">
    <h2>Regler</h2>

    <div class="row">
      <div class="rowTop">
        <label for="freq">Frequenz (Hz)</label>
        <div class="val" id="freqVal">220</div>
      </div>
      <input id="freq" type="range" min="80" max="880" step="1" value="220" />
    </div>

    <div class="row">
      <div class="rowTop">
        <label for="a1">Amplitude Welle 1</label>
        <div class="val" id="a1Val">0.60</div>
      </div>
      <input id="a1" type="range" min="0" max="1" step="0.01" value="0.60" />
    </div>

    <div class="row">
      <div class="rowTop">
        <label for="a2">Amplitude Welle 2</label>
        <div class="val" id="a2Val">0.60</div>
      </div>
      <input id="a2" type="range" min="0" max="1" step="0.01" value="0.60" />
    </div>

    <div class="row">
      <div class="rowTop">
        <label for="phase">Phasenverschiebung Δφ (Grad)</label>
        <div class="val" id="phaseVal">180</div>
      </div>
      <input id="phase" type="range" min="0" max="180" step="1" value="180" />
    </div>

    <div class="row">
      <div class="rowTop">
        <label for="mix">Lautstärke (Master)</label>
        <div class="val" id="mixVal">0.25</div>
      </div>
      <input id="mix" type="range" min="0" max="0.8" step="0.01" value="0.25" />
    </div>

    <div class="tog">
      <input id="showParts" type="checkbox" checked />
      <span>Einzelwellen anzeigen</span>
    </div>

    <div class="tog">
      <input id="audioOn" type="checkbox" />
      <span><b>Ton an</b> (Browser fragt evtl. nach Interaktion)</span>
    </div>

    <div class="btns">
      <button id="presetCancel">Preset: Auslöschung</button>
      <button id="presetAdd" class="secondary">Preset: Verstärkung</button>
      <button id="pause" class="secondary">Pause/Weiter</button>
      <button id="reset" class="secondary">Reset</button>
    </div>

    <div class="hint">
      <b>Merksätze:</b><br>
      • <span class="badge ok">Δφ = 0°</span> → Wellen „gehen zusammen“ → <b>lauter</b> (konstruktiv).<br>
      • <span class="badge warn">Δφ = 180°</span> bei gleicher Amplitude → Berg trifft Tal → <b>leiser/0</b> (destruktiv).<br>
      • Noise Cancelling: Man erzeugt gezielt eine <b>Gegenwelle</b> (≈ 180°).
    </div>
  </section>

  <section class="card stage">
    <div class="overlay">
      <div class="pill">Summe (Peak): <strong id="sumPeak">–</strong></div>
      <div class="pill">Interferenz: <strong id="kind">–</strong></div>
      <div class="pill">Δφ: <strong id="phi">180°</strong></div>
    </div>
    <div class="status">
      <div class="statusBox" id="statusBox">
        <span class="badge">Info</span>
        Klicke zuerst <b>Ton an</b>, dann läuft Audio stabil. (Auf iPads/Handys nötig.)
      </div>
    </div>
    <canvas id="cv"></canvas>
  </section>
</div>

<script>
(() => {
  // ---------- UI ----------
  const $ = (id) => document.getElementById(id);
  const freq = $("freq"), a1 = $("a1"), a2 = $("a2"), phase = $("phase"), mix = $("mix");
  const showParts = $("showParts"), audioOn = $("audioOn");
  const freqVal = $("freqVal"), a1Val = $("a1Val"), a2Val = $("a2Val"), phaseVal = $("phaseVal"), mixVal = $("mixVal");
  const sumPeakEl = $("sumPeak"), kindEl = $("kind"), phiEl = $("phi");
  const statusBox = $("statusBox");
  const btnCancel = $("presetCancel"), btnAdd = $("presetAdd"), btnPause = $("pause"), btnReset = $("reset");

  function bindRange(el, out, fmt){
    const update = () => out.textContent = fmt(el.value);
    el.addEventListener("input", update);
    update();
  }
  bindRange(freq, freqVal, v => String(v));
  bindRange(a1, a1Val, v => Number(v).toFixed(2));
  bindRange(a2, a2Val, v => Number(v).toFixed(2));
  bindRange(phase, phaseVal, v => String(v));
  bindRange(mix, mixVal, v => Number(v).toFixed(2));

  // ---------- Canvas ----------
  const canvas = $("cv");
  const ctx = canvas.getContext("2d");
  let W=800, H=540, dpr=1;

  function fit(){
    const rect = canvas.getBoundingClientRect();
    dpr = Math.max(1, Math.min(2, window.devicePixelRatio || 1));
    W = Math.max(300, Math.floor(rect.width));
    H = Math.max(420, Math.floor(rect.height));
    canvas.width = Math.floor(W * dpr);
    canvas.height = Math.floor(H * dpr);
    ctx.setTransform(dpr,0,0,dpr,0,0);
  }
  window.addEventListener("resize", fit);

  // ---------- Audio (WebAudio) ----------
  let audioCtx = null, osc1=null, osc2=null, g1=null, g2=null, master=null;
  let audioReady = false;

  async function ensureAudio(){
    if(audioReady) return true;
    try{
      audioCtx = new (window.AudioContext || window.webkitAudioContext)();
      master = audioCtx.createGain();
      master.gain.value = Number(mix.value);
      master.connect(audioCtx.destination);

      osc1 = audioCtx.createOscillator();
      osc2 = audioCtx.createOscillator();
      g1 = audioCtx.createGain();
      g2 = audioCtx.createGain();

      osc1.type = "sine"; osc2.type = "sine";
      osc1.frequency.value = Number(freq.value);
      osc2.frequency.value = Number(freq.value);

      g1.gain.value = Number(a1.value) * 0.4; // scaled for comfort
      g2.gain.value = Number(a2.value) * 0.4;

      // Phase shift: approximate by delay (Δt = Δφ / 360 / f)
      // We'll implement using DelayNode on osc2 path for audible effect.
      const delay = audioCtx.createDelay(1.0);
      delay.delayTime.value = phaseToDelay(Number(phase.value), Number(freq.value));

      osc1.connect(g1).connect(master);
      osc2.connect(delay).connect(g2).connect(master);

      osc1.start(); osc2.start();

      audioReady = true;
      statusBox.innerHTML = `<span class="badge ok">Audio</span> Ton läuft. Probiere Δφ = 0° (lauter) und 180° (leiser).`;
      return true;
    } catch(e){
      statusBox.innerHTML = `<span class="badge warn">Audio</span> Audio konnte nicht gestartet werden (Browser/Policy). Visualisierung funktioniert trotzdem.`;
      return false;
    }
  }

  function phaseToDelay(phiDeg, fHz){
    const phi = Math.max(0, Math.min(180, phiDeg));
    const f = Math.max(1, fHz);
    const dt = (phi/360) * (1/f); // seconds
    return Math.min(0.02, dt); // cap to 20ms for stability
  }

  function updateAudio(){
    if(!audioReady) return;
    const f = Number(freq.value);
    osc1.frequency.setTargetAtTime(f, audioCtx.currentTime, 0.01);
    osc2.frequency.setTargetAtTime(f, audioCtx.currentTime, 0.01);

    g1.gain.setTargetAtTime(Number(a1.value) * 0.4, audioCtx.currentTime, 0.01);
    g2.gain.setTargetAtTime(Number(a2.value) * 0.4, audioCtx.currentTime, 0.01);
    master.gain.setTargetAtTime(Number(mix.value), audioCtx.currentTime, 0.01);

    // Update delay for phase shift
    // Recreate delay node would be expensive; simplest: adjust delayTime if exists
    // We used a delay node inline, but we didn't keep a reference. So: keep it now.
  }

  // Keep a reference to delay node (rewrite ensureAudio slightly)
  let delayNode = null;
  async function ensureAudio2(){
    if(audioReady) return true;
    try{
      audioCtx = new (window.AudioContext || window.webkitAudioContext)();
      master = audioCtx.createGain();
      master.gain.value = Number(mix.value);
      master.connect(audioCtx.destination);

      osc1 = audioCtx.createOscillator();
      osc2 = audioCtx.createOscillator();
      g1 = audioCtx.createGain();
      g2 = audioCtx.createGain();
      delayNode = audioCtx.createDelay(1.0);

      osc1.type = "sine"; osc2.type = "sine";

      osc1.connect(g1).connect(master);
      osc2.connect(delayNode).connect(g2).connect(master);

      osc1.start(); osc2.start();

      audioReady = true;
      statusBox.innerHTML = `<span class="badge ok">Audio</span> Ton läuft. Probiere Δφ = 0° (lauter) und 180° (leiser).`;
      syncAudioAll(true);
      return true;
    } catch(e){
      statusBox.innerHTML = `<span class="badge warn">Audio</span> Audio konnte nicht gestartet werden (Browser/Policy). Visualisierung funktioniert trotzdem.`;
      return false;
    }
  }

  function syncAudioAll(immediate=false){
    if(!audioReady) return;
    const t = audioCtx.currentTime;
    const f = Number(freq.value);
    const phi = Number(phase.value);
    osc1.frequency.setTargetAtTime(f, t, immediate?0.001:0.01);
    osc2.frequency.setTargetAtTime(f, t, immediate?0.001:0.01);
    g1.gain.setTargetAtTime(Number(a1.value)*0.4, t, immediate?0.001:0.01);
    g2.gain.setTargetAtTime(Number(a2.value)*0.4, t, immediate?0.001:0.01);
    master.gain.setTargetAtTime(Number(mix.value), t, immediate?0.001:0.01);
    delayNode.delayTime.setTargetAtTime(phaseToDelay(phi, f), t, immediate?0.001:0.01);
  }

  // ---------- Simulation math ----------
  let running = true;
  let t0 = performance.now();

  function classifyInterference(phiDeg, A1, A2){
    // rough: if phi near 0 => constructive; near 180 with similar amplitudes => destructive
    const phi = Math.abs(phiDeg);
    if(phi <= 20) return {label:"konstruktiv", badge:"ok"};
    const ampRatio = (Math.min(A1,A2) / Math.max(A1,A2 || 1));
    if(phi >= 160 && ampRatio >= 0.85) return {label:"destruktiv", badge:"warn"};
    return {label:"teilweise", badge:""};
  }

  function draw(){
    fit();
    const now = performance.now();
    const dt = (now - t0) / 1000;
    if(running) t0 = now;

    // background
    ctx.clearRect(0,0,W,H);

    // axes
    const midY = H*0.55;
    const topY = H*0.25;
    const padX = 18;
    ctx.lineWidth = 1;
    ctx.strokeStyle = "rgba(255,255,255,0.10)";
    ctx.beginPath();
    ctx.moveTo(padX, midY); ctx.lineTo(W-padX, midY);
    ctx.moveTo(padX, topY); ctx.lineTo(W-padX, topY);
    ctx.stroke();

    // parameters
    const f = Number(freq.value);
    const A1 = Number(a1.value);
    const A2 = Number(a2.value);
    const phiDeg = Number(phase.value);
    const phi = (phiDeg*Math.PI)/180;

    phiEl.textContent = `${phiDeg}°`;

    // time mapping for visible motion (slow down)
    const time = running ? (now/1000) : (t0/1000);

    // wave drawing
    const samples = Math.min(1200, Math.max(400, Math.floor(W*1.2)));
    const span = (W - padX*2);
    const k = 2*Math.PI * 2.2; // spatial frequency on canvas (controls how many periods shown)
    const omega = 2*Math.PI * (f/220) * 0.9; // temporal speed scaled (not real-time frequency)
    const ampPx = Math.min(120, H*0.20);

    function y1(xn){ return A1 * Math.sin(k*xn - omega*time); }
    function y2(xn){ return A2 * Math.sin(k*xn - omega*time + phi); }
    function ys(xn){ return y1(xn) + y2(xn); }

    // compute peak of sum (approx)
    let peak = 0;
    for(let i=0;i<200;i++){
      const xn = i/199;
      peak = Math.max(peak, Math.abs(ys(xn)));
    }
    sumPeakEl.textContent = peak.toFixed(2);

    const kind = classifyInterference(phiDeg, A1, A2);
    kindEl.innerHTML = `<span class="badge ${kind.badge}">${kind.label}</span>`;

    // draw sum (always)
    ctx.lineWidth = 2;
    ctx.strokeStyle = "rgba(110,231,255,0.95)";
    ctx.beginPath();
    for(let i=0;i<samples;i++){
      const xn = i/(samples-1);
      const x = padX + xn*span;
      const y = midY - ys(xn)*ampPx;
      if(i===0) ctx.moveTo(x,y); else ctx.lineTo(x,y);
    }
    ctx.stroke();

    // draw parts (optional)
    if(showParts.checked){
      ctx.lineWidth = 1.6;
      ctx.strokeStyle = "rgba(255,255,255,0.40)";
      ctx.beginPath();
      for(let i=0;i<samples;i++){
        const xn = i/(samples-1);
        const x = padX + xn*span;
        const y = topY - y1(xn)*ampPx*0.9;
        if(i===0) ctx.moveTo(x,y); else ctx.lineTo(x,y);
      }
      ctx.stroke();

      ctx.strokeStyle = "rgba(124,255,178,0.75)";
      ctx.beginPath();
      for(let i=0;i<samples;i++){
        const xn = i/(samples-1);
        const x = padX + xn*span;
        const y = topY - y2(xn)*ampPx*0.9;
        if(i===0) ctx.moveTo(x,y); else ctx.lineTo(x,y);
      }
      ctx.stroke();

      // labels
      ctx.fillStyle = "rgba(255,255,255,0.70)";
      ctx.font = "12px system-ui, sans-serif";
      ctx.fillText("Einzelwellen (oben)", padX, topY - ampPx*0.9 - 10);
      ctx.fillStyle = "rgba(110,231,255,0.85)";
      ctx.fillText("Summe (unten): Interferenz", padX, midY - ampPx - 10);
    } else {
      ctx.fillStyle = "rgba(110,231,255,0.85)";
      ctx.font = "12px system-ui, sans-serif";
      ctx.fillText("Summe: Interferenz", padX, midY - ampPx - 10);
    }

    // little guide text
    ctx.fillStyle = "rgba(255,255,255,0.55)";
    ctx.font = "12px system-ui, sans-serif";
    ctx.fillText("Δφ = 0° → lauter (konstruktiv) | Δφ = 180° &#038; A1≈A2 → leiser/0 (destruktiv)", padX, H - 16);

    requestAnimationFrame(draw);
  }

  // ---------- Events ----------
  const syncAll = () => {
    // update audio if running
    if(audioReady) syncAudioAll();
  };
  [freq,a1,a2,phase,mix].forEach(el => el.addEventListener("input", syncAll));

  audioOn.addEventListener("change", async () => {
    if(audioOn.checked){
      // must be in user gesture context; checkbox change usually counts
      const ok = await ensureAudio2();
      if(ok){
        if(audioCtx.state === "suspended") await audioCtx.resume();
        syncAudioAll(true);
      } else {
        audioOn.checked = false;
      }
    } else {
      if(audioReady){
        master.gain.setTargetAtTime(0, audioCtx.currentTime, 0.02);
        statusBox.innerHTML = `<span class="badge">Audio</span> Ton aus (Visualisierung läuft weiter).`;
      }
    }
  });

  btnCancel.addEventListener("click", () => {
    a1.value = "0.60"; a2.value = "0.60"; phase.value = "180";
    a1Val.textContent = "0.60"; a2Val.textContent = "0.60"; phaseVal.textContent = "180";
    syncAll();
    statusBox.innerHTML = `<span class="badge warn">Preset</span> Auslöschung: gleiche Amplitude + 180°.`;
  });

  btnAdd.addEventListener("click", () => {
    a1.value = "0.60"; a2.value = "0.60"; phase.value = "0";
    a1Val.textContent = "0.60"; a2Val.textContent = "0.60"; phaseVal.textContent = "0";
    syncAll();
    statusBox.innerHTML = `<span class="badge ok">Preset</span> Verstärkung: gleiche Amplitude + 0°.`;
  });

  btnPause.addEventListener("click", () => {
    running = !running;
    btnPause.textContent = running ? "Pause/Weiter" : "Weiter";
    statusBox.innerHTML = running
      ? `<span class="badge">Info</span> Animation läuft.`
      : `<span class="badge">Info</span> Animation pausiert (Wellen stehen).`;
  });

  btnReset.addEventListener("click", () => {
    freq.value="220"; a1.value="0.60"; a2.value="0.60"; phase.value="180"; mix.value="0.25";
    freqVal.textContent="220"; a1Val.textContent="0.60"; a2Val.textContent="0.60"; phaseVal.textContent="180"; mixVal.textContent="0.25";
    syncAll();
    statusBox.innerHTML = `<span class="badge">Reset</span> Standard: 220 Hz, A1=A2=0.6, Δφ=180° (nahe Auslöschung).`;
  });

  // Start
  fit();
  requestAnimationFrame(draw);

  // Small note for audio: keep master at 0 if audio checkbox off
  setInterval(() => {
    if(audioReady && !audioOn.checked){
      master.gain.setTargetAtTime(0, audioCtx.currentTime, 0.03);
    } else if(audioReady && audioOn.checked){
      master.gain.setTargetAtTime(Number(mix.value), audioCtx.currentTime, 0.03);
    }
  }, 250);
})();
</script>
</body>
</html>
]]></content:encoded>
					
					<wfw:commentRss>https://gymnasium-oberpfalz.de/2026/03/01/schallinterferenz-mit-vibe-coding/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
